Deployment guide

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

Deploy on a VPS Cloud →

Tutorial

Self-hosting

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

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.

5 min read5 steps
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.