• v0.8.1 fcebd11336

    v0.8.1 Stable

    SisyphusMD released this 2026-04-21 18:19:12 -07:00 | 205 commits to main since this release

    Added

    • run Entrypoint Mode: New container mode for one-shot non-interactive command invocation, designed for Kubernetes Jobs / init containers and other CI flows. docker run ... archiver:0.8.1 run <subcommand> decrypts the bundle, execs the subcommand, and the container's exit code equals the subcommand's exit code. Whitelisted subcommands: auto-restore, snapshot-exists, healthcheck. Long-running or async commands (start, stop, pause, etc.) are intentionally rejected with exit code 2.

    Changed

    • Internal: Renamed lib/features/duplicacy.sh to lib/features/duplicacy-backup.sh for symmetry with lib/features/duplicacy-restore.sh (introduced in 0.8.0). No user-visible change.
    • Internal: Extracted bundle decrypt + import logic in docker-entrypoint.sh into a prepare_bundle() helper, reused by both the default daemon path and the new run mode. Behavior of existing init and daemon modes is unchanged.
    Downloads
  • v0.8.0 ca688dedcc

    v0.8.0 Stable

    SisyphusMD released this 2026-04-21 16:38:36 -07:00 | 208 commits to main since this release

    Added

    • Non-interactive Restore Commands: Two new subcommands for automated disaster recovery flows (e.g. Kubernetes init containers)
      • archiver snapshot-exists — probes every configured storage target for SNAPSHOT_ID and short-circuits on the first hit; exit codes 0=exists, 1=not found, 2=undetermined, 3=lock held
      • archiver auto-restore — iterates storage targets in order and restores from the first target that has the requested snapshot; env-driven (SNAPSHOT_ID, LOCAL_DIR required; REVISION, STORAGE_TARGET, OVERWRITE, DELETE_EXTRA, HASH_COMPARE, IGNORE_OWNERSHIP, RESTORE_THREADS optional)
    • Shared Restore Library: Extracted duplicacy restore plumbing (storage target resolution, repo init, revision listing, restore) into lib/features/duplicacy-restore.sh, shared by interactive restore, snapshot-exists, and auto-restore

    Fixed

    • archiver healthcheck Exit Code: The dispatcher previously clobbered the healthcheck's exit status to 0, causing Docker healthchecks based on archiver healthcheck to always report healthy. It now propagates the underlying exit code
    Downloads
  • v0.7.1 33c4094864

    v0.7.1 Stable

    SisyphusMD released this 2026-04-14 13:09:37 -07:00 | 210 commits to main since this release

    Added

    • Podman Support: Container detection now recognizes Podman (/run/.containerenv) in addition to Docker (/.dockerenv), removing the need to mount a fake .dockerenv file
    • Host Management Tools: Added systemd and zfsutils-linux packages to the container image
      • systemctl — manage host services from restore scripts (start, stop, mask, unmask, etc.)
      • zfs — take ZFS snapshots before restore operations (requires /dev/zfs mount)
      • Requires SYSTEMCTL_FORCE_BUS=1 env var and D-Bus socket + systemd unit directory mounts
    • Security Hardening: Added cap_drop: ALL with explicit cap_add to compose.yaml and README examples
      • DAC_OVERRIDE — required for writing to directories owned by other UIDs
      • SETGID — required for cron to execute scheduled jobs
      • no-new-privileges:true — recommended security option
    • Socket Documentation: Documented mounting options for Podman socket, systemd D-Bus socket, systemd unit directory, and ZFS device node with per-socket security warnings

    Changed

    • Updated available tools list in example scripts and migration guide to include systemctl and zfs
    Downloads
  • v0.7.0 634fafb326

    v0.7.0 Stable

    SisyphusMD released this 2026-01-22 18:19:07 -08:00 | 216 commits to main since this release

    ⚠️ BREAKING CHANGES

    • Docker-Only Deployment: Direct installation on host systems is no longer supported. See migration guide.

    Added

    • Graceful Stop: Stop command respects backup stage, completing service cleanup before termination
      • New archiver stop --immediate flag for emergency termination
      • Sends summary notification with runtime and error count
    • Docker Compose Graceful Shutdown: Added stop_grace_period: 2m to ensure proper service cleanup when stopping containers
    • Migration Documentation: Comprehensive guides for migrating legacy installations (v0.3.2+) to Docker v0.7.0
      • Legacy to Docker migration guide
      • Configuration editing in Docker
      • Local storage setup
      • SSH key management

    Improved

    • Prune Operation: Now uses -exhaustive flag to remove orphaned chunks from manually deleted snapshots and incomplete backups
    • Notifications: Include hostname and timestamp; respect TZ environment variable
    • Bundle Export: Offers to reuse BUNDLE_PASSWORD environment variable
    • Storage Names: Automatically sanitize storage names with hyphens for Bash compatibility
    • Code Organization: Restructured lib directory into core/features/scripts

    Changed

    • Streamlined documentation for Docker-only workflow
    • SFTP SSH Key Path: Hardcoded to /opt/archiver/keys/id_ed25519 for Docker consistency
      • Removed STORAGE_TARGET_X_SFTP_KEY_FILE configuration variable
      • Migrating users: Old variable in config.sh will be safely ignored

    Removed

    • Legacy/direct installation support and related commands
    Downloads
  • v0.6.5 5abc6c8621

    v0.6.5 Stable

    SisyphusMD released this 2026-01-14 13:15:27 -08:00 | 271 commits to main since this release

    Added

    • Container Tools: Added text editors and network utilities to Docker image
      • nano - Simple text editor for quick file edits
      • vim - Full-featured text editor
      • iputils-ping - Network connectivity testing

    Changed

    • Documentation: Updated README to prioritize archiver logs command over docker logs
    • Examples: Updated service script examples with complete list of available tools
    Downloads
  • v0.6.4 c9ccd58b89

    v0.6.4 Stable

    SisyphusMD released this 2026-01-14 09:41:08 -08:00 | 272 commits to main since this release

    Fixed

    • Docker Container Issues:
      • Added procps package to Docker image to provide pkill and pgrep commands
      • Fixes "command not found" errors when stopping backup processes
      • Resolves container shutdown hangs caused by orphaned processes
      • Improved graceful shutdown by explicitly terminating log tailer process
    • Bundle Export: Fixed bundle backup verification to prevent data loss
      • Now verifies the backup file exists before continuing with export
      • Exits with error if backup operation fails instead of proceeding
    • Docker Logs: Changed log tailer to show only new logs (tail -n 0)
      • Prevents docker logs from hanging with large log files (100k+ lines)
      • Improves performance for long-running backups with extensive logging

    Changed

    • Docker Volume Mount: Updated documentation to mount bundle directory instead of single file
      • Resolves "Device or resource busy" errors during bundle export
      • Allows proper file operations within mounted directory
    Downloads
  • v0.6.3 0342e6e143

    v0.6.3 Stable

    SisyphusMD released this 2026-01-13 20:57:48 -08:00 | 273 commits to main since this release

    Changed

    • Duplicacy Update: Updated Duplicacy to v3.2.5 (from v3.2.3)
    Downloads
  • v0.6.2 6b5a9daf87

    v0.6.2 Stable

    SisyphusMD released this 2026-01-13 20:47:43 -08:00 | 274 commits to main since this release

    Added

    • SQLite3 Support: sqlite3 package now included in container image
      • Enables database operations and backups directly from service scripts
      • Useful for services using SQLite databases

    Documentation

    • Added comprehensive list of available tools and packages in example service scripts
    • Documents all available tools: duplicacy, docker, sqlite3, curl, wget, ssh, openssl, etc.
    • Clarifies Docker socket requirement for docker commands
    Downloads
  • v0.6.1 1cd520bd76

    v0.6.1 Stable

    SisyphusMD released this 2026-01-13 17:13:18 -08:00 | 275 commits to main since this release

    Added

    • Docker CLI Support: Docker CLI now included in container image
      • Enables service-specific backup scripts to control other Docker containers
      • Version-locked to Docker CLI 29.1.4-1 for reproducible builds
      • Required for backup scripts that need to exec commands in other containers or manage container state

    Documentation

    • Added requirement to mount Docker socket (/var/run/docker.sock) for service scripts that need Docker access
    • Added security warning about Docker socket access implications
    Downloads
  • v0.6.0 c6e477f27e

    v0.6.0 Stable

    SisyphusMD released this 2026-01-13 16:26:36 -08:00 | 276 commits to main since this release

    Added

    • Local Disk Storage Backend: Support for local disk as a storage target alongside SFTP, B2, and S3
      • Ideal as primary backup target with fast local backups
      • Can be combined with remote storage for off-site redundancy
    • Performance Optimization: Configurable thread count for duplicacy operations
      • New DUPLICACY_THREADS configuration variable (default: 4)
      • Parallel upload/download threads for faster backups
      • Applied to backup, copy, restore, check, and prune operations
    • Interactive Restore Options: Advanced restore configuration wizard
      • Hash-based file detection option
      • Overwrite existing files option
      • Delete files not in snapshot option
      • Ignore ownership option
      • Continue on errors option
      • Customizable thread count for restore operations
    • Graceful Container Shutdown: Docker containers handle SIGTERM properly
      • Running backups are stopped gracefully on docker stop
      • Prevents data corruption from forced termination

    Improved

    • Restore operations now have configurable performance and behavior options
    • Backup operations complete faster with parallel threading
    • Docker container lifecycle management with proper signal handling
    Downloads