A simple, modern Docker private registry with SFTP backend storage.
Store and manage your container images securely on any SFTP server. Refity is designed for teams and organizations who want a self-hosted Docker registry with flexible, secure, and legacy-friendly storage options.
- Docker Registry v2 API compatible: Works with standard Docker CLI and tools
- SFTP backend storage: All images, manifests, and metadata are stored directly on your SFTP server
- Multi-architecture support: Handles manifest lists for multi-arch images
- Async SFTP upload: Fast local buffering, then async upload to SFTP with progress and retry
- Strict group/folder control: No auto-create, push fails if group/folder missing (for better access control)
- Digest validation: Ensures image integrity and compatibility with Docker clients
- Tag listing: List all tags for a repository
- Lightweight & easy to deploy: Single binary, Docker-ready
git clone https://github.com/troke12/refity.git
cd refity
docker build -t refity .Copy .env.example to .env and edit with your SFTP and registry credentials:
REGISTRY_USERNAME=youruser
REGISTRY_PASSWORD=yourpass
FTP_HOST=sftp.example.com
FTP_PORT=22
FTP_USERNAME=sftpuser
FTP_PASSWORD=sftppassdocker run -p 5000:5000 --env-file .env refityTag and push your image:
docker tag nginx localhost:5000/yourgroup/nginx:latest
docker push localhost:5000/yourgroup/nginx:latestcurl -u youruser:yourpass http://localhost:5000/v2/yourgroup/nginx/tags/list- Use existing SFTP infrastructure for secure, centralized storage
- Integrate with legacy systems or restricted environments
- Avoid cloud lock-in or object storage costs
MIT