プロジェクトルートディレクトリに以下のように .env ファイルを用意してください。CLIENT_IDとCLIENT_SECRETはtraQのものです。
DB_USER=root
DB_PASSWORD=password
DB_HOST=db
DB_PORT=3306
DB_NAME=portal
ROOT_URL=http://localhost:8080
SESSION_SECRET=secret
CLIENT_ID=my-client-id
CLIENT_SECRET=my-client-secret
ADMIN_USER_ID={{ traQ user ID (UUID) }}
ADMIN_USER_NAME={{ traQ user name }}
traQで作成するClientは リダイレクトURL に http://localhost:8080/api/oauth2/callback、スコープに openid, profile を指定します。
task up で portal server が 8080番 ポートで起動します。task dev でホットリロード付きで起動します。
Go 1.24で入った experimental な機能である testing/synctest を runner/runner_test.go で使っています。2025/2/26時点でこれを動かすためには、環境変数で GOEXPERIMENT=synctest を設定する必要があります。VSCode であれば、 .vscode/settings.json に
{
"go.toolsEnvVars": {
"GOEXPERIMENT": "synctest"
}
}を書き込むことで環境変数を設定できます。
ポータルをローカルのdocker composeで動かし、AWSのインスタンスを操作するには、以下のような設定を行います。
AWS CLI をインストールします。
AWS CLIを使って認証のプロファイルを設定します。~/.aws/config と ~/.aws/credentials ファイルが作成されます。
.env ファイルに以下のように追記します。
AWS_IMAGE_ID=ami-002d61d6436f85f12 # private-isu の AMI の ID
AWS_INSTANCE_TYPE=c7a.large
AWS_REGION=ap-northeast-1
AWS_SUBNET_ID={{ AWS の Subnet ID }}
AWS_SECURITY_GROUP_ID={{ AWS の Security Group ID }}
AWS_KEY_PAIR_NAME={{ AWS の Key Pair 名 }}
INSTANCE_MANAGER=aws
AWS_PROFILE={{ 2で用意した AWS のプロファイル名 }}
AWS_SHARED_CREDENTIALS_FILE=/app/.aws/credentials
AWS_CONFIG_FILE=/app/.aws/config
AWS_SDK_LOAD_CONFIG=truedocker compose --file compose.aws.yaml upproto/README.md を参照してください。