This tutorial walks you through the steps needed to setup and deploy a single-node Offen instance on Heroku using PostgreSQL for storing data.
All resources created in this tutorial are free of charge. You might want to upgrade some of them to another plan with costs when running Offen in production though. A single Hobby Dyno ($7 at the time of writing) should be enough to handle most traffic scenarios and will give you managed SSL for a custom domain.
- Deploy our Template Repository
- Set the Configuration Values
- Deploy the App
- Creating an Account
- Run Offen on Your Own Domain
To follow the steps in this tutorial you will need to have created an account with Heroku.
You can automatically deploy our template repository to Heroku using this button:
Below you will find explanations on what you need to do next:
Heroku will now ask you for a name for you instance (you can call this something like
my-offen for example), the region where to deploy (choose something the one that is geographically close to your users), and a few configuration values:
Offen needs to send transactional email for the following features:
- Inviting a new user to an account
- Resetting your password in case you forgot it
To enable this, you need supply SMTP credentials to Offen, namely Host, User, Password and Port to form in the setup form. If you do not know which values to use, you can start by using your personal mail account or create a new mailbox using your default email provider.
If you need to look these up and don’t want to do it right away, you can always add these at a later time. Remember though that you cannot reset account passwords until this is configured.
You are now ready to press the “Deploy app” button. Building the application can take a little while, but you will see the interface updating while Offen is being installed for you.
The final step for your installation is now to create an account that you can use to collect usage data and log in. To do so, use the “Run console” (Available under “More”) feature in the Heroku UI for your newly created app. r
Create an account by providing the following data for your account to the command:
setup -email email@example.com -name my-site -stdin-password
After entering this, you will be prompted for a password. Once entered the account will be created an you are now able to use your instance.
You can now head to the running application at
https://<your-provided-app-name>.herokuapp.com/login and login using your given credentials.
In a real world setup, you will likely want to make Offen available as a subdomain of your own domain.
To setup DNS first configure Heroku to use your desired custom domain in your app’s settings. Now, you can set a CNAME record with your domain registrar from your desired domain to the target given in the response.
Offen requires to be served via SSL. In case you are on a paid plan, Heroku offers free Certificate Management for your domain and there is nothing you need to other than enable it. In case you are using the free plan, you can use self-signed certificates. Instructions can be found in the Heroku documentation on the topic.