Infrastructure for Dokku

Warning

This is for maintainers of the dokku backend – if you are a regular user of dokku, the information on this page is likely not useful for you, please don’t attempt to run the commands stated in this section.

Infrastructure for Dokku#

Dokku is just a program but must run on some system obviously. It’s not a “real” production system since everything must run on one host, in practice it will probably become a mess as well. It is probably convenient for summer intern rapid deployment iterations, though perhaps just giving them a small dedicated cluster in rancher could work just as well.

Provisioning#

At the time of writing, the only real “scheduler” uses docker. For this reason, running it in docker as part of kubernetes or something is not a great idea since it needs access to the docker process. In light of this, the two main options I would recommend are:

  • provision a dedicated host on a cloud to serve this (install guide has some cloud-specific instructions)

  • run it in a virtual machine, for example, with vagrant which is supported by dokku

Network setup#

Firewall#

Ports 22 (ssh), 80 (http), and 443 (https) must be accessible.

DNS#

A hostname should be configured along with a wildcard CNAME record:

record_type   name                      value
A             dev.maayanlab.cloud     your.host.ip.addr
CNAME         *.dev.maayanlab.cloud   dev.maayanlab.cloud

This is convenient as apps will be mounted at app.dev.maayanlab.cloud