Skip to content
SYS.DOCS // DOCS

Edka Developer Documentation

Edka automates the creation of a production ready Platform as a Service (PaaS) on top of standard cloud virtual machines and Kubernetes. It reduces the manual effort required to run applications on Kubernetes by providing preconfigured open source add-ons and applications that transform a Kubernetes cluster into a full-fledged PaaS.

Edka provisions and manages Kubernetes clusters in your own Hetzner Cloud account. If you disconnect Edka, you retain full control and can continue managing your clusters with tools like kubectl, Lens or GitOps.

  1. Cluster Bootstrap

    Provision a Kubernetes cluster on Hetzner Cloud and configure the control plane through a simple UI with embedded etcd configured automatically. Edka can also schedule etcd backups, retain uploaded backup sets by plan, run on-demand backups on paid plans, encrypt uploaded backup sets, and recover deleted clusters or restore parallel clones from the backup catalog.

  2. Add-ons installation

    Install a curated set of production add-ons like Gateway API controllers, certificate management, metrics, and operators preconfigured for Hetzner Cloud. No manual setup required.

  3. Databases & Applications

    Provision dedicated PostgreSQL, MySQL, Valkey, or ClickHouse runtimes from the Databases workspace, or deploy packaged services from the Apps workspace. Edka handles sane defaults and Hetzner specific configuration for both surfaces. For example, the dedicated PostgreSQL flow can configure:

    • Number of instances
    • Storage allocation
    • Dedicated WAL storage
    • Continuous backups to S3 or GCS
    • Point-in-time recovery
    • Databases, roles, and extensions
  4. Connect a Container Registry

    Connect a private or public container registry (e.g., GHCR, Docker Hub, GitLab) to enable automatic image pulls for your workloads.

  5. Deployments

    Deploy any container image from the Edka dashboard. Configure:

    • Replica count
    • CPU and memory limits/requests
    • Persistent volumes
    • Environment variables and secrets
    • Real time logs
    • Automatic updates via SemVer policies
    • Instant rollback to previous versions
    • Scheduled recurring tasks with Cron Jobs
    • Horizontal auto-scaling
    • Instant public exposure with built-in TLS termination

    Deploy from a GitHub repository:

    Same options as container deployments plus:

    • Auto-build on GitHub events
    • Auto-detect programming language and build with Railpack
    • Auto-deploy after successful build
    • Enable preview environments for pull requests
    • Realtime build and deployment status in GitHub
    • Builds and deployments history
  6. GitHub Actions Runners (Optional)

    Install GitHub Actions Runner Controller from the cluster Actions workspace and create private runner scale sets for repositories or organizations connected through your GitHub integration.

    • Private runs-on labels for GitHub Actions workflows
    • Docker-in-Docker and Kubernetes container modes
    • Min/max runner scaling controls
    • Node pool placement for dedicated CI capacity
    • Runtime runner pods and logs from the Edka dashboard
  7. Observability

    Install VictoriaMetrics and VictoriaLogs from the cluster Observability workspace to query PromQL metrics, search retained logs, and inspect Diagnostics from one place.

    • Kubernetes Explorer for resources, Helm releases, logs, and pod debug sessions

    • PromQL metrics explorer with metric catalog browsing
    • Retained log search with quick filters
    • Kubernetes warning events and K3s diagnostics
    • Custom PromQL alert rules, editable alert packs, and built in notifications
    • Private UI exposure through Tailscale-aware traffic classes
  8. Domains and TLS

    Point wildcard or exact hostname domains to a public or private Gateway API traffic class. Exact hostnames can use HTTP-01 on a public Gateway or DNS-01 on a public or private Gateway.

    Edka will automatically issue and renew TLS certificates for your domains using cert-manager. Wildcards always use DNS-01 and can optionally route their base hostname with the same certificate. Certificates are issued and stored in your cluster exclusively. For DNS-01, you only delegate the _acme-challenge name to Edka on .acme.edka.net.

    Assign wildcard subdomains for your preview environments.

  9. Sync Your Secrets (Optional)

    Integrate external secrets managers such as 1Password, Doppler, HashiCorp Vault, AWS Secrets Manager, and more. Secrets are synced directly to your clusters; Edka never stores them. We recommend Doppler for simplicity and user-friendly experience.

  10. GitOps (Optional)

    Connect a Git repository to enable continuous reconciliation (GitOps). When you push manifests or Helm charts, they are applied automatically to the cluster. For disaster recovery, connect a new cluster to the same repository to restore state.