version: '3.8' services: pbs-client: image: pbsclient:latest container_name: pbs-backup-client hostname: ${HOSTNAME:-linux-host} restart: unless-stopped environment: # Required: PBS Server Configuration PBS_REPOSITORY: "backup@pbs!token@192.168.1.181:8007:backups" PBS_PASSWORD: "your-api-token-secret-here" # Container Mode MODE: daemon # Backup Configuration BACKUP_SCHEDULE: "0 2 * * *" # Daily at 2 AM BACKUP_PATHS: "/host-data" EXCLUDE_PATTERNS: "/host-data/tmp /host-data/var/tmp /host-data/var/cache /host-data/proc /host-data/sys /host-data/dev /host-data/run" CONTAINER_HOSTNAME: "${HOSTNAME:-linux-host}" # Retention Policy KEEP_LAST: 3 KEEP_DAILY: 7 KEEP_WEEKLY: 4 KEEP_MONTHLY: 6 # Optional: API Server ENABLE_API: "true" API_PORT: 8080 # Timezone TIMEZONE: "America/New_York" volumes: # Mount host filesystem (read-only for safety) - /:/host-data:ro # Persistent config and logs - pbs-config:/config - pbs-logs:/logs ports: # API port (optional) - "8080:8080" # Health check healthcheck: test: ["/usr/local/bin/healthcheck"] interval: 5m timeout: 10s retries: 3 start_period: 30s volumes: pbs-config: name: pbs-client-config pbs-logs: name: pbs-client-logs