Files
Art-gallery/README.md
T
Danila KhodjaefandCursor 2edf577faf Add dev/prod environments with TrueNAS Docker production deploy.
Split PostgreSQL into gallery_dev and gallery_prod, add Docker/Gitea deploy tooling,
SMB image sync, pgAdmin split script, dev:web on Keenetic :5173, and operator docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 15:15:19 +03:00

89 lines
4.2 KiB
Markdown

# Art Gallery
Interactive virtual art gallery: zoomable historical timeline with era click-to-zoom, major event markers (vertical guides into the movement flow), branching art-movement streams (click a movement name to enter its **3D movement gallery** — photorealistic period interiors with painted walls, stone, and wood textures; chronological wings with up to ~55 works each, side-wall windows, wing navigator), one 3D hall per artist (parquet floor, movement-tinted walls, black/gold frames by review status, corridor layout for large catalogs, museum-style exit doors, golden influence lamps, canvas placeholders for missing works, influence-linked exits), painting detail with art-history annotations, prev/next catalog browsing and fullscreen lightbox, debug-mode image audit on painting detail and artist bio (**Checked** / **Fix it** / **More** / **Clear** / **Upload**; painting detail also **Remove entry**), optional **Show more** auto-opens the search picker, Checkup page, preserved gallery camera on return, and Wikipedia-sourced artist biographies.
## Documentation
| Document | Purpose |
|----------|---------|
| [Documentation/basics.md](Documentation/basics.md) | Architecture, layout, user flow |
| [Documentation/environments.md](Documentation/environments.md) | Dev/prod URLs, DB split, deploy, sync |
| [Documentation/setup.md](Documentation/setup.md) | Install, env, npm scripts |
| [Documentation/DB_structure.md](Documentation/DB_structure.md) | PostgreSQL tables |
| [Documentation/API.md](Documentation/API.md) | REST endpoints |
| [Documentation/data-and-images.md](Documentation/data-and-images.md) | Catalog, bios, seeding, image pipeline |
## Stack
- **Backend:** Node.js, Express, PostgreSQL
- **Frontend:** React, Vite, Three.js (`@react-three/fiber`, `@react-three/drei`)
## Setup
1. Copy `.env.example` to `.env` and set database credentials (`DB_NAME=gallery_dev` after [one-time split](Documentation/environments.md)).
2. Install dependencies:
```bash
npm install
cd client && npm install && cd ..
```
3. Apply database schema (requires PostgreSQL superuser for first-time setup):
```bash
npm run migrate
npm run seed
```
4. Enrich the catalog (recommended after seed):
```bash
npm run sync-image-paths # import paintings from data/images/paintings/ when present
npm run fetch-artist-images # link or download artist portraits
npm run fetch-artist-bios # Wikipedia biographies for all artists
npm run expand-catalog # add famous works for artists with thin catalogs
npm run update-influences # art-history lineage links (detail panels + 3D hall)
npm run migrate:artist-palette # optional: JSONB column for PainterPalette enrichment
npm run import-painter-palette # optional: metadata + influence links from Inputs/PainterPalette.csv
npm run migrate:checkup-flags # review/fixed flags for Checkup + debug mode (paintings)
npm run migrate:artist-checkup-flags # same flags for artist portraits (bio debug)
npm run migrate:painting-annotations # art-history notes on painting detail
npm run update-painting-annotations # load curated notes (+ optional --wikipedia)
npm run fetch-images -- --limit=50 # random batch of missing images (10s per work)
npm run fetch-images -- --artist="Claude Monet" # one artist in catalog order
```
5. **Development (public URL):**
```bash
npm run dev:web
```
Open https://devgallery.mysuperlab.netcraze.pro (or http://localhost:5173 locally).
**Production:** https://gallery.mysuperlab.netcraze.pro — see [Documentation/environments.md](Documentation/environments.md) and [infra/docker/DEPLOY-truenas.md](infra/docker/DEPLOY-truenas.md).
## Deployed URLs
| Environment | URL | Host |
|-------------|-----|------|
| Development | https://devgallery.mysuperlab.netcraze.pro | Dev PC `:5173` (Vite) + `:3451` (API) |
| Production | https://gallery.mysuperlab.netcraze.pro | TrueNAS Docker `:5173` |
Operator guide: [Documentation/environments.md](Documentation/environments.md).
## Development
**Public dev (Keenetic):**
```bash
npm run dev:web # Vite :5173, API :3451
```
**Local HMR:**
```bash
npm run dev:server # API — PORT from .env
npm run dev:client # http://localhost:5173 (proxies /api and /images)
```