Why SFTP?
Every other Docker registry—Harbor, Nexus Repository, the official Distribution registry—stores blobs on local filesystem or cloud object storage (S3, GCS, Azure). Refity is the only one that uses SFTP.
Storage backend comparison
Refity is the only registry that backs your container images with SFTP. That means you can use Hetzner Storage Box, any VPS, or existing file storage without adopting a new storage API.
| Feature | Refity | Harbor | Nexus Repository | Docker Registry (distribution) |
|---|---|---|---|---|
| SFTP / SSH file storage | ✓ Yes | — | — | — |
| Local filesystem | — | ✓ | ✓ | ✓ |
| S3 / GCS / Azure blob | — | ✓ | ✓ | ✓ (via driver) |
| Docker Registry v2 API | ✓ | ✓ | ✓ | ✓ |
| Web UI for repos & tags | ✓ | ✓ | ✓ | — |
Refity is the first and only Docker registry that stores image layers and manifests on an SFTP server. No other open-source or commercial registry offers SFTP as a primary storage backend. If you want docker push and docker pull with data living on your SFTP (e.g. Hetzner Storage Box, your own server), Refity is the only option.
System requirements
Refity keeps compute and local disk minimal because image data lives on SFTP. Harbor and Nexus need more RAM and disk for their stack and local/blob storage.
| Resource | Refity | Harbor | Nexus Repository | Docker Registry |
|---|---|---|---|---|
| CPU (min) | 1 core | 2 cores | 2 cores | 1 core |
| RAM (min) | 512 MB – 1 GB | 4 GB | 8 GB | ~512 MB – 1 GB |
| Local disk | 5–10 GB (temp + SQLite) | 40 GB (min) – 160 GB (rec.) | 20–200+ GB (app + blobs or DB) | Varies (or use S3) |
| Image storage | On SFTP (separate) | Local or S3/GCS/Azure | Local or S3/GCS/Azure | Local or driver (S3, etc.) |
| Database | SQLite (embedded) | PostgreSQL (optional) | H2 (small) or PostgreSQL | None (stateless) |
Sources: Harbor prerequisites, Nexus Repository system requirements. Refity and Docker Registry: lightweight single-process; Refity metadata in SQLite.
Typical cost (self‑hosted)
Rough monthly cost for a small team. Software is free (open source); you pay for compute and storage. Refity separates compute (small) from storage (SFTP), so you can use cheap SFTP (e.g. Hetzner) and a tiny VPS.
| Solution | Compute (VM/VPS) | Storage | Rough total / month |
|---|---|---|---|
| Refity | Small VPS (1 vCPU, 1 GB RAM) ~€4–6 | SFTP only, e.g. Hetzner Storage Box 1 TB ~€3.50 | ~€8–10 (1 TB) |
| Harbor | VM (2–4 CPU, 4–8 GB RAM) ~€15–35 | 40–160 GB local or S3/GCS | ~€20–50+ (depends on disk/object storage) |
| Nexus Repository | VM (2+ CPU, 8 GB RAM) ~€20–40 | Local or S3; PostgreSQL if prod | ~€25–60+ (OSS); Pro is paid license |
| Docker Registry | Minimal VM ~€4–8 | Local or S3 (you pay) | ~€5–30+ (depends on storage) |
Prices are illustrative (EU VPS and Hetzner Storage Box). Refity: no license fee; you only pay for a small server + SFTP storage. With Hetzner BX21 (5 TB) ~€11/mo + same small VPS, total stays ~€15–17/mo for 5 TB.
When SFTP makes sense
Use Refity when you want a Docker registry but your storage is SFTP—or when SFTP is the right fit.
Hetzner Storage Box
Storage Box is SFTP-based. Refity plugs in directly. Optional dashboard shows usage from the Hetzner API.
Existing SFTP or NAS
You already have an SFTP server or NAS that exposes SFTP. Use it as the backend without adding S3 or another storage layer.
Simpler ops
No object-storage credentials or buckets. One SSH/SFTP account, standard file access, backups with familiar tools.
Air-gapped / restricted
Environments where only SSH/SFTP is allowed can still run a full Docker registry with Refity.