Dokku run PostgreSQL on another instance/droplet

February 8, 2015 1.9k views


I’ve recently set up an instance with Dokku, and deployed a Rails application running on PostgreSQL with the help of dokku-pg-plugin. Everything works perfect.

However, I would like to spin up another droplet to specifically run the database in a container, without forgoing Dokku. Anyone has experience doing something like that? From what I see dokku-pg-plugin does not have documentation on how to link apps across servers.

Thank you!

1 Answer

If you are running the database on a separate server, your best bet would be to design your app in such a way that it determines the Postgres connection information from environment variables. This way you are able to use Dokku’s built in config managment. It is also a general best practice.

Your database.yml would look something like:

  adapter: postgresql
  encoding: unicode
  database: dbname
  pool: 5
  username: user
  password: <%= ENV['DB_PWD'] %>
  host: <%= ENV['DB_HOST] %>
  port: <%= ENV['DB_PORT'] %>

You would then set the configuration in Dokku with:

dokku config:set myapp DB_HOST= DB_PWD=thisisasecret DB_PORT=5432 
Have another answer? Share your knowledge.