summaryrefslogtreecommitdiff
path: root/README.md
blob: 68b2c502bc54614896bd68fc312b2f6451a59c43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# whois.band

バンドとアーティストの情報を管理するシンプルなサイト。ログイン不要、誰でも編集可能。

## 機能

- バンド情報の登録・編集(バンド名、活動拠点、リンク、メンバー)
- アーティスト情報の独立管理(名前、リンク)
- UUID と slug の2種類の URL でアクセス可能
- 編集履歴管理(更新メッセージ + IP アドレス + JSON スナップショット)

## URL 構造

| URL | 内容 |
|---|---|
| `/` | バンド一覧 |
| `/bands/of/:uuid` | バンド詳細 (UUID) |
| `/bands/named/:slug` | バンド詳細 (slug) → UUID URL へリダイレクト |
| `/bands/of/:uuid/edit` | バンド編集 |
| `/bands/of/:uuid/history` | バンド編集履歴 |
| `/bands/new` | バンド新規作成 |
| `/artists/of/:uuid` | アーティスト詳細 (UUID) |
| `/artists/named/:slug` | アーティスト詳細 (slug) → UUID URL へリダイレクト |
| `/artists/of/:uuid/edit` | アーティスト編集 |
| `/artists/of/:uuid/history` | アーティスト編集履歴 |
| `/artists/new` | アーティスト新規作成 |

## 技術スタック

- [React Router v7](https://reactrouter.com/) (SSR フレームワーク)
- [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) (SQLite)
- [Tailwind CSS v4](https://tailwindcss.com/)
- TypeScript

## 開発

```bash
npm install
npm run dev       # 開発サーバー起動 (http://localhost:5173)
npm run build     # プロダクションビルド
npm run typecheck # 型チェック
```

DB ファイル (`whois.db`) はプロジェクトルートに自動生成されます。

## デプロイ

```bash
git push hetzner master
```

Hetzner サーバー上で `git push` フックにより自動ビルド・再起動。