- Update all volume paths from /home/doc/swarm-data to /home/doc/projects/swarm-data - Add Traefik local entrypoint on port 8443 with host mode networking - Add Adminer local route with Traefik labels - Configure Vikunja OIDC integration with Authentik - Add Outline stack configuration - Add traefik-local stack for local network routing - Update .gitignore with backup files and dynamic configs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
26 lines
789 B
YAML
26 lines
789 B
YAML
services:
|
|
rsync:
|
|
image: alpine:latest
|
|
user: "0:0"
|
|
command: >
|
|
sh -c "
|
|
apk add --no-cache rsync &&
|
|
echo '0 2 * * * rsync -av --no-perms --no-owner --no-group --exclude-from=/excludes.txt /source/ /destination/ && echo \"Sync completed at $$(date)\"' | crontab - &&
|
|
echo 'Backup sync started. Daily sync at 2 AM.' &&
|
|
crond -f -l 2"
|
|
deploy:
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
delay: 30s
|
|
placement:
|
|
constraints: [node.role == manager]
|
|
volumes:
|
|
- /home/doc/projects/backups:/source:ro
|
|
- /home/doc/backups:/destination
|
|
- /home/doc/swarm/swarm-production/conf/rsync-conf/excludes.txt:/excludes.txt:ro
|
|
networks:
|
|
- homelab
|
|
networks:
|
|
homelab:
|
|
external: true |