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` フックにより自動ビルド・再起動。
|