Skip to main content

Robust cold backups for Docker environments using Kopia

Project description

Kopi-Docka

Robust Cold Backup for Docker Environments using Kopia

Kopi-Docka is a Python-based backup tool for Docker containers and their volumes. Features controlled downtime windows, encrypted snapshots, and automatic disaster recovery bundles.

PyPI Python Version License Downloads


What is Kopi-Docka?

Kopi-Docka = Kopia + Docker + Backup

A wrapper around Kopia, specifically designed for Docker environments:

  • ๐Ÿ“ฆ Stack-Aware - Backs up entire Docker Compose stacks as logical units
  • ๐Ÿ” Encrypted - End-to-end encryption via Kopia (AES-256-GCM)
  • ๐ŸŒ Multi-Backend - Local, S3, B2, Azure, GCS, SFTP, Tailscale
  • ๐Ÿ’พ Disaster Recovery - Encrypted emergency bundles with auto-reconnect
  • ๐Ÿ”ง Pre/Post Hooks - Custom scripts for maintenance mode
  • ๐Ÿ“Š Systemd-Native - Production-ready daemon with sd_notify & watchdog
  • ๐Ÿš€ Restore Anywhere - Recovery on completely new hardware

See all features โ†’


Quick Start

Installation

# Recommended: pipx (isolated environment)
pipx install kopi-docka

# Or: pip (system-wide)
pip install kopi-docka

Full installation guide โ†’

Setup

# Interactive setup wizard
sudo kopi-docka setup

The wizard guides you through:

  1. โœ… Dependency check (Kopia, Docker)
  2. โœ… Backend selection (Local, S3, B2, Azure, GCS, SFTP, Tailscale)
  3. โœ… Repository initialization
  4. โœ… Connection test

Configuration guide โ†’

First Backup

# System health check
sudo kopi-docka doctor

# List backup units (containers/stacks)
sudo kopi-docka admin snapshot list

# Test run (no changes)
sudo kopi-docka dry-run

# Full backup
sudo kopi-docka backup

# Create disaster recovery bundle (IMPORTANT!)
sudo kopi-docka disaster-recovery
# โ†’ Copy bundle to safe location: USB/cloud/safe!

Usage guide โ†’

Automatic Backups

# Generate systemd units
sudo kopi-docka admin service write-units

# Enable daily backups (02:00 default)
sudo systemctl enable --now kopi-docka.timer

# Check status
sudo systemctl status kopi-docka.timer

Systemd integration โ†’


Unique Features

1. Compose-Stack-Awareness

Automatically recognizes Docker Compose stacks and backs them up as atomic units with docker-compose.yml included.

kopi-docka admin snapshot list

Backup Units:
  - wordpress (Stack, 3 containers, 2 volumes)
  - nextcloud (Stack, 5 containers, 3 volumes)
  - gitlab (Stack, 4 containers, 4 volumes)

2. Disaster Recovery Bundles

Encrypted packages containing everything needed to reconnect to your repository on a new server. Time to recovery: 15-30 minutes instead of hours.

3. Tailscale Integration

Automatic peer discovery for P2P backups over your private network. Use your own hardware instead of cloud storage.

Available Backup Targets
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Status      โ”‚ Hostname        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ ๐ŸŸข Online  โ”‚ cloud-vps       โ”‚
โ”‚ ๐ŸŸข Online  โ”‚ home-nas        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

4. Systemd Integration

Production-ready daemon with sd_notify, watchdog monitoring, PID locking, and security hardening.

Read detailed feature documentation โ†’


What's New in v3.6.0

  • ๐ŸŽฏ Smart Restore - Recovery script uses dynamic paths from bundle metadata
  • ๐Ÿ›ก๏ธ Safe Restore - Interactive file restoration with automatic backups
  • ๐Ÿ’พ Complete Recovery - Password files are now restored to their original locations
  • ๐Ÿ“‹ Systemd Reminder - Clear instructions to re-enable automated backups
  • ๐Ÿ”„ Idempotent Recovery - Run recover.sh multiple times without conflicts

Previous (v3.5.0):

  • Rclone Backend Improvements (PermissionError fix)
  • Enhanced DR Bundles (rclone.conf included)
  • Kopia Flag Fix (--rclone-args)

Previous (v3.4.0):

  • Simplified CLI with "The Big 6" commands
  • Doctor Command for system health checks
  • Organized admin subcommands

Previous (v3.3.0):

  • Backup Scope Selection (minimal/standard/full)
  • Docker Network Backup
  • Pre/Post Backup Hooks
  • Conflict Detection

See what's new โ†’


Documentation

๐Ÿ“š Complete Documentation:

๐Ÿ“ Examples:


CLI Commands

Kopi-Docka v3.4+ features a simplified CLI with "The Big 6" top-level commands and an admin subcommand for advanced operations.

Top-Level Commands ("The Big 6")

sudo kopi-docka setup              # Complete setup wizard
sudo kopi-docka backup             # Full backup (standard scope)
sudo kopi-docka restore            # Interactive restore wizard
sudo kopi-docka disaster-recovery  # Create DR bundle
sudo kopi-docka dry-run            # Simulate backup (preview)
sudo kopi-docka doctor             # System health check
kopi-docka version                 # Show version

