Hasura on Dokku

DokkuでHasuraを構築

Hasuraアプリ作成

dokku apps:create hasura

ドメイン設定

dokku domains:add hasura hasura.[your.domain.com]

DB作成

# sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git
dokku postgres:create hasura-db
dokku postgres:link hasura-db hasura

Hasura settings

dokku config:set hasura HASURA_GRAPHQL_DATABASE_URL=$(dokku postgres:info hasura-db --dsn) HASURA_GRAPHQL_ADMIN_SECRET="your_secret_password" HASURA_GRAPHQL_ENABLE_CONSOLE="true"
dokku proxy:ports-set hasura http:80:8080
docker pull hasura/graphql-engine:latest && dokku git:from-image hasura hasura/graphql-engine:latest

HTTPS化

# sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git
dokku config:set --no-restart hasura DOKKU_LETSENCRYPT_EMAIL=[your-email@your.domain.com]
dokku letsencrypt:enable hasura
dokku letsencrypt:cron-job --add

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

PWA対応したシンプルな時計を表示するWebページを作りました

最近、iPad用に卓上スタンドを購入しました。

https://amzn.to/3mVG1Txamzn.to

iPadに表示する用のシンプルな時計を探しましたがあまり良さそうなものがなく、 時計を表示するWebサイトはあったんですが、PWA対応がされてなかったりしました。 あっても文字サイズが小さかったりしたので、自作しました。

PWA対応したシンプルな時計

https://nextjs-clock.vercel.app/

ソースコード

github.com

技術

気になったサービス・技術 2021/10/09

Supabase

Firebaseの代替え?

supabase.io

Render

Herokuの代替え?

render.com

MeiliSearch

Algoliaの代替え?

www.meilisearch.com

Marp

マークダウンでスライドづくり

marp.app

Slidev

同じくマークダウンでスライドづくり

sli.dev

DbGate

データベースクライアントアプリ

dbgate.org

Railsのアップグレードに関する資料・記事

Rails アップグレードガイド

railsguides.jp

永久保存版Railsアップデートガイド

inside.pixiv.blog

Railsアップグレード百景

speakerdeck.com

Rails6にいつ上げるか?

www.slideshare.net

永久保存版!?伊藤さん式・Railsアプリのアップグレード手順

qiita.com

継続的Railsアップグレード / Continuous Rails Upgrade

speakerdeck.com