<Home>
APPLICATIONS / INFRASTRUCTURE
OPEN SOURCE. YOUR INFRASTRUCTURE.CLOUD / BETA
Hakopod Cloud beta is open for signupCreate an account ↗
Open-source PaaS / self-hosted on K3s

Deploy like Heroku.
Pay like a VPS.

Hakopod installs K3s, PostgreSQL and a dashboard on one Linux server. You deploy from Git, an image or a docker-compose file, and each app gets HTTPS, private networking and a plan you review before it ships. The server is your main bill.

Install on Ubuntu or Debian
curl -fsSL https://hakopod.com/scripts/installer.sh | sudo sh

Apache-2.0 · 80+ releases since September 2026 · 68 templates · 4 GiB RAM · AMD64 and ARM64 · Alpha: read what's tested

PRODUCT FILM / HAKOPOD01:08

Watch a one-minute tour of Hakopod.

An app deployed, its services connected privately, and its logs and history in the dashboard.

English captions included

Read film description

Watch a one-minute tour of Hakopod.

Hakopod service page for the shop app's API: Ready, one of one replicas, its runtime facts and live CPU and memory charts
Hakopod configuration editor showing the shop app's hakopod.toml before review
Hakopod deployment r42 of the shop app: every stage succeeded, with the r41 to r42 configuration diff and earlier releases
Hakopod overview of the shop app: web, API and worker services Ready, and revisions 38 to 42 with roll back buttons

The current dashboard (v0.1.0-alpha.89) with a demo shop app: a service's live usage, its TOML, a recorded deployment and the application overview.

Apps, databases, cron, GPUs and CI.

Anything that runs in a container, plus the services around it. One TOML file describes an app, and the dashboard edits the same file.

hakopod.toml
schema_version = 1
name = "shop"

[services.web]
image = "ghcr.io/example/shop-web:1.4"
port = 8080
public = true
replicas = 2

[services.worker]
image = "ghcr.io/example/shop-worker:1.4"

[services.report]
image = "ghcr.io/example/shop-reports:1.4"
command = ["node", "report.js"]

[services.report.job.schedule]
cron = "0 * * * *"
timezone = "UTC"

Let Claude Code fix the 502.

Hakopod ships an MCP server and a CLI. Claude Code, Cursor or any MCP client can read logs, find what broke, plan a fix and deploy it.

Example session / Claude Code over MCP
you Why is checkout returning 502s?
agent → logs shop / api, last 15 minutes
3 restarts: DATABASE_URL points at a removed replica
agent → plan shop: 1 change, api DATABASE_URL
you Ship it.
agent → deploy reviewed plan
api rolled out, 2 of 2 ready
.mcp.json
{
  "mcpServers": {
    "hakopod": {
      "command": "hakopod",
      "args": ["mcp", "--project", "shop",
               "--environment", "production",
               "--allow-deploy"]
    }
  }
}
Terminal / the same work by hand
$ hakopod plan --project shop --environment production
$ hakopod deploy --project shop --environment production --wait
$ hakopod logs shop --service api --query "severity >= ERROR" --since 1h
$ hakopod rollback shop --revision 41 --wait
Terraform / provider hakopod/hakopod main.tf
resource "hakopod_project" "shop" {
  name         = "shop"
  environments = ["production"]
}

resource "hakopod_application" "web" {
  project     = hakopod_project.shop.name
  environment = "production"
  config      = file("hakopod.toml")
}
The api service page in the Hakopod dashboard, with one failed pod the agent is about to fix

Reading apps, logs and the live commit is on by default. Deploys and rollbacks need --allow-deploy, database queries --allow-sql, pod shells --allow-exec, and most of the 329 API operations --allow-write. Keys belong to one project and environment, and they expire. Login, MFA and consent stay with people. The GitHub Action is hakopod/deploy@v1.

Read the agent guide ↗

GitHub Actions runners at Spot prices.

Change one runs-on label. Each job gets a fresh runner that is used once.

.github/workflows/test.yml
jobs:
  test:
    # was: runs-on: ubuntu-latest
    runs-on: [hakopod]
    steps:
      - uses: actions/checkout@v4
      - run: npm test
