サーバ構築
開発 / リリース環境としては、Docker をベースにしているため、各種 docker-compose.ymlが用意されている。
Prerequire
環境構築の前の事前準備
環境変数の設定
src/.envに環境変数を設定する
.env
# Localなら、localhostのpublic/を参照しにいく
NEXT_PUBLIC_ASSETS_S3_URL=http://localhost:3000
# Skywayのcredentialを設定
NEXT_PUBLIC_SKYWAY_APP_ID='**********' #Skyway application ID
NEXT_PUBLIC_SKYWAY_SECRET='*********' #Skyway application secret
# Room IDは、以下の値で固定
NEXT_PUBLIC_SKYWAY_ROOMID=cell4-conn
Docker ベースの起動
Local
開発環境として構築する場合は、docker-compose.dev.yml で、開発環境を立ち上げる。
ローカルでdockerを起動
docker compose -f docker-compose.dev.yml up
Cloud
現状の CELL4 環境は Azure 環境で構築しているため、.github/workflow/ 内部にある、github workflow で自動構築している。
note
同時接続数は 1 の想定のため、オートスケール / 負荷分散などは設計していない
Click >>> 検証立ち上げworkflow定義
検証環境の立ち上げworkflow定義
name: Deploy Static Web App On Preview ENV
on:
push:
branches:
- develop
- preview
- main
workflow_dispatch:
concurrency:
group: deploy-preview
cancel-in-progress: true
jobs:
deploy:
runs-on: ubuntu-latest
environment: preview
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set config for environment
run: |
cp .swa/staticwebapp.config.preview.json src/staticwebapp.config.json
- name: Create .env file for Next.js
working-directory: ./src
run: |
echo "NEXT_PUBLIC_ASSETS_S3_URL=${{ vars.NEXT_PUBLIC_ASSETS_S3_URL }}" > .env
echo "NEXT_PUBLIC_SKYWAY_APP_ID=${{ secrets.NEXT_PUBLIC_SKYWAY_APP_ID }}" >> .env
echo "NEXT_PUBLIC_SKYWAY_SECRET=${{ secrets.NEXT_PUBLIC_SKYWAY_SECRET }}" >> .env
echo "NEXT_PUBLIC_SKYWAY_ROOMID=${{ vars.NEXT_PUBLIC_SKYWAY_ROOMID }}" >> .env
- name: Deploy to Azure Static Web Apps
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
action: 'upload'
app_location: 'src'
api_location: ''
output_location: 'out'
deployment_environment: preview