Admin Commands (Advanced)

# Configuration
sudo kopi-docka admin config show      # Show config
sudo kopi-docka admin config new       # Create new config
sudo kopi-docka admin config edit      # Edit config

# Repository
sudo kopi-docka admin repo init        # Initialize repository
sudo kopi-docka admin repo status      # Repository info
sudo kopi-docka admin repo maintenance # Run maintenance

# Snapshots & Units
sudo kopi-docka admin snapshot list          # List backup units
sudo kopi-docka admin snapshot list --snapshots  # List all snapshots
sudo kopi-docka admin snapshot estimate-size # Estimate backup size

# System & Service
sudo kopi-docka admin system install-deps    # Install dependencies
sudo kopi-docka admin service write-units    # Generate systemd units
sudo kopi-docka admin service daemon         # Run as daemon

Complete CLI reference โ†’


Storage Backends

Kopi-Docka supports 7 different backends:

  1. Local Filesystem - Local disk or NAS mount
  2. AWS S3 - Amazon S3 or compatible (Wasabi, MinIO)
  3. Backblaze B2 - Affordable cloud storage (~$5/TB/month)
  4. Azure Blob - Microsoft Azure storage
  5. Google Cloud Storage - GCS
  6. SFTP - Remote server via SSH
  7. Tailscale - P2P over private network (no cloud costs!)

Backend configuration โ†’


System Requirements

  • OS: Linux (Debian, Ubuntu, Arch, Fedora, RHEL/CentOS)
  • Python: 3.10 or newer
  • Docker: Docker Engine 20.10+
  • Kopia: 0.10+ (automatically checked)

Detailed requirements โ†’


Feature Comparison

Feature Kopi-Docka docker-volume-backup Duplicati Restic
Docker-native โœ… โœ… โŒ โŒ
Compose-Stack-Aware โœ… โŒ โŒ โŒ
Network Backup โœ… โŒ โŒ โŒ
DR Bundles โœ… โŒ โŒ โŒ
Tailscale Integration โœ… โŒ โŒ โŒ
systemd-native โœ… โŒ โŒ โŒ
Pre/Post Hooks โœ… โš ๏ธ โŒ โŒ
Multi-Cloud โœ… โœ… โœ… โœ…

Full comparison โ†’


Who Is It For?

  • Homelab Operators - Multiple Docker hosts with offsite backups
  • Self-Hosters - Docker services with professional backup strategy
  • Small Businesses - Disaster recovery without enterprise costs
  • Power Users - Full control over backup and restore processes

Credits & Acknowledgments

Author: Markus F. (TZERO78)

Links:

Powered by Kopia

Kopi-Docka wouldn't exist without Kopia!

Kopi-Docka is a wrapper that uses Kopia's powerful backup engine. Kopia provides:

  • ๐Ÿ” End-to-end encryption (AES-256-GCM)
  • ๐Ÿ—œ๏ธ Deduplication & compression
  • โ˜๏ธ Multi-cloud support
  • ๐Ÿ“ฆ Incremental snapshots
  • ๐Ÿš€ High performance

Links:

Other Dependencies

  • Docker - Container lifecycle management
  • Typer - CLI framework
  • psutil - System resource monitoring

Note: Kopi-Docka is an independent project with no official affiliation to Docker Inc. or the Kopia project.


License

MIT License - see LICENSE for details.

Copyright (c) 2025 Markus F. (TZERO78)


Support & Community

Love Kopi-Docka? Give us a โญ on GitHub!


Current Version: v3.6.0

View changelog | Contributing | Troubleshooting

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kopi_docka-3.6.2.tar.gz (134.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kopi_docka-3.6.2-py3-none-any.whl (165.8 kB view details)

Uploaded Python 3

File details

Details for the file kopi_docka-3.6.2.tar.gz.

File metadata

  • Download URL: kopi_docka-3.6.2.tar.gz
  • Upload date:
  • Size: 134.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kopi_docka-3.6.2.tar.gz
Algorithm Hash digest
SHA256 2cface3810c6db49ab4ebd92ccb21fb615fc79624979d36c6ab2196af713c6dd
MD5 25becb10ad6884cf3d1ef292a9a69581
BLAKE2b-256 25339f9812b988a2ea5122743c071dbf1c292707ca61cfeb854e3b46e6dc00b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for kopi_docka-3.6.2.tar.gz:

Publisher: publish.yml on TZERO78/kopi-docka

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kopi_docka-3.6.2-py3-none-any.whl.

File metadata

  • Download URL: kopi_docka-3.6.2-py3-none-any.whl
  • Upload date:
  • Size: 165.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kopi_docka-3.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3705b6cce2e6dad4c622590492f7c9a48ac1eae31363d1c37b0df42db57d74c6
MD5 e1972f686786065873d6e4ed1b75ebee
BLAKE2b-256 62c94d1d96e076bd853446f79530ba7d7f087d2e06b95c324b7603f1123cc338

See more details on using hashes here.

Provenance

The following attestation bundles were made for kopi_docka-3.6.2-py3-none-any.whl:

Publisher: publish.yml on TZERO78/kopi-docka

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page