Digital Ocean has a one-click app for Dokku. I wanted to try it out. I don't have a domain for it, but thought I'd just use the IP address and be on my merry way.
(The short version - run
sudo ufw allow 3000 and access your site at ip_address:3000 - Dokku doesn't set up port 80 if you don't set up a virtual host, and only listens on 3000. The droplet blocks 3000 by default. This fixes that, though you wouldn't want to use 3000 for anything but testing/playing around with it.)
Every time, I would spin up the droplet, go to the URL, and get a screen like this:
Note that virtualhost naming is unchecked.
So I click "Finish Setup", let it complete, and it takes me to the generic Dokku deploy instructions at http://dokku.viewdocs.io/dokku~v0.11.3/deployment/application-deployment/
I follow the directions, get it set up as a git remote, push to master, and am looking forward to seeing it running so I go to my IP (18.104.22.168 in the example above) and... nothing.
So I ssh in and notice that for some odd reason nothing's listening on port 80 (or 443 for https), and think "ok I'll try 3000" but navigating to 22.214.171.124:3000 does... nothing. I can at least
curl localhost:3000 while ssh'ed in though!
There are two issues here:
1) Dokku apparently won't set up nginx to listen on port 80 if you don't have a virtual host. I'm not sure why this is, but I only made this to give Dokku a try so using port 3000 so I don't really care.
2) The Droplet uses ufw (uncomplicated firewall). This blocks port 3000. To fix it, run
sudo ufw allow 3000. (while ssh'ed in of course). If you still have trouble you might also need to run
sudo ufw enable.
That should do it! At least, it did for me. This seems to be a common enough problem and the answer at https://www.digitalocean.com/community/questions/i-have-just-created-a-droplet-one-click-dokku-i-can-t-access-it-via-the-browser-using-the-ip-address isn't really an answer.