ソースコード: GitHub
クライアントはウェブブラウザ(Chrome, Firefox, Safari)のみで動作し,特別なソフトウェアのインストールは不要です。AWSを利用する際の構成例を以下に示します。
上記の構成が,AWSの無料使用枠(Ubuntu 18.04; t2.micro EC2インスタンス, db.t2.micro S3インスタンス)で動作することを確認済みです(※ ただし,下記のビルド・起動のセクションを参照)。
CloudFrontにおいて,下記のようにBehaviorを割り振ります。
このように構成することで,ユーザーからは同一のドメインへのHTTPS通信としてアクセスが可能になります。
CloudFrontとALBにドメイン名を設定(Route 53を使用)し,TLS証明書を設定します(AWS Certificate Managerを使用)。
APIサーバー,ソケットサーバー,適切なセキュリティグループ,インバウンドルールを設定しておきます,
domain: app.example.com # ユーザーがアクセスするドメイン名
api_server: # APIサーバーの設定
port: 3000 # ポート
tls: false # TLSの有無
http2: false # HTTP2の使用(true: HTTP2, false: HTTP1.1)
cluster: 0 # 複数ワーカーの使用(0: オフ, 1以上: ワーカー数)
debug_log: true # デバッグログの使用
socket_server: # ソケットサーバーの設定(APIサーバーと同様)
port: 5000
tls: false
http2: false
cluster: 0
debug_log: true
default_rooms: # 新規ユーザーがデフォルトで入室可能な会場のID一覧
- Rxxxxxxx
certificate_folder: /etc/letsencrypt/live/YOUR_DOMAIN.com # (TLSを使用する場合)証明書の格納フォルダ
postgresql: postgres://postgres@localhost/virtual_poster # PostgreSQLの接続文字列
redis: redis://localhost:6379 # Redisの接続文字列
aws:
access_key_id: xxxxxxxxxxx # AWS Key ID
secret_access_key: xxxxx # AWS アクセスキー
region: ap-northeast-1 # AWSリージョン
s3:
upload: true # S3へのポスター画像をアップロード ON/OFF
bucket: BUCKET_NAME # S3バケット名
via_cdn: true # S3へのアクセスにCloudFrontを経由
cloud_front:
id: DISTRIBUTION_ID # CloudFrontのdistribution ID
domain: app.example.com # CloudFrontのドメイン名(通常上記のdomainと同じ)
key_pair_id: XXXXXX # CloudFrontのキーペアID
private_key: ./cloud_front_priv.pem # CloudFrontの秘密鍵
firebase_auth_credential: xxxxx.json # Firebase Authenticationの認証情報のJSONファイルのパス
email:
enabled: true
domain: YOUR_EMAIL_DOMAIN.com
max_rate_per_sec: 1
max_rate_per_day: 50
max_rate_user_per_hour: 1
profile_keys:
- url
- url2
- url3
- display_name_full
- affiliation
cookie_expires: 10080
user_registration: true # 管理者の事前登録なしのユーザー自身による登録を許可する
debug_token: xxxxx # デバッグ用のパスワード
説明
不明な点がある場合や,サーバー設定にサポートが必要な場合には,作者(甲斐洋行; メール kai [アット] tohoku.ac.jp)までご連絡ください。可能な範囲で対応させていただきます。