Major addition: Full Docker implementation for Windows, macOS, and Linux support New Features: - Docker container with PBS client in Debian environment - Platform-specific docker-compose files (linux/windows/macos) - Daemon mode with internal cron scheduler - One-shot backup mode for manual execution - Optional REST API server for remote management - Health monitoring and status endpoints - Automatic encryption key generation and management Docker Structure: - docker/Dockerfile - Container build definition - docker/scripts/ - Entrypoint, backup, healthcheck, and API scripts - docker/build.sh - Build script for Docker image - docker/deploy.sh - Interactive deployment script - docker/docker-compose-*.yml - Platform-specific configurations Documentation: - docker/README-DOCKER.md - Complete Docker documentation - docker/QUICKSTART-DOCKER.md - Quick start guide - docker/DOCKER-SOLUTION-SUMMARY.md - Architecture overview - BACKUP-TYPES-GUIDE.md - File vs block device backup guide Updated: - README.md - Added cross-platform support section and platform matrix - CHANGELOG.md - Documented all Docker features This enables PBSClientTool to backup Windows and Mac systems via Docker, while maintaining native Linux performance for full disk images. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
75 lines
2.1 KiB
YAML
75 lines
2.1 KiB
YAML
version: '3.8'
|
|
|
|
# PBS Client for Windows
|
|
# Backs up C:\ drive (or other drives as needed)
|
|
|
|
services:
|
|
pbs-client:
|
|
image: pbsclient:latest
|
|
container_name: pbs-backup-client
|
|
hostname: ${COMPUTERNAME:-windows-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"
|
|
# Windows-specific exclusions
|
|
EXCLUDE_PATTERNS: "/host-data/Windows/Temp /host-data/Windows/Logs /host-data/ProgramData/Microsoft/Windows/WER /host-data/ProgramData/Package Cache /host-data/Users/*/AppData/Local/Temp /host-data/Users/*/AppData/Local/Microsoft/Windows/INetCache /host-data/pagefile.sys /host-data/hiberfil.sys /host-data/swapfile.sys"
|
|
CONTAINER_HOSTNAME: "${COMPUTERNAME:-windows-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 Windows C:\ drive
|
|
# Note: You can add additional drives like D:\, E:\, etc.
|
|
- C:\:/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
|
|
|
|
# To run on Windows:
|
|
# 1. Install Docker Desktop for Windows
|
|
# 2. Edit PBS_REPOSITORY and PBS_PASSWORD above
|
|
# 3. Run: docker-compose -f docker-compose-windows.yml up -d
|
|
#
|
|
# To add additional drives (e.g., D:\):
|
|
# - Add another volume mount: - D:\:/host-data-d:ro
|
|
# - Update BACKUP_PATHS: "/host-data /host-data-d"
|