I host side projects on a DigitalOcean droplet running Dokku. For reference:
$ ssh [email protected] sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git
$ ssh [email protected] dokku letsencrypt:cron-job --add
With a Dockerfile or Procfile:
$ ssh [email protected] apps:create $NAME
$ git remote add dokku [email protected]:$NAME
$ git push dokku master
$ ssh [email protected] config:set--no-restart $NAME DOKKU_LETSENCRYPT_EMAIL=${NAME}@natan.la
$ ssh [email protected] letsencrypt $NAME
Remember to map the subdomain with an A record to the droplet.
$ ssh [email protected] sudo dokku ssh-tags:add github-deploy < id_ed25519.pub
Ideally, projects with a Dockerfile should be built "locally" (i.e., not on the droplet) since the droplet isn't particularly powerful.