Product Introduction
- Definition: Konta is a lightweight GitOps automation tool designed for Docker Compose environments on low-resource VPS (Virtual Private Servers). It falls under the technical category of Infrastructure-as-Code (IaC) orchestration tools.
- Core Value Proposition: Konta eliminates Kubernetes complexity by using Git as the single source of truth for container state management. It automatically synchronizes Docker Compose configurations from repositories to production servers without control planes or clusters.
Main Features
- Git-Driven State Synchronization: Konta continuously monitors Git repositories for changes to
docker-compose.ymlfiles. When changes are pushed, it automatically deploys updates by executingdocker-compose up/downcommands. Uses SHA-1 commit hashes to track deployment states and ensure consistency. - Selective Container Management: Only containers with the
konta.managed=truelabel in their Compose files are controlled. Supports exclusion viakonta.stopped=truefor inactive services. Uses Docker Engine API for granular control. - Atomic Deployment Engine: Implements zero-downtime updates through symlink-based directory switching (
/var/lib/konta/releases). Clones the repo to a new directory, validates configurations, then atomically switches thecurrentsymlink after successful tests. - Lifecycle Hooks: Executes custom Bash scripts at deployment stages:
pre.sh: Pre-deployment checks (e.g., backups)success.sh/failure.sh: Post-deployment actionspost_update.sh: Handles Konta self-updates
Hooks run from the repository’shooks/directory.
- Resource-Optimized Daemon: Written in Go, the <1MB binary runs as a systemd service with 120-second sync intervals by default. Consumes <50MB RAM, compatible with 512MB VPS instances.
Problems Solved
- Pain Point: Manual SSH-based Docker Compose management leads to configuration drift and undocumented states. Konta enforces Git-based version control, eliminating "works on my machine" risks.
- Target Audience:
- Solo DevOps engineers managing personal VPS fleets
- SMBs running web apps (Node.js/Python) on budget servers
- Teams transitioning from manual Docker to automated GitOps
- Use Cases:
- Auto-deploying CMS updates (WordPress in containers)
- Replicating staging/production environments via Git branches
- Disaster recovery through Git-versioned infrastructure
Unique Advantages
- Differentiation vs. Kubernetes: Konta reduces 95% of K8s YAML complexity by supporting raw Docker Compose files. Avoids etcd/control-plane overheads while providing comparable GitOps benefits.
- Key Innovation: Symlink-based atomic deployments enable rollbacks in <5 seconds by reverting to previous release directories. This achieves Kubernetes-level reliability without container orchestration dependencies.
Frequently Asked Questions (FAQ)
- Does Konta support multi-node clusters?
No. Konta exclusively optimizes single-node Docker Compose environments. For clusters, use Kubernetes with FluxCD or ArgoCD. - How to secure private repository access?
Konta uses GitHub PATs (Personal Access Tokens) withreposcope. Tokens are stored encrypted in/etc/konta/config.yamlwith 600 permissions. - Can Konta manage non-Docker services?
Only Docker Compose stacks are natively supported. Usepre.sh/post.shhooks to integrate systemd services or shell commands. - What happens during network outages?
The daemon retries failed Git operations with exponential backoff. Unapplied changes queue until connectivity resumes. - How are secrets handled?
Konta doesn’t manage secrets. Inject credentials via.envfiles (excluded from Git) or Docker secrets integrated in Compose files.
