An open API service indexing awesome lists of open source software.

https://github.com/traptitech/piscon-portal-v2


https://github.com/traptitech/piscon-portal-v2

Last synced: 10 months ago
JSON representation

Awesome Lists containing this project

README

          

# piscon-portal-v2

## 開発環境
プロジェクトルートディレクトリに以下のように `.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
```
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](runner/runner_test.go) で使っています。2025/2/26時点でこれを動かすためには、環境変数で `GOEXPERIMENT=synctest` を設定する必要があります。VSCode であれば、 `.vscode/settings.json` に

```json
{
"go.toolsEnvVars": {
"GOEXPERIMENT": "synctest"
}
}
```

を書き込むことで環境変数を設定できます。

### AWS を使ったローカルでの動作

ポータルをローカルのdocker composeで動かし、AWSのインスタンスを操作するには、以下のような設定を行います。

#### 1. AWS CLI のインストール

AWS CLI をインストールします。

#### 2. AWS の認証情報の設定

AWS CLIを使って認証のプロファイルを設定します。`~/.aws/config` と `~/.aws/credentials` ファイルが作成されます。

#### 3. `.env` への追記

`.env` ファイルに以下のように追記します。

```dotenv
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=true
```

#### 4. 起動

```bash
docker compose --file compose.aws.yaml up
```

## protobuf について

[proto/README.md](proto/README.md) を参照してください。