
Self-hosting RustFS the easy way
Yulei ChenRustFS is a high-performance distributed storage system built with Rust that is fully compatible with Amazon S3 APIs. If you need a self-hosted alternative to AWS S3 or MinIO, RustFS is a solid choice - it's open source, fast, and ships with a built-in web console for managing buckets and objects.
Sliplane is a managed container platform that makes self-hosting painless. With one-click deployment, you can get RustFS up and running in minutes - no server setup, no reverse proxy config, no infrastructure to maintain.
Prerequisites
Before deploying, ensure you have a Sliplane account (free trial available).
Quick start
Sliplane provides one-click deployment with presets.
- Click the deploy button above
- Select a project
- Select a server (If you just signed up you get a 48-hour free trial server)
- Click Deploy!
About the preset
The one-click deploy above uses Sliplane's RustFS preset. Here's what it includes:
- The official
rustfs/rustfsDocker image with the1.0.0-alpha.20-productiontag - Persistent storage mounted to
/datafor your buckets and objects - The built-in web console enabled on port 9001
- S3-compatible API running on port 9000 (accessible internally)
- Auto-generated access key and secret key for authentication
- CORS enabled by default for broad compatibility
Next steps
Once RustFS is running on Sliplane, access the web console using the domain Sliplane provided (e.g. rustfs-xxxx.sliplane.app).
Default credentials
The preset generates random credentials for you. Find them in your service's environment variables on Sliplane:
- Access Key: value of
RUSTFS_ACCESS_KEY - Secret Key: value of
RUSTFS_SECRET_KEY
Use these to log into the web console and to connect S3-compatible clients.
Using the S3 API
The S3 API runs on port 9000 inside the container. To use it from other services on the same Sliplane server, connect via the internal hostname (e.g. rustfs-xxxx.internal:9000). For external access, you can create a second RustFS service exposing port 9000 or use the internal network with an SSH tunnel.
Environment variables
Here are some useful environment variables you can customize:
| Variable | Default | Description |
|---|---|---|
RUSTFS_ACCESS_KEY | (generated) | Access key for authentication |
RUSTFS_SECRET_KEY | (generated) | Secret key for authentication |
RUSTFS_CONSOLE_ENABLE | true | Enable or disable the web console |
RUSTFS_CORS_ALLOWED_ORIGINS | * | CORS allowed origins for the S3 API |
RUSTFS_SERVER_URL | (empty) | Public URL of the S3 API endpoint |
Logging
RustFS logs to stdout by default, which works well with Sliplane's built-in log viewer. For general Docker log tips, check out our post on how to use Docker logs.
Troubleshooting
If the web console doesn't load, check that RUSTFS_CONSOLE_ENABLE is set to true. If you see authentication errors, verify your access key and secret key in the environment variables. You can also check the service logs in Sliplane for more details.
Cost comparison
You can also self-host RustFS with other cloud providers. Here is a pricing comparison for the most common ones:
| Provider | vCPU | RAM | Disk | Monthly Cost | Note |
|---|---|---|---|---|---|
| Sliplane | 2 | 2 GB | 40 GB | €9 (~$10.65) | Flat rate, 1 TB bandwidth, SSL included |
| Fly.io | 2 | 2 GB | 40 GB | ~$18 | Disk and bandwidth billed separately |
| Render | 1 | 2 GB | 40 GB | ~$35 | 100 GB bandwidth, Disk billed separately |
| Railway | 2 | 2 GB | 40 GB | ~$67 + $20 plan | Pro plan floor, usage-based, bandwidth billed separately |
Click here to see how these numbers were calculated.
(Assuming an always-on instance running 730 hrs/month)
- Sliplane: flat €9/month for the Base server. Unlimited services on the same server, 1 TB egress and SSL included.
- Fly.io:
shared-cpu-2x2 GB = $11.83/mo + 40 GB volume × $0.15/GB = $6 -> ~$17.83/mo. Egress billed separately ($0.02/GB in EU). - Render: closest match is Standard ($25, 1 vCPU / 2 GB) plus 40 GB disk × $0.25/GB = $10 -> ~$35/mo. Stepping up to Pro (2 vCPU / 4 GB) costs $85/mo + disk.
- Railway (Pro plan): CPU 2 × $0.00000772/s × 2,628,000 s = $40.57; RAM 2 × $0.00000386/s × 2,628,000 s = $20.29; volume 40 × $0.00000006/s × 2,628,000 s = $6.31 -> ~$67/mo compute, plus the $20/mo Pro plan floor and $0.05/GB egress.
Bandwidth costs can add up fast on usage-based providers. Use our bandwidth cost comparison tool to see what your egress would cost on each platform.
FAQ
What can I use RustFS for?
RustFS is great for any use case that needs S3-compatible object storage: file uploads, backups, media storage, data lakes, or as a drop-in replacement for AWS S3 in your self-hosted stack. It works with any S3-compatible client or SDK.
How do I connect an S3 client to RustFS?
Use the S3 endpoint URL (your Sliplane internal hostname with port 9000), along with the access key and secret key from your environment variables. Most S3 SDKs and tools (like aws-cli, mc, or s3cmd) support custom endpoints. Set the endpoint to http://rustfs-xxxx.internal:9000 for services on the same server.
How do I update RustFS?
Change the image tag in your service settings on Sliplane and redeploy. Check Docker Hub for the latest stable version.
Are there alternatives to RustFS?
Yes, popular alternatives include MinIO (the most established S3-compatible server), SeaweedFS (distributed storage with FUSE mount support), and Garage (lightweight and geo-distributed). For cloud-hosted options, check out our post on 5 cheap object storage providers.
Is RustFS production-ready?
RustFS is currently in alpha (the version tag includes alpha), so it's best suited for development, testing, and non-critical workloads. Keep an eye on the official releases for stable versions. That said, it's already fully functional and compatible with the S3 API, so it's a great way to get started with self-hosted object storage.