This is a proof-of-concept project demonstrating a distilled implementation of a mini-Heroku running on a Raspberry Pi 2. It is heavily inspired by the great Dokku project.
Dokku does not run on the Pi because Dokku is built for a specific OS and processor architecture (Ubuntu 14 and x86). Reroku is designed to work with Raspbian and ARM.
-
Raspberry PI 2 running Hypriot's OS w.Docker
-
Nginx
sudo apt-get update && apt-get install nginx
- SSHCommand
git clone https://github.com/oliw/sshcommand.git
git checkout oliverw/raspbian-support
cd sshcommand
sudo make install
sudo make install
sudo sshcommand create reroku `which reroku`
sudo usermod -aG docker reroku
sudo make uninstall
To allow your computer to deploy to reroku, you must first share your public key with reroku
cat ~/.ssh/id_rsa.pub | ssh [email protected] -- sudo sshcommand acl-add reroku <KEY>
Where <KEY>
is the key associated with your public key in id_rsa.pub
(usually an email address)
To deploy your APP to reroku:
cd <APP>
git remote add reroku reroku@<REROKU_URL>:<APP>
git push reroku master
open http://<APP>.<REROKU_URL>
The default REROKU_URL
is raspberrypi
. If your network's DNS does not have a record in place, a quick hack is to edit the /etc/hosts file on the computer trying to access reroku.
<RASPBERRY_PI_IP_ADDRESS> raspberrypi <APP>.raspberrypi
- Only python projects are currently supported
- Your python project should serve
0.0.0.0:80
- Your project must include a Heroku-style Procfile with a web definition
- Environment Variables
- Logs
- App Management
- DNS
- Addons (e.g. Database)
- Other base images e.g. (java, ruby)
- Non-web dynos
- Feel free to file issues on this project's Github page though not this project is not actively worked on.