Add CLAUDE.md for shared project context
This commit is contained in:
@@ -0,0 +1,34 @@
|
|||||||
|
# NAS Tools Project
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
- Synology DS224+ (x86_64, 18GB RAM), Tailscale IP: `100.78.131.124`, LAN: `192.168.31.221`
|
||||||
|
- Docker: `/volume1/@appstore/ContainerManager/usr/bin/docker`, compose dirs: `/volume1/docker/*`
|
||||||
|
- Caddy VPS (`161.33.182.109`, Tailscale: `100.109.198.126`): reverse proxy for `nas.jimmygan.com` → NAS:4000, `music.jimmygan.com` → NAS:4533
|
||||||
|
- Build VPS (server2, `158.101.140.85`, Tailscale: `100.70.115.1`): podman, fast network for pulling images
|
||||||
|
|
||||||
|
## Dashboard
|
||||||
|
- Backend: Python FastAPI (`dashboard/backend/`)
|
||||||
|
- Frontend: Svelte 5 + Tailwind CSS (`dashboard/frontend/`)
|
||||||
|
- Svelte 5 runes: use `$state`, `$props`, `$bindable` (not legacy `export let`)
|
||||||
|
- Sidebar: categorized as Main (Overview, Docker, Files, Terminal), Media (Navidrome, Jellyfin, Audiobookshelf, Immich), Tools (OpenClaw, Repos, Gitea Web, Stirling PDF, Vaultwarden, Speedtest)
|
||||||
|
- New pages: create route in `src/routes/`, import in `App.svelte`, add to appropriate category in `Sidebar.svelte`
|
||||||
|
|
||||||
|
## Build & Deploy
|
||||||
|
- Build images on Mac: `docker build --platform linux/amd64`
|
||||||
|
- Transfer: `docker save <image> | ssh zjgump@100.78.131.124 "/volume1/@appstore/ContainerManager/usr/bin/docker load"`
|
||||||
|
- Deploy: `git push` triggers Gitea Actions CI (`docker compose up -d --pull never`) — do NOT manually restart
|
||||||
|
- CI workflow `deploy.yml` is stored in Gitea, not in this repo
|
||||||
|
|
||||||
|
## Synology Quirks
|
||||||
|
- No `crontab` — edit `/etc/crontab` with `sudo` + `printf`, restart crond
|
||||||
|
- No `scp` subsystem — use `cat file | ssh ... 'cat > dest'`
|
||||||
|
- ACLs override Unix perms — use `sudo chmod 777` + `synoacltool -enforce-inherit` for bind mounts
|
||||||
|
|
||||||
|
## DNS
|
||||||
|
- dnsmasq on NAS resolves `*.jimmygan.com` → `161.33.182.109` (Caddy VPS)
|
||||||
|
- Tailscale split DNS: `jimmygan.com` → NAS (queries hit dnsmasq)
|
||||||
|
- All paths (LAN, Tailscale, public) route through Caddy for TLS
|
||||||
|
|
||||||
|
## Proxy API
|
||||||
|
- URL: `https://www.bytecatcode.org`
|
||||||
|
- Models: `claude-opus-4-6`, `claude-sonnet-4-6`, `claude-haiku-4-5-20251001` (no date-suffixed names)
|
||||||
Reference in New Issue
Block a user