Install with Docker
The fastest way to run Rclona. One container includes the web UI, API, and rclone.
Prerequisites
- Docker Engine 24+ and Docker Compose v2
- A host with enough disk for your backups (local or bind-mounted volumes)
- Optional: reverse proxy (Traefik, Caddy, Nginx Proxy Manager) for HTTPS
1. Pull the image
docker pull ghcr.io/ecodes-lab/rclona:latest
Tagged releases are also published as ghcr.io/ecodes-lab/rclona:v1.0.0 etc.
2. Create a project folder
mkdir rclona && cd rclona
Download the compose template from the releases page, or create docker-compose.yml manually:
services:
rclona:
image: ghcr.io/ecodes-lab/rclona:latest
container_name: rclona
restart: unless-stopped
ports:
- "3001:3001"
environment:
- RCLONA_AUTH_ENABLED=true
- RCLONA_AUTH_USERNAME=admin
- RCLONA_AUTH_PASSWORD=${RCLONA_AUTH_PASSWORD}
- RCLONA_LOCAL_PATHS=/data
- TZ=UTC
volumes:
- ./config:/config
- ./data:/data
- ./logs:/logs
3. Set your password
Create a .env file next to docker-compose.yml:
RCLONA_AUTH_PASSWORD=your-strong-password-here
Never commit .env to git or share it publicly.
4. Start Rclona
docker compose up -d
Open http://localhost:3001 and log in with the username and password from your .env file.
5. Mount local folders (optional)
To browse or back up host directories, add bind mounts under volumes::
volumes:
- ./config:/config
- ./data:/data
- /path/on/host/photos:/data/photos:ro
- /path/on/host/backups:/data/backups
Then list them in RCLONA_LOCAL_PATHS:
RCLONA_LOCAL_PATHS=/data,/data/photos,/data/backups
6. Reverse proxy + HTTPS (recommended)
For internet or LAN access, do not expose port 3001 directly. Put Rclona behind HTTPS:
- Remove the
ports:section from compose (or bind to127.0.0.1:3001only). - Attach the container to your proxy network.
- Point your proxy at
http://rclona:3001. - Keep
RCLONA_AUTH_ENABLED=true.
Example override for Traefik / external proxy network:
# docker-compose.override.yml
services:
rclona:
ports: !reset []
networks:
- default
- proxy
networks:
proxy:
external: true
name: proxy
Environment variables
| Variable | Default | Description |
|---|---|---|
RCLONA_AUTH_ENABLED | true | Require login for the web UI |
RCLONA_AUTH_USERNAME | admin | Login username |
RCLONA_AUTH_PASSWORD | — | Login password (required) |
RCLONA_LOCAL_PATHS | /data | Local folders shown in the path picker |
RCLONE_CONFIG | /config/rclone.conf | Path to rclone config inside the container |
RCLONA_DATA_DIR | /data | Scheduled jobs storage |
TZ | UTC | Timezone for cron schedules |
PORT | 3001 | HTTP port inside the container |
Upgrading
docker compose pull
docker compose up -d
Your /config volume keeps rclone remotes and OAuth tokens across upgrades.
Troubleshooting
Container exits immediately
Check logs: docker compose logs -f rclona. Ensure RCLONA_AUTH_PASSWORD is set.
Cannot log in
Verify .env values match what you enter. Restart after changing env vars.
Local paths not visible
Confirm bind mounts exist and paths are listed in RCLONA_LOCAL_PATHS.
Health check failing
Wait for start_period (10s) on first boot. Check /api/health inside the container.