-
Notifications
You must be signed in to change notification settings - Fork 372
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 :) |