-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcron.docker-compose.yml
More file actions
108 lines (102 loc) · 4 KB
/
cron.docker-compose.yml
File metadata and controls
108 lines (102 loc) · 4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
volumes:
healthchecks_config:
restic_cache:
networks:
applications:
external: true
services:
healthchecks:
image: linuxserver/healthchecks:3.7.20241125
container_name: healthchecks
environment:
- PUID=1001
- PGID=1001
- TZ=America/Sao_Paulo
- REGENERATE_SETTINGS=true
- SITE_ROOT=$HEALTHCHECKS_HOST
- SITE_NAME=Healthchecks
- SUPERUSER_EMAIL=$HEALTHCHECKS_SUPERUSER_EMAIL
- SUPERUSER_PASSWORD=$HEALTHCHECKS_SUPERUSER_PASSWORD
volumes:
- healthchecks_config:/config
networks:
- applications
restart: unless-stopped
runitor-ynab:
image: runitor-ynab
pull_policy: build
build:
context: ./cron
dockerfile: runitor-ynab.Dockerfile
container_name: runitor-ynab
command: -api-url ${HEALTHCHECKS_HOST}/ping --uuid ${SYNC_PING_UUID} -- ./sync-transactions.sh
depends_on:
- healthchecks
environment:
- SYNC_CONFIG=$SYNC_CONFIG
- SYNC_TOPIC=$SYNC_TOPIC
runitor-restic-backup:
image: runitor-restic
pull_policy: build
build:
context: ./cron
dockerfile: runitor-restic.Dockerfile
container_name: runitor-restic-backup
command: -api-url ${HEALTHCHECKS_HOST}/ping --uuid ${BACKUP_PING_UUID} -- ./backup.sh
depends_on:
- healthchecks
environment:
- RESTIC_REPOSITORY=$RESTIC_REPOSITORY
- RESTIC_PASSWORD=$RESTIC_PASSWORD
- AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
volumes:
- restic_cache:/cache
- /var/lib/docker/volumes:/mnt/docker-volumes:ro
- /archive/data/nas/immich:/mnt/immich:ro
runitor-restic-prune:
image: runitor-restic
pull_policy: build
build:
context: ./cron
dockerfile: runitor-restic.Dockerfile
container_name: runitor-restic-prune
command: -api-url ${HEALTHCHECKS_HOST}/ping --uuid ${PRUNE_PING_UUID} -- ./backup-prune.sh
depends_on:
- healthchecks
environment:
- RESTIC_REPOSITORY=$RESTIC_REPOSITORY
- RESTIC_PASSWORD=$RESTIC_PASSWORD
- AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
volumes:
- restic_cache:/cache
ofelia:
image: mcuadros/ofelia:0.3.13
restart: unless-stopped
container_name: ofelia
depends_on:
- runitor-ynab
- runitor-restic-backup
command: daemon --docker
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
- ofelia.enabled=true
# Restic backup
- ofelia.job-run.restic-backup.schedule=0 0 1 * * *
- ofelia.job-run.restic-backup.image=runitor-restic:latest
- ofelia.job-run.restic-backup.environment=["RESTIC_REPOSITORY=${RESTIC_REPOSITORY}", "RESTIC_PASSWORD=${RESTIC_PASSWORD}", "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}", "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}"]
- ofelia.job-run.restic-backup.command=-api-url ${HEALTHCHECKS_HOST}/ping --uuid ${BACKUP_PING_UUID} -- ./backup.sh
- ofelia.job-run.restic-backup.volume=["/var/lib/docker/volumes:/mnt/docker-volumes:ro", "restic_cache:/cache", "/archive/data/nas/immich:/mnt/immich:ro"]
# Restic prune
- ofelia.job-run.restic-prune.schedule=0 0 8 * * *
- ofelia.job-run.restic-prune.image=runitor-restic:latest
- ofelia.job-run.restic-prune.environment=["RESTIC_REPOSITORY=${RESTIC_REPOSITORY}", "RESTIC_PASSWORD=${RESTIC_PASSWORD}", "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}", "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}"]
- ofelia.job-run.restic-prune.command=-api-url ${HEALTHCHECKS_HOST}/ping --uuid ${PRUNE_PING_UUID} -- ./backup-prune.sh
- ofelia.job-run.restic-prune.volume=["restic_cache:/cache"]
# YNAB sync
- ofelia.job-run.ynab-sync.schedule=@every 4h
- ofelia.job-run.ynab-sync.image=runitor-ynab:latest
- ofelia.job-run.ynab-sync.environment=["SYNC_CONFIG=${SYNC_CONFIG}", "SYNC_TOPIC=${SYNC_TOPIC}"]
- ofelia.job-run.ynab-sync.command=-api-url ${HEALTHCHECKS_HOST}/ping --uuid ${SYNC_PING_UUID} -- ./sync-transactions.sh