108 lines
2.3 KiB
Markdown
108 lines
2.3 KiB
Markdown
# Codex Project Notes
|
|
|
|
## Project
|
|
|
|
`WatchLink` is a Dockerized Next.js + Postgres web app for persistent shared watch rooms with accounts, friends, roles, permissions, admin setup, persistent realtime playback sync, invites, room chat, and profile uploads.
|
|
|
|
Repository:
|
|
|
|
```text
|
|
MrSphay/WatchLink
|
|
```
|
|
|
|
Current organization remote:
|
|
|
|
```text
|
|
Code-Inc/WatchLink
|
|
```
|
|
|
|
## Commands
|
|
|
|
```text
|
|
Install: npm install
|
|
Dev: npm run dev
|
|
Lint: npm run lint
|
|
Typecheck: npm run typecheck
|
|
Test: npm run test
|
|
Build: npm run build
|
|
Audit: npm run audit
|
|
Release check: npm run release:check
|
|
Docker: docker compose up --build
|
|
Database migrate: npm run db:migrate
|
|
```
|
|
|
|
## Stack
|
|
|
|
```text
|
|
Next.js App Router, React, TypeScript, Prisma, Postgres, Socket.IO, Docker
|
|
```
|
|
|
|
Database setup:
|
|
|
|
```text
|
|
Prisma migrations live in prisma/migrations and are applied in Docker with prisma migrate deploy.
|
|
```
|
|
|
|
Runtime uploads:
|
|
|
|
```text
|
|
Avatar uploads are stored in /app/public/uploads and mounted through the avatar-uploads Docker volume.
|
|
```
|
|
|
|
Package manager:
|
|
|
|
```text
|
|
npm
|
|
```
|
|
|
|
## Pull Requests
|
|
|
|
This project uses the Gitea organization repository directly rather than a
|
|
personal fork workflow. If API-based PR creation is unavailable or
|
|
`GITEA_TOKEN` is not a valid API token, create PRs over SSH with Gitea AGit:
|
|
|
|
```text
|
|
git push -o topic=<branch-name> origin HEAD:refs/for/<base-branch>
|
|
```
|
|
|
|
Example:
|
|
|
|
```text
|
|
git push -o topic=codex/project-hygiene-followups origin HEAD:refs/for/feature/room-invites-chat-moderation
|
|
```
|
|
|
|
After creation, validate the PR with the public API or web UI and poll any
|
|
started Gitea checks until success or a concrete blocker is known.
|
|
|
|
## Build Artifacts
|
|
|
|
Next.js standalone build output:
|
|
|
|
```text
|
|
.next/standalone
|
|
```
|
|
|
|
Docker image:
|
|
|
|
```text
|
|
git.wilkensxl.de/mrsphay/watchlink:latest
|
|
```
|
|
|
|
## Security Rules
|
|
|
|
- Do not commit secrets, `.env` files, tokens, private keys, or certificates.
|
|
- Use `.env.example` for documentation only.
|
|
- Review `docs/security-review.md` before release work.
|
|
- Keep package publishing secrets in Gitea secrets as `REGISTRY_TOKEN`.
|
|
|
|
## Release Rules
|
|
|
|
Before a release:
|
|
|
|
1. run `npm run release:check`,
|
|
2. verify Docker build,
|
|
3. verify Gitea Actions are green,
|
|
4. verify the pushed container image can be pulled,
|
|
5. update README and changelog,
|
|
6. create tags/releases only when explicitly requested.
|