Skip to main content

Robust cold backups for Docker environments using Kopia

Project description

Kopi-Docka

Robust Cold Backups 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.5.0

  • ๐Ÿ”ง Rclone Backend Improvements - Fixed PermissionError in config detection
  • ๐Ÿ’พ Enhanced DR Bundles - rclone.conf now included automatically in disaster recovery bundles
  • ๐Ÿ› Kopia Flag Fix - Corrected flag generation: --rclone-config โ†’ --rclone-args='--config=...'
  • ๐Ÿ›ก๏ธ Idempotent Recovery - rclone.conf restoration preserves existing configurations

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.5.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.5.0.tar.gz (133.2 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.5.0-py3-none-any.whl (164.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kopi_docka-3.5.0.tar.gz
  • Upload date:
  • Size: 133.2 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.5.0.tar.gz
Algorithm Hash digest
SHA256 7d13a2548ac3d8aa160ec79553b4222c4a5514cd32db133e4e243e55bbeac6f2
MD5 1cbac78c4618e1b17870928f9d88f54f
BLAKE2b-256 22e18cbae8a9fbbb07484c09be23ad22b00c97dc5e6ffeac5f5c48ce724e7c83

See more details on using hashes here.

Provenance

The following attestation bundles were made for kopi_docka-3.5.0.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.5.0-py3-none-any.whl.

File metadata

  • Download URL: kopi_docka-3.5.0-py3-none-any.whl
  • Upload date:
  • Size: 164.4 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9ec99216655aeb079bc379d2b981aab6f08b07c403f45e2d0dc7d9a3baf46ee9
MD5 9a8f9b27fe4b6cc0206259cf898e76f0
BLAKE2b-256 c52d9e9e12c39688f24867de098819ad92acc03d08250ecca9c1625c03f8abbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for kopi_docka-3.5.0-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