S4 Documentation
Welcome to the S4 documentation. S4 is a high-performance, S3-compatible object storage server written in Rust.
S4 solves the inode exhaustion problem common with traditional file-based storage systems by using append-only log volumes. It provides content-addressable deduplication, object versioning, lifecycle policies, Object Lock (WORM), and a built-in IAM system with a web admin console.
Key Highlights
- S3 API Compatible — works with AWS CLI, boto3, rclone, restic, and other S3 tools
- Inode Problem Solved — 1 billion objects use only ~1000 files on disk
- 30-50% Storage Savings — automatic content deduplication via SHA-256
- Strict Consistency — data is fsynced before returning success
- Built-in Security — IAM with role-based access control and JWT authentication
- Web Admin Console — manage buckets, users, and keys from your browser
Quick Links
- Getting Started — install, configure, and run S4
- Architecture — understand how S4 works under the hood
- S3 API Reference — bucket and object operations
- Features — versioning, lifecycle, Object Lock, deduplication, CORS, TLS
- IAM & Admin API — users, roles, and credentials
- Monitoring — Prometheus metrics and stats API
- Web Console — browser-based admin UI
- Deployment — Docker, Docker Compose, production tips
- Development — build, test, and contribute
Getting Started
This section covers everything you need to install, configure, and run S4 for the first time.
Architecture
S4 is a single-node, high-performance object storage server. This section explains its internal design and how data flows through the system.
S3 API Reference
S4 implements the AWS S3 API, providing compatibility with standard S3 tools and SDKs including AWS CLI, boto3, rclone, and restic.
Features
S4 provides a rich set of features beyond basic object storage. This section covers each feature in detail.
IAM & Admin API
S4 includes a built-in Identity and Access Management (IAM) system with role-based access control (RBAC). When enabled, it provides multi-user authentication, fine-grained permissions, and an Admin API for user management.
Monitoring
S4 provides built-in observability through Prometheus-compatible metrics and a JSON stats API for dashboards and alerting.
Web Admin Console
S4 includes a browser-based admin console (S4 Console) for managing your storage server. The console is built with Next.js and Tailwind CSS.
Deployment
This section covers deploying S4 in various environments, from simple Docker containers to production setups.
Development
This section covers building, testing, and contributing to S4.