57 lines
1.8 KiB
YAML
57 lines
1.8 KiB
YAML
# Docker Compose stack for the rclone webgui.
|
|
#
|
|
# A single rclone rcd container does all three jobs on one port:
|
|
# - Serves the static frontend from webgui/web/ (--rc-files)
|
|
# - Serves RC API endpoints at POST /* (built-in)
|
|
# - Serves remote files at GET /<remote>:<path> (--rc-serve)
|
|
#
|
|
# Same-origin from the browser, so no CORS / no nginx / no double ports.
|
|
# For TLS or custom headers, put a reverse proxy of your choice in front.
|
|
#
|
|
# rclone config lives in ./config/rclone/rclone.conf (bind-mounted).
|
|
# If it doesn't exist yet, create your remotes with:
|
|
# docker compose exec rclone rclone config
|
|
# or copy an existing rclone.conf into ./config/rclone/ before starting.
|
|
#
|
|
# Usage:
|
|
# docker compose up -d # start
|
|
# open http://localhost:5580
|
|
# docker compose logs -f rclone # tail logs
|
|
# docker compose down # stop
|
|
|
|
services:
|
|
rclone:
|
|
image: rclone/rclone:latest
|
|
container_name: rclone-webgui
|
|
command:
|
|
- rcd
|
|
- --rc-no-auth
|
|
- --rc-addr=:8080
|
|
- --rc-files=/web
|
|
- --rc-serve
|
|
- --rc-job-expire-duration=24h
|
|
- --rc-job-expire-interval=1m
|
|
- -vv
|
|
volumes:
|
|
# Static frontend served by rclone's own http.FileServer.
|
|
- ./webgui/web:/web:ro
|
|
# rclone looks for $XDG_CONFIG_HOME/rclone/rclone.conf; the
|
|
# official image sets XDG_CONFIG_HOME=/config.
|
|
- ./config/rclone:/config/rclone
|
|
# Cache dir for tokens, chunk cache, vfs cache, etc.
|
|
- rclone-cache:/cache
|
|
# Scratch space for any local-FS remotes that point here.
|
|
- rclone-data:/data
|
|
# Expose the host /root tree to local filesystem transfer jobs.
|
|
- /root:/root
|
|
environment:
|
|
- XDG_CONFIG_HOME=/config
|
|
- RCLONE_CACHE_DIR=/cache
|
|
ports:
|
|
- "5580:8080"
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
rclone-cache:
|
|
rclone-data:
|