Files
donutbrowser/donut-sync/docker-compose.yml
T
2026-09-26 10:55:12 +04:00

41 lines
1.3 KiB
YAML

# Storage for developing and testing donut-sync itself. It runs an S3 server
# only, and the sync server is expected to run on the host beside it
# (`pnpm start:dev`), which is why the port is published and matches the one
# pinned in test/test-env.ts.
#
# This is NOT the self-hosting compose file. That one runs donut-sync in a
# container too, and it must set S3_PUBLIC_ENDPOINT, because a server that signs
# presigned URLs against a compose-internal host such as `http://minio:9000`
# hands every device a URL it cannot open, while /health and /readyz stay green.
# Take the self-hosting compose from https://donutbrowser.com/docs/self-hosting
# rather than from here.
services:
s3:
# rclone, not MinIO: MinIO withdrew its community images (quay.io now
# answers 401 and Docker Hub denies the pull) as well as its binaries.
# `rclone serve s3` is what scripts/sync-test-harness.mjs uses too.
image: rclone/rclone:latest
ports:
- "8987:9000"
command:
- serve
- s3
- /data
- --addr
- :9000
- --auth-key
- minioadmin,minioadmin
- --force-path-style
- --vfs-cache-mode
- writes
healthcheck:
test: ["CMD", "nc", "-z", "127.0.0.1", "9000"]
interval: 2s
timeout: 5s
retries: 15
volumes:
- s3_data:/data
volumes:
s3_data: