[Unit] Description=Restic Backup - Code Directory Documentation=https://restic.readthedocs.io/ After=network-online.target Wants=network-online.target [Service] Type=oneshot # Environment Environment=RESTIC_REPOSITORY=rest:http://10.0.0.11:8000/%H-code Environment=RESTIC_PASSWORD_FILE=%h/.config/restic/password Environment=RESTIC_CACHE_DIR=%h/.cache/restic # Backup ~/Code ExecStart=/usr/bin/restic backup \ --verbose=1 \ --tag=code \ --tag=auto \ --exclude=node_modules \ --exclude=.git/objects \ --exclude=dist \ --exclude=build \ --exclude=.next \ --exclude=target \ --exclude=__pycache__ \ --exclude=*.pyc \ --exclude=.venv \ --exclude=venv \ %h/Code # Prune old backups (7 daily, 4 weekly, 3 monthly) ExecStartPost=/usr/bin/restic forget \ --keep-daily=7 \ --keep-weekly=4 \ --keep-monthly=3 \ --tag=code \ --prune # Nice and IO priority for background operation Nice=10 IOSchedulingClass=idle # Restart on failure Restart=on-failure RestartSec=5m [Install] WantedBy=multi-user.target