Piku: Allows git push deployments to your own servers
Project purpose and design
- Piku provides a Heroku‑style “git push” deployment experience on your own server without requiring Docker.
- It installs a small agent on the remote machine, which also acts as a Git remote; a local CLI is just an SSH shim.
- Uses Procfile + env files, supports multiple runtimes (Python, Ruby, Node, Go, Clojure, etc.), and sets up nginx + a process supervisor (uwsgi) under the hood.
- Automatic HTTPS via Let’s Encrypt is supported; some examples use it for small “micro‑apps” and webhooks.
Comparisons to other tools
- Frequently compared to Dokku, CapRover, Coolify, Kamal, Epinio, and plain docker‑compose + reverse proxy.
- Some prefer Docker‑based solutions for long‑lived, frozen environments and multi‑container setups.
- Others value Piku’s minimalism, fewer abstractions, ARM support, and not needing containers at all.
- Several note Piku’s low visibility compared to competitors despite being ~8 years old.
Docker, dependencies, and longevity
- Removing Docker is praised as reducing complexity and overhead, especially on tiny or constrained systems.
- Skeptics worry about OS‑level dependency drift for apps expected to run for many years.
- Counterpoints: long‑term stability can be achieved with conservative distros (e.g., LTS), runtimes with strong backwards compatibility (Perl/Java), and tools like pyenv/Nix.
- Some deploy via NixOS or Podman Quadlet instead, citing reproducibility, rolling back, and strong systemd integration.
Deployment workflows
- Debate between direct
git pushto server vs CI‑driven webhooks that pull and deploy. - Several describe DIY variants: bare Git repos with post‑receive hooks, pm2 reloads, or NixOS rebuilds on push.
- One view: “git is not a deployment tool” due to concerns about mixing source and production, secrets, and build artifacts; others argue hooks can handle builds and checks safely.
Operational concerns & features
- Secrets: must be “bring your own”; examples include fetching from external key vaults via hooks or app startup.
- Zero‑downtime: Piku currently restarts processes after deploy; full blue‑green or socket‑activation schemes are left to users, though ideas around systemd socket activation are discussed.
- Multi‑node and advanced routing (e.g., wildcard subdomains, DNS challenges) are not clearly addressed; nginx integration exists but fine‑grained routing configuration is described as unclear.
Documentation and UX
- New docs are praised visually but criticized for assuming prior knowledge; a community tutorial that explains internals and a full webapp example is seen as much more approachable.
- Suggestions: prominent end‑to‑end tutorial from bare server to custom domain with SSL, and better surfacing of existing guides.
- Install method via
curl | shraises security concerns; maintainers note alternative install methods (cloud‑init, manual steps) and that many users explicitly request a one‑liner.