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

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

# 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 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 list --units

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        โ”‚ Disk Free   โ”‚ Latency  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ ๐ŸŸข Onlineโ”‚ cloud-vps      โ”‚ 450.2GB     โ”‚ 23ms     โ”‚
โ”‚ ๐ŸŸข Onlineโ”‚ home-nas       โ”‚ 2.8TB       โ”‚ 45ms     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

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.3.0

  • ๐ŸŽฏ Backup Scope Selection - minimal/standard/full scopes
  • ๐ŸŒ Docker Network Backup - Complete IPAM configuration
  • ๐Ÿ”ง Pre/Post Backup Hooks - Custom scripts for maintenance mode
  • โš ๏ธ Conflict Detection - Interactive restore with conflict resolution

See what's new โ†’


Documentation

๐Ÿ“š Complete Documentation:

๐Ÿ“ Examples:


CLI Commands

Setup & Configuration

sudo kopi-docka setup              # Master setup wizard
sudo kopi-docka new-config         # Config wizard only
sudo kopi-docka status             # Backend status (disk, connectivity)

Backup & Restore

sudo kopi-docka backup             # Full backup (standard scope)
sudo kopi-docka backup --scope minimal    # Volumes only
sudo kopi-docka backup --scope full       # Complete system
sudo kopi-docka restore            # Interactive restore wizard
sudo kopi-docka disaster-recovery  # Create DR bundle

Repository & Automation

sudo kopi-docka repo-status        # Repository info
sudo kopi-docka write-units        # Generate systemd units
sudo kopi-docka daemon             # Run as systemd 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.3.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.3.1.tar.gz (116.4 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.3.1-py3-none-any.whl (140.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kopi_docka-3.3.1.tar.gz
  • Upload date:
  • Size: 116.4 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.3.1.tar.gz
Algorithm Hash digest
SHA256 6ad6320473f62c9caf01e2f139d231dba7531e3e58017f86b81bf03cd88cecf8
MD5 58a0e45da70644f232f84d066635da2b
BLAKE2b-256 0bf1695b1696f080f6b9330396b73441cbd161cba41ca7c2b363066aa227b506

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: kopi_docka-3.3.1-py3-none-any.whl
  • Upload date:
  • Size: 140.5 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.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7fbd6ace189f5cec06b363194f6764eba040e0a48d5ef8b09a9731d91e9a7598
MD5 ead005ff6183a43aba0b7e30cb3e50a9
BLAKE2b-256 bed299aab86c9bda218eb2538a65597c4e2d8440f90c951d239eda6df961d0ab

See more details on using hashes here.

Provenance

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