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>
80 lines
2.2 KiB
YAML
80 lines
2.2 KiB
YAML
version: '3.8'
|
|
|
|
# PBS Client for macOS
|
|
# Backs up user home directories and important system files
|
|
|
|
services:
|
|
pbs-client:
|
|
image: pbsclient:latest
|
|
container_name: pbs-backup-client
|
|
hostname: ${HOSTNAME:-mac-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/Users /host-data/Applications"
|
|
# macOS-specific exclusions
|
|
EXCLUDE_PATTERNS: "/host-data/Users/*/Library/Caches /host-data/Users/*/Library/Logs /host-data/Users/*/.Trash /host-data/Users/*/Downloads /host-data/Applications/Xcode.app"
|
|
CONTAINER_HOSTNAME: "${HOSTNAME:-mac-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 macOS filesystem
|
|
# Note: Docker Desktop for Mac has permission restrictions
|
|
# You may need to grant access in System Preferences → Privacy & Security
|
|
- /:/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 macOS:
|
|
# 1. Install Docker Desktop for Mac
|
|
# 2. Grant Docker file system access:
|
|
# System Preferences → Privacy & Security → Full Disk Access → Add Docker
|
|
# 3. Edit PBS_REPOSITORY and PBS_PASSWORD above
|
|
# 4. Run: docker-compose -f docker-compose-macos.yml up -d
|
|
#
|
|
# For Time Machine-style backups, consider backing up only:
|
|
# - /Users (home directories)
|
|
# - /Applications (installed apps)
|
|
# - /etc (system configs)
|
|
# - /Library/Application Support (app data)
|