Fly.io で Express を動かすサンプル
クラウドサービスのアカウントを作成する
以下のツールをインストールする
WSL 上で開発する場合、 macOS 、 Linux と同じ環境を構築する
WSL を使わずに Windows 上で開発する場合、以下のツールをインストールする
- Git
- Node.js 20.5.0 以上
- Yarn
- Docker Desktop
- flyctl
main ブランチにプッシュすると、 Fly.io にデプロイされる
詳細は .github/workflows/fly-deploy.yml を参照
GitHub でこのリポジトリをフォークする
$ git clone <フォークしたリポジトリー>
$ cd <リポジトリー名>
asdf のプラグインをインストールする
$ awk '{system("asdf plugin-add " $1)}' .tool-versions
asdf で Node.js をインストールする
$ asdf install
$ yarn
コンテナで PostgreSQL を起動
$ docker compose up --build --detach map_db
環境変数を設定
$ export DATABASE_URL=postgres://postgres:postgres@localhost:5432/postgres
マイグレーションを実行
$ yarn prisma migrate deploy
ローカルでビルド
$ yarn build
ローカルで起動
$ yarn start
ブラウザで http://localhost:5173
にアクセス
ローカルでの PostgreSQL 停止(データは削除されない)
$ docker compose down
コンテナでビルド、起動
$ docker compose up --build
ブラウザで http://localhost:3000
にアクセス
コンテナの停止
$ docker compose down
Fly.io にログイン
$ fly auth login
Fly.io にアプリケーションを作成
$ fly launch
Fly.io にデプロイ
$ fly deploy
Fly.io にデプロイしたアプリケーションを開く
$ fly apps open
$ psql -h localhost -U postgres -d postgres
ローカルデータベースを削除する場合
$ docker compose down --volumes
$ fly postgres connect -a <PostgreSQL のアプリケーション名> -d <Express のアプリケーション名>
GitHub でリポジトリを作成
$ npx --yes @flydotio/node-demo@latest
$ npx node-demo --ems --express --postgresql --tailwindcss --prisma
prisma ディレクトリの schema.prisma を本リポジトリの内容に変更する
$ npx prisma migrate dev --name init
初期データ登録など、必要なマイグレーションを作成する
$ npx --yes @flydotio/dockerfile@latest
docker-compose.yml を本リポジトリの内容で作成する
Fly.io にログイン
$ fly auth login
Fly.io にアプリケーションを作成
$ fly launch
データベースに PostgreSQL を設定する
メモリを 256 MB に設定する
Fly.io のデプロイトークンを作成し、 GitHub リポジトリの Secrets に登録する