Deployment guide

Self-Host RustFS on a VPS: S3-Compatible Object Storage

Deploy on a VPS Cloud →

Tutorial

Self-Host RustFS on a VPS: S3-Compatible Object Storage

Self-hosting5 min read5 steps

RustFS exposes a full S3 API on your own VPS, with a built-in web console for managing your buckets from a browser. The result: your backups, assets and application files on infrastructure you control, with no cloud account and no egress fees.

Contents· Why self-host your object storage1/8
  1. 01Why self-host your object storage
  2. 02What RustFS brings over its alternatives
  3. 03Prerequisites
  4. 04Step-by-step installation
  5. 05Common use cases
  6. 06Data persistence and backup strategy
  7. 07RustFS vs MinIO vs Garage: which to choose?
  8. 08Install from the ServOrbit Marketplace

Why self-host your object storage

Cloud providers charge for storage, GET/PUT requests and — especially — egress. On a fixed-price VPS you have none of that: your S3 endpoint serves as many requests as you like, with no end-of-month surprises. And because the API is the standard S3 one, your existing tools — rclone, restic, aws-cli, any S3 SDK — connect to it without modification.

The self-hosting movement has made these solutions accessible even to a small team: where you once had to manage a distributed cluster, a single container on a VPS is enough today for the vast majority of storage needs.

What RustFS brings over its alternatives

  • Built-in web console on port 9001 — [Garage](/blog/heberger-garage-s3-vps) has none, [MinIO](/blog/heberger-minio-vps) needs a separate licence for its advanced console since 2021
  • Single Rust binary in one container — no PostgreSQL dependency or side service to maintain
  • S3 credentials auto-generated at installation and surfaced in your ServOrbit dashboard
  • Apache 2.0 — no feature locked behind an edition tier
  • /health endpoint on port 9000 for monitoring probes
  • Fast startup: the rustfs/rustfs:latest image is under 60 MB and the container is healthy in under 30 seconds

Prerequisites

A ServOrbit VPS with at least 2 GB of RAM and an SSD volume sized to your storage needs. Docker is installed automatically by ServOrbit. No domain name is required to start: access goes through SSH tunnels on port 9001 (console) and port 9000 (S3 API).

For intensive use — daily backups of large databases, storing tens of gigabytes, or concurrent access from multiple applications — plan for 4 GB of RAM and 2 vCPUs.

Step-by-step installation

  1. Install RustFS from the Marketplace

    From your ServOrbit dashboard, select your VPS, then pick RustFS from the Marketplace. The install deploys the rustfs/rustfs:latest container with a named Docker volume (rustfs-data). Two credentials are generated: RUSTFS_ACCESS_KEY (username) and RUSTFS_SECRET_KEY (password), both shown under the Credentials tab of your service.

  2. Open the web console

    Open an SSH tunnel to the console port (shown in your dashboard):

    ssh -L 9001:127.0.0.1:<port> root@<vps-ip>

    Then open http://localhost:9001/rustfs/console/ in your browser. Enter the value of RUSTFS_ACCESS_KEY as the username and RUSTFS_SECRET_KEY as the password.

  3. Create a bucket and set policies

    In the console, click Create Bucket and name it (e.g. backups or assets). You can then define an access policy: ReadOnly for public assets, ReadWrite for application buckets, or leave it private by default.

  4. Connect an S3 client

    Open a second tunnel for the S3 API:

    ssh -L 9000:127.0.0.1:9000 root@<vps-ip>

    Then configure your S3 client:

    mc alias set mystore http://localhost:9000 <RUSTFS_ACCESS_KEY> <RUSTFS_SECRET_KEY>
    mc ls mystore

    For restic: restic -r s3:http://localhost:9000/backups init

  5. Attach a domain (optional)

    To access the console and S3 API from outside without a tunnel, attach a domain from your ServOrbit dashboard — nginx proxies to the console port over HTTPS automatically. You can also use the free {app}.{dns_slug}.servorbit-dns.com subdomain included with every VPS.

Common use cases

Database backups: pipe pg_dump | rclone rcat mystore:backups/dump.sql.gz to your RustFS endpoint. Application file storage: configure your app (Laravel, Django, Next.js) to write uploads to a RustFS bucket instead of local disk. CI/CD artifact cache: expose a bucket to store build artifacts between runs without depending on an external cloud service.

RustFS also pairs well with [restic](/blog/sauvegardes-restic-vps): configure the backup repository as s3:http://localhost:9000/backups and benefit from restic's deduplication, encryption and automatic rotation on your own infrastructure.

Data persistence and backup strategy

The rustfs-data Docker volume persists your data across container restarts and updates. To protect this volume against VPS loss, export it regularly:

# Snapshot the volume to a local file
docker run --rm -v rustfs-data:/data alpine tar czf - /data > rustfs-backup.tar.gz

For automated backups, set up a cron job that sends these snapshots to a second VPS or external storage. For a complete 3-2-1 strategy, see our guide on [restic backups](/blog/sauvegardes-restic-vps): restic encrypts, deduplicates and automatically rotates snapshots, with native S3 backend support.

RustFS vs MinIO vs Garage: which to choose?

All three are open source S3-compatible servers, but with different trade-offs. [MinIO](/blog/heberger-minio-vps) is the most mature and widely used, but its advanced web console moved to a commercial licence in 2021 — for solo or small-team use the console remains accessible, but the legal boundary deserves attention. [Garage](/blog/heberger-garage-s3-vps) (Apache-2.0) is designed for geo-distribution across low-reliability nodes, with no built-in web console. RustFS (Apache-2.0) targets the most common case: a single S3 endpoint on one VPS, with an embedded web console, without licence compromise. If you need geo-distribution or a multi-node cluster, Garage will be more suitable; for a single VPS with a graphical interface, RustFS is the simplest choice.

Install from the ServOrbit Marketplace

RustFS is available directly in the ServOrbit Marketplace — one click deploys the container, generates the credentials and displays them in your dashboard. No commands to type to get started.

Deploy your infrastructure today

VPS Cloud. Preconfigured environments available.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.

Message us on WhatsAppopens in a new tab