58 lines
1.9 KiB
YAML
Executable File
58 lines
1.9 KiB
YAML
Executable File
services:
|
|
plex:
|
|
image: lscr.io/linuxserver/plex:latest
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
container_name: plex
|
|
network_mode: host
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=Europe/Berlin
|
|
- VERSION=public
|
|
devices:
|
|
- /dev/dri:/dev/dri
|
|
volumes:
|
|
- /srv/docker/plex:/config
|
|
- /mnt/datengrab:/Datengrab
|
|
- /srv/docker/plex/tmp-transcode/:/transcode
|
|
- /srv/docker/plex/plex-tmp-downloads:/plex-tmp-downloads
|
|
- /mnt/usb1-2:/Datengrab_USB
|
|
restart: unless-stopped
|
|
|
|
plex-db-backup:
|
|
container_name: plex_db_backup
|
|
image: keinos/sqlite3:latest
|
|
restart: always
|
|
user: "1000:100"
|
|
volumes:
|
|
- "/volume1/docker/plex/Library/Application Support/Plex Media Server/Plug-in Support/Databases:/db_source:ro"
|
|
- "/volume1/docker/backups/plex:/backup"
|
|
# WICHTIG: Wir überschreiben den Entrypoint, damit wir eine Endlosschleife nutzen können
|
|
entrypoint: ["/bin/sh", "-c"]
|
|
command: >
|
|
"sleep 10;
|
|
while true; do
|
|
TIMESTAMP=$(date +%Y%m%d-%H%M);
|
|
BACKUP_FILE=/backup/plex_backup_$$TIMESTAMP.sql;
|
|
echo \"$(date): Starte Plex-Sicherung nach $$BACKUP_FILE...\";
|
|
|
|
# Nutzung des -readonly Flags statt URI
|
|
sqlite3 -readonly /db_source/com.plexapp.plugins.library.db \".backup $$BACKUP_FILE\";
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo \"$(date): Sicherung erfolgreich abgeschlossen.\";
|
|
find /backup -name 'plex_backup_*.sql' -mmin +10080 -delete;
|
|
else
|
|
echo \"$(date): FEHLER beim Backup!\";
|
|
# Falls eine leere Datei entstanden ist, löschen wir sie
|
|
[ -f \"$$BACKUP_FILE\" ] && [ ! -s \"$$BACKUP_FILE\" ] && rm \"$$BACKUP_FILE\";
|
|
fi;
|
|
|
|
echo \"$(date): Nächster Run in 24 Stunden.\";
|
|
sleep 86400;
|
|
done"
|