2.3 KiB
2.3 KiB
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:
MrSphay/WatchLink
Current organization remote:
Code-Inc/WatchLink
Commands
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
Next.js App Router, React, TypeScript, Prisma, Postgres, Socket.IO, Docker
Database setup:
Prisma migrations live in prisma/migrations and are applied in Docker with prisma migrate deploy.
Runtime uploads:
Avatar uploads are stored in /app/public/uploads and mounted through the avatar-uploads Docker volume.
Package manager:
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:
git push -o topic=<branch-name> origin HEAD:refs/for/<base-branch>
Example:
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:
.next/standalone
Docker image:
git.wilkensxl.de/mrsphay/watchlink:latest
Security Rules
- Do not commit secrets,
.envfiles, tokens, private keys, or certificates. - Use
.env.examplefor documentation only. - Review
docs/security-review.mdbefore release work. - Keep package publishing secrets in Gitea secrets as
REGISTRY_TOKEN.
Release Rules
Before a release:
- run
npm run release:check, - verify Docker build,
- verify Gitea Actions are green,
- verify the pushed container image can be pulled,
- update README and changelog,
- create tags/releases only when explicitly requested.