This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
## videoreg.ru
|
||||
|
||||
Small Next.js video registry using TypeScript, App Router, FSD-oriented folders, and a primitive file-backed JSON database.
|
||||
|
||||
### Local development
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
The app runs on [http://localhost:3000](http://localhost:3000).
|
||||
|
||||
### Data storage
|
||||
|
||||
By default records are stored in `data/videoreg.json`. Override the path with:
|
||||
|
||||
```bash
|
||||
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 into `master`;
|
||||
- `.gitea/workflows/master.yml`: quality gate, image build, push, and direct Swarm deploy from `master`.
|
||||
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user