From 94b37c74efd4f4c83faf5c29f080ebbd3f5769ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20MOLVEAU?= Date: Mon, 11 Feb 2019 18:23:03 +0100 Subject: [PATCH] Update Heroku.md add a complete guide on how to deploy fathom on heroku via the heroku-cli. --- docs/misc/Heroku.md | 103 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 1 deletion(-) diff --git a/docs/misc/Heroku.md b/docs/misc/Heroku.md index bd98c480..6b5fbb21 100644 --- a/docs/misc/Heroku.md +++ b/docs/misc/Heroku.md @@ -1,3 +1,104 @@ # Running Fathom on Heroku -Please follow the instructions [outlined here](https://github.com/usefathom/fathom/issues/59#issuecomment-413535914). +### Requirements + +* heroku cli (logged in) +* git +* curl +* wget +* tar are required +* ~ openssl is required to generate the secret_key, but you're free to use what you want + +### Create the app + +First you need to choose a unique app name, as Heroku generates a subdomain for your app. + +* create the app via the buildpack + +```bash +heroku create UNIQUE_APP_NAME --buildpack https://github.com/ph3nx/heroku-binary-buildpack.git +``` + +* locally clone the newly created app + +```bash +heroku git:clone -a UNIQUE_APP_NAME +cd UNIQUE_APP_NAME +``` + +* create the folder that will contain fathom + +```bash +mkdir -p bin +``` + +* download latest version of fathom for linux 64bit + +```bash +curl -s https://api.github.com/repos/usefathom/fathom/releases/latest \ + | grep browser_download_url \ + | grep linux_amd64.tar.gz \ + | cut -d '"' -f 4 \ + | wget -qi - -O- \ + | tar --directory bin -xz - fathom +``` + +* create the Procfile for Heroku + +```bash +echo "web: bin/fathom server" > Procfile +``` + +* create a Postgres database (you can change the type of plan if you want - https://elements.heroku.com/addons/heroku-postgresql#pricing) + +```bash +heroku addons:create heroku-postgresql:hobby-dev +``` + +* update the environment variables, generate a secret_key + +here you can change the way you generate your secret_key. + +```bash +heroku config:set PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/app/bin \ + FATHOM_DATABASE_DRIVER=postgres \ + FATHOM_DATABASE_URL=$(heroku config:get DATABASE_URL) \ + FATHOM_DEBUG=true \ + FATHOM_SECRET= $(openssl rand -base64 32) \ + FATHOM_GZIP=true +``` + +* add, commit and push all our files + +```bash +git add --all +git commit -m "First Commit" +git push heroku master +``` + +* the created app runs as a free-tier. A free-tier dyno uses the account-based pool +of free dyno hours. If you have other free dynos running, you will need to upgrade your app to a 'hobby' one. - https://www.heroku.com/pricing + +```bash +heroku dyno:resize hobby +``` + +* check that everything is working + +```bash +heroku run fathom --version +``` + +* add the first user + +```bash +heroku run fathom user add --email="test@test.com" --password="test_password" +``` + +* open the browser to login and add your first website + +```bash +heroku open +``` + +* ENJOY :)