|  4a161fd073 | ||
|---|---|---|
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| piku.py | ||
| requirements.txt | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	piku
The tiniest Heroku-like PaaS you've ever seen, inspired on dokku.
Motivation
I kept finding myself wanting an Heroku-like way to deploy stuff on a few remote ARM boards and my Raspberry Pi cluster, but since dokku still doesn't work on ARM and even docker can be overkill sometimes, I decided to roll my own.
Project Status/ToDo:
From the bottom up:
- Support Java deployments
- Support Go deployments
- chrootisolation
- Support barebones binary deployments
- Installation instructions
- Basic CLI commands to manage apps
- virtualenvisolation
- Support Python deployments
- Repo creation upon first push
- Basic understanding of how dokkuworks
Target Workflow:
- Set up an SSH gitremote pointing topikuwith the app name as repo name (git remote add paas piku@server:app1)
- git push paas masteryour code
- pikudetermines the runtime and installs dependencies
- It then looks at a Procfileand starts the relevant workers
Later on, I intend to do fancier dokku-like stuff like reconfiguring nginx, but a twist I'm planning on doing is having one piku machine act as a build box and deploy the finished product to another.
Might take a while, though.
Target Platforms:
As a baseline, I intend to make sure this runs on the original Rasbperry Pi Model B (which is where I'm testing it).
But since I have an ODROID-U2, a bunch of Pi 2s and a few more boards on the way, it will be tested on a number of places where running x64 binaries is unfeasible.
In general, it will likely work in any POSIX-like environment where you have Python and SSH (I'm very likely to test it under Cygwin at some point).
Target Runtimes:
I intend to support Python, Go and Java, but will be focusing on Python first, moving from shared runtime to virtualenv (and later, if feasible, pyenv support).
FAQ
Q: Why piku?
A: Partly because it's supposed to run on a Pi, because it's Japanese onomatopeia for 'twitch' or 'jolt', and because I know the name will annoy some of my friends.
Q: Why not just use dokku?
A: I use dokku daily, and for most of my personal stuff. But the dokku stack relies on a number of x64 containers that need to be completely rebuilt for ARM, and when I decided I needed something like this (March 2016) that was barely possible - docker itself is not fully baked for ARM yet, and people are still trying to get herokuish and buildstep to build on ARM...)