What a CI job costs
Runner Size 6 min20 min60 min
Hakopod on AWS Spot, c7i or c6i.xlarge 4 vCPU, 8 GB ~$0.006~$0.020~$0.058
Hakopod on AWS Spot, m7i.xlarge 4 vCPU, 16 GB ~$0.011~$0.033~$0.099
GitHub-hosted Linux, 2-core 2 vCPU $0.036$0.12$0.36
GitHub-hosted Linux, 4-core 4 vCPU $0.072$0.24$0.72
  • 1,000 6-minute jobs a month: about $6–11 on Spot VMs, against $72 on GitHub's 4-core runner and $24 on its 2-core runner after the free minutes.
  • 1,000 20-minute jobs a month: about $20–33 on Spot VMs, against $240 on GitHub's 4-core runner and $108 on its 2-core runner after the free minutes.

Estimates for us-east-1, November 2026, from public Spot averages (about $0.05–0.09 an hour) and GitHub's published per-minute rates. A VM bills about half a minute more than its job, for boot and shutdown, and the figures include its disk and public IPv4. Spot prices change by hour and zone. Not included: data sent out of AWS, such as pushing an image to a registry (about $0.09 per GB), and the Hakopod server and licence, which cost the same at any job count.

  • Pods on your own servers gVisor sandbox
  • AWS EC2 Spot Released
  • Google Cloud Compute Engine Preview
  • Microsoft Azure Preview

A runner is either a gVisor-sandboxed pod on your own servers or a single-use VM in your own cloud account. VMs run Docker natively. The VM is deleted when the job ends, and a job lost to a Spot interruption reruns on its own. Hakopod stores no cloud keys: it assumes an IAM role on AWS, impersonates a service account on Google Cloud and uses its own identity on Azure. Set it up under Settings → Actions VM capacity, with the IAM, gcloud and az steps ready to copy and a Test button.

Read about Managed Actions ↗
The runner pool form's Capacity step: Where jobs run offers runner pods, aws-spot (selected) and gcp-spot, with two reruns after Spot interruptions and a summary saying nothing is reserved on the installation's nodes
Settings, Actions VM capacity, with the Add VM capacity sheet open on step 1 of the AWS setup: a command to check the instance role and the inline policy to paste, each with a copy button

Private by default. Free to self-host.

The code is on GitHub under Apache-2.0. Self-hosting costs nothing; you pay for the server.

Services start private, and network rules block traffic between apps until you allow it. Secrets are encrypted and masked in logs. CI and agent keys belong to one project and environment, and they expire. Every hour, each running app's image and runtime are checked against a signed advisory feed and OSV.dev.

Read how it is secured ↗ Read the source ↗
  • Self-hosted FreeThe full platform, teams and fixed project roles.$0
  • Self-hosted ProAudit history, SSO, Slack and Managed Actions runners (beta). Or $29/month.$99/ year
  • Cloud StarterA managed dashboard for your own server. Beta; paid checkout is not open yet.$5/ month
Compare plans ↗

Before you install.

Install on Ubuntu or Debian
curl -fsSL https://hakopod.com/scripts/installer.sh | sudo sh
01 Do I need to know Kubernetes to use Hakopod?

No. Hakopod installs K3s and creates the Kubernetes objects for every app, including ingress, certificates and network rules. You deploy from the dashboard, a short TOML file, a docker-compose file, the CLI or an AI agent, and never write YAML or run kubectl. You still own the server itself, its firewall and K3s upgrades.

02 How is Hakopod different from Coolify and Dokploy?

Coolify and Dokploy run your apps on Docker; Hakopod runs them on K3s, a lightweight Kubernetes. That needs more memory, at least 4 GiB RAM, but a second server joins as a worker and rolling updates come from Kubernetes. Hakopod also shows every deploy as a plan before it applies. The compare pages go through each platform in detail.

03 What do I need to run Hakopod?

A fresh Ubuntu 24.04/26.04 or Debian 12/13 server, AMD64 or ARM64, with at least 4 GiB RAM and 30 GiB of free disk. Run the one-line installer with sudo; it sets up K3s, PostgreSQL and the dashboard. The installation guide covers DNS, firewall and provider-specific steps.

04 Is Hakopod ready for production?

Not yet. Hakopod is an alpha release, and the control plane and ingress have no high availability yet. Read the installation guide and release notes for what has been tested before moving anything important onto it.