Skip to content

Commit

Permalink
Update Heroku.md
Browse files Browse the repository at this point in the history
add a complete guide on how to deploy fathom on heroku via the heroku-cli.
  • Loading branch information
Grégoire MOLVEAU authored Feb 11, 2019
1 parent 5e4ce53 commit 94b37c7
Showing 1 changed file with 102 additions and 1 deletion.
103 changes: 102 additions & 1 deletion docs/misc/Heroku.md
Original file line number Diff line number Diff line change
@@ -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="[email protected]" --password="test_password"
```

* open the browser to login and add your first website

```bash
heroku open
```

* ENJOY :)

0 comments on commit 94b37c7

Please sign in to comment.