Here is a list of steps to deploy a PostgREST instance to Dokku.
Create a new app.
dokku apps:create pgrest-myproject
Add a port mapping from 3000
(PostgREST container) to 80
(host).
dokku ports:add pgrest-myproject http:80:3000
Create a new PostgreSQL database using the dokku-postgres plugin and link it to our project.
dokku postgres:create pgrest-myproject
dokku posgres:link pgrest-myproject pgrest-myproject
A new environment variable will be created:
=====> pgrest-myproject
DATABASE_URL: postgres://postgres:alongpass@dokku-postgres-pgrest-myproject:5432/pgrest_myproject
But we need to define the same value in a variable named PGRST_DB_URI
so PostgREST can access the database.
dokku config:set pgrest-myproject PGRST_DB_URI="postgres://postgres:alongpass@dokku-postgres-pgrest-myproject:5432/pgrest_myproject"
Pull and deploy the Docker image from dockerhub.
docker pull postgrest/postgrest:latest
docker tag postgrest/postgrest:latest dokku/postgrest:latest
dokku git:from-image pgrest-myproject dokku/postgrest:latest
Add a Let’s Encrypt TLS certificate with the Dokku letsencrypt plugin.
dokku letsencrypt:set pgrest-myproject email <your-email>
dokku letsencrypt:enable pgrest-myproject