Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Heroku.md #226

Merged
merged 1 commit into from
Mar 15, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 :)