Files
glados-docker/plex/compose.yml
T

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"