Tag Archives: dokku

Here’s a (very) quick and dirty overview of the steps. Follow everything below in order and you should have your node.js app (optionally running SailsJS) deployed on a dokku server on DigitalOcean within a few minutes.

Create Droplet

Set up Dokku

* Visit in your browser: http://YOUR-SERVER-IP/
* Submit, optionally setting the app URL to use subdomains. Most settings should default to correct at this point.

Initialize the app access dokku

* cat ~/.ssh/id_rsa.pub | ssh [email protected] "sudo sshcommand acl-add dokku YOUR-APP-NAME"
** Note that if instead of YOUR-APP-NAME you put a full domain it will use that as the URL instead of setting up a subdomain. Eg api.dustinbolton.com instead of dustinbolton-api

Create file to tell server what to run on deployment:
* touch Procfile && open Procfile
* Add the following into this new file & save:
* web: sails lift
** For non-sails framework, instead of “sails lift” this would be “node app.js”.

Deploy & launch the app

* git push -u production master
<3>Done!

If you need to manually re-run the app or see the output of the run attempt (such as to troubleshoot):* ssh [email protected]cd /home/dokku/YOUR-APP-NAMEdokku run YOUR-APP-NAME sails lift
(or instead of “sails lift”, “node app.js”)

Adapted from the guide at:
http://matthewpalmer.net/blog/2014/02/19/how-to-deploy-node-js-apps-on-digitalocean-with-dokku/

Create Database Instance

dokku mariadb:create YOUR-APP-NAME
* This creates the mariadb instance and links it to your app automatically since the name matches. The database name is “db” by default.

You can use the credentials displayed or access them via environmental variables such by: process.env.DB_USER

Setting Custom Environment Variables

Database environment variables should automatically exist but I have seen them drop off. I have not found the cause yet and have decided to manually set the one(s) I need for the time being.dokku config:set YOUR-APP-NAME DATABASE_URL=whateverhere

Dustin Bolton – Software Engineer, Web & WordPress Developer

About Me

I have a degree in Computer Engineering and have excelled at computing from a young age. I enjoy complex problems ranging from software development, customized home renovations, or researching the complexities of biology and researching medical journals for fun. When the weather is nice I love exploring the outdoors and when not, playing with technologies such as Node.js, with which I created the popular note-taking site Typity.com.

From 1/1/2010 through 2/1/2018 I was employed at iThemes.com where I created many WordPress plugins, the most popular of which was BackupBuddy which under my watch ran on over a MILLION websites. Being almost the sole developer on such a popular plugin for 8 years was one of the most challenging yet rewarding adventures!