Introduction
Piku brings the Heroku-style git-push deployment experience to any Linux server without Docker, Kubernetes, or complex orchestration. It is ideal for developers who want to deploy Python, Node.js, Go, Ruby, or static apps on a VPS, bare-metal server, or Raspberry Pi with minimal overhead.
What Piku Does
- Deploys applications via
git pushto a remote server using Git hooks - Auto-detects runtime (Python, Node, Go, Ruby, Clojure, Java) and installs dependencies
- Manages processes using uwsgi, gunicorn, or direct executables defined in a Procfile
- Configures Nginx as a reverse proxy with automatic Let's Encrypt TLS certificates
- Supports environment variables, worker processes, and cron-like scheduled tasks
Architecture Overview
Piku is a set of Python scripts installed under a dedicated system user. On git push, a post-receive hook triggers the build: it detects the runtime, installs dependencies, configures Nginx virtual hosts, and starts processes defined in the Procfile. It uses uwsgi as a process manager for Python apps and direct process supervision for others. There are no containers or VMs involved; everything runs natively on the host.
Self-Hosting & Configuration
- Install on any Debian/Ubuntu or Raspberry Pi OS system with the one-line bootstrap script
- Apps are configured via a Procfile (process types) and ENV file (environment variables)
- TLS is handled automatically via Let's Encrypt when a custom domain is pointed at the server
- Scale worker processes by setting
SCALINGdirectives in the ENV file - Supports multiple apps on a single server, each isolated under its own directory
Key Features
- Zero-dependency git-push deployment with no containers needed
- Runs on Raspberry Pi, VPS, or bare-metal with minimal resource usage
- Automatic Nginx reverse proxy and Let's Encrypt TLS provisioning
- Multi-language support via runtime auto-detection
- Procfile-based process management with scaling directives
Comparison with Similar Tools
- Dokku — Docker-based mini-PaaS; Piku avoids containers entirely for a lighter footprint
- CapRover — Web UI-driven Docker PaaS; Piku is CLI-only and uses native process management
- Kamal — Docker deploy tool by Basecamp; Piku targets simpler setups without Docker
- Heroku — Managed PaaS; Piku gives the same workflow on your own hardware
FAQ
Q: Does Piku use Docker? A: No. Piku runs applications natively on the host using uwsgi, systemd, or direct process execution.
Q: Can I run it on a Raspberry Pi? A: Yes. Piku is designed to be lightweight enough for a Raspberry Pi, making it popular for home lab deployments.
Q: How do I set environment variables?
A: Create an ENV file in the app directory on the server, or use piku config:set KEY=value from the command line.
Q: Does it support background workers and cron jobs? A: Yes. Define worker processes in the Procfile and scheduled tasks using the built-in cron-like directive.