Skip to main content

Hosting on Heroku

tip

The easiest way to get started with Fider is to use our Cloud Instance - no installation, no worrying about updates, setup, configuration, or maintenance. And there's a free plan, so you can get started at no cost.

💪 Find out more

Prerequisites​

A Heroku account​

Heroku no longer offers free dynos or free Postgres databases, so you'll need a paid plan for both. See Heroku pricing for details.

E-mail Sender​

Fider cannot start without an email provider. You can choose between an SMTP Server, a Mailgun account or Amazon SES.

Deploying your instance​

Step 1: Create a new heroku app​

Click the upper left button to create a new application. You will be prompted for an app name, you can choose anything you want. You also need to choose the hosting region, choose the one closest to you or your users.

Creating a new app on Heroku

Step 2: add a database to the application​

Under the Resources tab, in the Add-ons section, search and add the Heroku Postgres add-on to provide a database for your instance. When prompted, choose a plan and click Provision. Fider requires PostgreSQL 12 or later.

Provisioning the Postgresql database

Step 3: add buildpacks​

Buildpacks are Heroku's scripts that are run when an app is deployed, they are used to "build" your app, usually install dependencies and compile code. For Fider you need two buildpacks: go and nodejs. Under the Settings tab, in the Buildpacks section, click on Add buildpack, click on the go button and then on Save changes on the dialog.

Adding the Go buildpack

Repeat the operation with the nodejs buildpack. You should now have two buildpacks listed in this section.

Step 4: configure application​

In the Config Vars section of the Settings tab, click on Reveal Config Vars to display the current environment variables set on your application. You should already have one DATABASE_URL variable set. Don't touch it, it was automatically set by Heroku when you provisioned your database. You need to add some values for the Fider instance to work properly:

  • BASE_URL: The public URL of your app, as shown in the Domains section of the Settings tab, for example https://yourappname-1234567890ab.herokuapp.com. Use your custom domain instead if you add one. It must start with https://.
  • JWT_SECRET: A secret key used to sign login sessions. Use a long random value, for example from jwtsecrets.com.
  • EMAIL_NOREPLY: Set this variable to a no-reply address associated to your instance.
  • EMAIL_MAILGUN_API: Your Mailgun API key.
  • EMAIL_MAILGUN_REGION: US or EU, matching the region of your Mailgun account. Defaults to US.
  • EMAIL_MAILGUN_DOMAIN: Set this variable to your Mailgun domain.

Application environment variables

If you're using SMTP, replace the EMAIL_MAILGUN_* variables with EMAIL_SMTP_HOST, EMAIL_SMTP_PORT, EMAIL_SMTP_USERNAME and EMAIL_SMTP_PASSWORD. If you're using Amazon SES, replace them with EMAIL_AWSSES_REGION, EMAIL_AWSSES_ACCESS_KEY_ID and EMAIL_AWSSES_SECRET_ACCESS_KEY.

See the configuration reference for all the environment variables Fider supports. You don't need to set PORT, as Heroku sets it for you.

Step 5: deploy your application​

The easiest way to deploy your application to Heroku is to connect your application to a github repository. Fork the Fider official repository and connect this fork to your Heroku application under the Deploy tab in the Deployment method.

Connecting your Github repository for deployment

You can now deploy your application by clicking on the Deploy Branch button. Fider creates its database tables automatically when it starts. Once your app is deployed successfully, you can access the app online by clicking the View button.

Successfull deployment of your application

That's it! You should see the signup screen to create your Administrator account, and you can enjoy your Fider instance and share it with your users.

Reminder: To keep your instance always up to date with latest features and fixes, update your fork every once in a while and deploy it again. Check the release notes for breaking changes before you do.