Skip to main content

サーバ構築

開発 / リリース環境としては、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