1.1 KiB
1.1 KiB
videoreg.ru
Small Next.js video registry using TypeScript, App Router, FSD-oriented folders, and a primitive file-backed JSON database.
Local development
npm install
npm run dev
The app runs on http://localhost:3000.
Data storage
By default records are stored in data/videoreg.json. Override the path with:
VIDEOREG_DB_FILE=/absolute/path/videoreg.json npm run dev
Reads are intentionally cached aggressively:
- process memory cache for the primitive JSON database;
- Next.js cache tag for dashboard/API reads;
- long HTTP cache headers on the read API.
Writes call revalidateTag and update the process cache.
Deployment
Gitea Actions runs:
.gitea/workflows/pr.yml: quality gate for pull requests intomaster;.gitea/workflows/master.yml: quality gate, image build, push, and direct Swarm deploy frommaster.
The Swarm stack defaults to one replica on a manager node because the primitive database is a mounted JSON file. Use a real database before raising replicas above one or spreading the service across nodes.