From ed60abf96f7df912ca9ba5d67e86bdc99330ba86 Mon Sep 17 00:00:00 2001 From: John Date: Tue, 28 Oct 2025 00:39:30 +0000 Subject: [PATCH] launched service: rysnc w/ excludes.txt --- conf/rsync-conf/excludes.txt | 7 +++++++ stacks/data/rsync/stack.yml | 26 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 conf/rsync-conf/excludes.txt create mode 100644 stacks/data/rsync/stack.yml diff --git a/conf/rsync-conf/excludes.txt b/conf/rsync-conf/excludes.txt new file mode 100644 index 0000000..7eca23e --- /dev/null +++ b/conf/rsync-conf/excludes.txt @@ -0,0 +1,7 @@ +*.tmp +*.log +cache/ +temp/ +*.lock +lost+found/ +traefik/certificates/acme.json \ No newline at end of file diff --git a/stacks/data/rsync/stack.yml b/stacks/data/rsync/stack.yml new file mode 100644 index 0000000..92b567b --- /dev/null +++ b/stacks/data/rsync/stack.yml @@ -0,0 +1,26 @@ +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/swarm-data/appdata:/source:ro + - /home/doc/swarm/appdata:/destination + - /home/doc/swarm/swarm-production/conf/rsync-conf/excludes.txt:/excludes.txt:ro + networks: + - homelab +networks: + homelab: + external: true \ No newline at end of file