技術 | 詳細 |
---|---|
Next.js | フロントエンドフレームワーク |
TypeScript |
バックエンド
技術 | 詳細 |
---|---|
Go 1.20.3 | APIサーバー |
Gin | Webフレームワーク |
PostgreSQL | RDB |
インフラ
技術 | 詳細 |
---|---|
ECS (Fargate) | コンテナの管理 |
Route 53 | 独自ドメインを登録する目的 |
S3 | 画像の保存 |
Docker | リリース時のコンテナイメージを軽量にする目的でマルチステージビルドを採用 |
Terraform | インフラのコード化 |
erDiagram
users ||--o{ posts : "1人のユーザーは0以上の投稿を持つ"
users ||--o{ follows : "1人のユーザーは0以上のフォローを持つ"
posts ||--o| reply_relations : "リプライのツリー構造"
posts ||--o{ likes : "1つのポストは0以上のいいねを持つ"
users {
UUID id PK
string user_name
string name
string icon_url
string bio
timestamp created_at
timestamp updated_at
}
follows {
UUID user_id PK,FK
UUID followee_id PK,FK
timestamp created_at
timestamp updated_at
}
posts {
UUID id PK
UUID user_id
string body
timestamp created_at
timestamp updated_at
}
reply_relations {
UUID post_id PK,FK
UUID parent_id PK,FK
timestamp created_at
}
likes {
UUID post_id PK,FK
UUID user_id PK,FK
timestamp created_at
timestamp updated_at
}
mkcertを使用します。
mkcert -install
cd reverse-proxy-for-dev && \
mkcert -cert-file ./localhost.pem -key-file ./localhost-key.pem localhost "host.docker.internal" "127.0.0.1"
docker compose up
VSCodeのコマンドパレットでDev Containers: Open Folder in Containerを実行し、restapi
ディレクトリを選択します。
VSCodeのコマンドパレットでDev Containers: Open Folder in Containerを実行し、webapp
ディレクトリを選択します。