ProxmoxBackupClientPBSClien.../docker/docker-compose-macos.yml
zaphod-black fbe81d28ae Add Docker-based cross-platform solution (v1.2.0)
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>
2025-11-02 22:36:41 -06:00

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)