- Create a new Scalingo application
- Add PostgreSQL (officially recommended by n8n) addon
- Define and configure required environment variables (cf. below)
- (bonus) Activate "Force HTTPS" in Scalingo app settings
- (bonus) Link your domain name to the app (in "Domain/DSL" section into the Scalingo app dashboard)
It is recommended to use Scalingo archive deployment instead of code source deployment because we want to install a finished product (but if you want, you can).
Good to know! GitHub allows downloading ZIP files and tarballs for each release of each repository that allows it. Ex: https://github.com/jbuget/n8n-scalingo/archive/v0.101.0.zip
Use the Scalingo CLI deploy
command with GitHub project tar.gz URL as following:
scalingo --app my-n8n-app deploy https://github.com/jbuget/n8n-scalingo/archive/v0.101.0.tar.gz
Running n8n on Scalingo requires at least to link Scalingo app port (randomly attributed) to n8n internal server. Long words, short step.
Just add the following environment variable: N8N_PORT=$PORT
.
If you don't want to lose your settings, workflows and execution data each time your Scalingo app crashes or restarts, you MUST configure a database.
Good to know! n8n recommends to use PostgreSQL.
According to the n8n documentation, and thanks to the SCALINGO_POSTGRESQL_URL
automatically generated variable define the following environment variables:
DB_POSTGRESDB_DATABASE=xxx
DB_POSTGRESDB_HOST=xxx.postgresql.dbs.scalingo.com
DB_POSTGRESDB_PASSWORD=xxx
DB_POSTGRESDB_PORT=xxx
DB_POSTGRESDB_USER=xxx
DB_TYPE=postgresdb
In order to enable n8n webhooks and other future or advanced features, set up the n8n publication variables:
N8N_HOST=my.n8n.app.dns
N8N_PROTOCOL=https
Configuring n8n through Scalingo is as easy as:
- read the official documentation and
- define the environment variables you need into your Scalingo application.
Thanks to the excellent work of the n8n team, you have only a very few to do to upgrade from v(X) to v(X+1).
Just deploy a new release archive as described above with Scalingo deploy service.
In this repository, we will release a new version each time the offical n8n team will.
Good to know! The only thing we have to do, is to bump the fixed version of n8n dependency in the package.json (with its lock file). You can even provide a Pull Request to help us!
Even the database migration scripts are run automatically if necessary at the app startup. 😎
This project and its code source are under MIT license.