Vultr on Dokku

Vultr + Dokku

Vultr

  • Cloud Compute
  • Tokyo region
  • OS: Ubuntu 20.04 x64
  • $5/month

Login

ssh root@[ip_address]

Swap space

cat /proc/swaps
# Filename        Type    Size  Used  Priority
# create a folder for swap
mkdir /var/swap
# create 2GB swap file
dd if=/dev/zero of=/var/swap/swap0 bs=1M count=2048
# Set permission
chmod 600 /var/swap/swap0
# Setup swap configuration
mkswap /var/swap/swap0
swapon /var/swap/swap0
echo '/var/swap/swap0 swap swap defaults 0 0' >> /etc/fstab
cat /proc/swaps

Install Dokku

wget https://raw.githubusercontent.com/dokku/dokku/v0.26.6/bootstrap.sh
sudo DOKKU_TAG=v0.26.6 bash bootstrap.sh

Domain settings

Vultr DNS

  • ip_address
  • mydomain

Google domains

  • カスタムネームサーバー
    • ns1.vultr.com
    • ns2.vultr.com

Setup SSH key and Virtualhost Settings

# usually your key is already available under the current user's `~/.ssh/authorized_keys` file
cat ~/.ssh/authorized_keys | dokku ssh-keys:add admin

# you can use any domain you already have access to
dokku domains:set-global [mydomain]

Firewall

sudo ufw allow http
sudo ufw allow https

HTTPS

# Dokkuホスト上で
# letsencryptプラグインをインストールする
# プラグインのインストールにはrootが必要なので、ユーザを変更してください
sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git

# プラグインの設定を行う
dokku config:set --global DOKKU_LETSENCRYPT_EMAIL=[your@email.tld]

# アプリケーション用に独自のカスタムドメインを設定する
dokku domains:set [app_name] [app_name].[mydomain]

# letsencryptを有効にする
dokku letsencrypt:enable [app_name]

# 自動更新を有効にする
dokku letsencrypt:cron-job --add