diff --git a/README.md b/README.md index 2e9a1cd..e48769d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +# Quick links + +- **Ops / setup / deployment / testing**: `docs/OPERATIONS.md` + # Dennis Konkol Portfolio - Modern Dark Theme Ein modernes, responsives Portfolio mit dunklem Design, coolen Animationen und einem integrierten Admin-Dashboard. diff --git a/docs/OPERATIONS.md b/docs/OPERATIONS.md new file mode 100644 index 0000000..261cecb --- /dev/null +++ b/docs/OPERATIONS.md @@ -0,0 +1,97 @@ +# Operations Guide (Dev, Texts, Testing, Deployment) + +## Where do I update texts? + +### 1) UI texts (recommended default) +- **English**: `messages/en.json` +- **Deutsch**: `messages/de.json` + +These are loaded via `next-intl` and are the source of truth for **labels, headings, buttons, validation messages** etc. + +### 2) Page content via CMS (optional overrides) +Some sections support a CMS override via `/api/content/page` (falls back to `messages/*` automatically): +- `home-hero` +- `home-about` +- `home-contact` + +If your DB/CMS tables are not available, the site will **not crash** and will keep showing the `messages/*` content. + +## Local development + +### Requirements +- Node.js 18+ +- Docker (optional but recommended for DB/Redis) + +### Install +```bash +npm ci +``` + +### Run (recommended) +```bash +npm run dev +``` + +### Run without Docker (no DB/Redis) +```bash +npm run dev:simple +``` + +### Run plain Next.js dev server +```bash +npm run dev:next +``` + +### Environment +Copy `env.example` → `.env.local` and adjust. + +## Testing + +### Unit tests (Jest) +```bash +npm run test +``` + +### E2E tests (Playwright) +```bash +npm run test:e2e +``` + +### Useful subsets +```bash +npm run test:hydration +npm run test:critical +``` + +## Deployment overview + +### Branches +- `dev` → staging/dev environment +- `production` → live environment + +Deployments are driven by CI workflows in `.gitea/workflows/`. + +### Health checks +- `/api/health` + +## Nginx Proxy Manager (high level) + +Create proxy hosts for your domains pointing to the respective ports. +If you see `421 Misdirected Request`, make sure the reverse proxy forwards `Host` properly and consider forcing `proxy_http_version 1.1`. + +## Gitea variables/secrets (high level) + +Minimum required secrets/variables depend on which features you enable, but typical production/staging need: +- Base URLs (per environment) +- Admin auth/session secrets +- Email credentials +- Optional n8n webhook secret/token + +## Troubleshooting + +### “docker compose not found” +Use `npm run dev:simple` or install Docker. + +### Prisma migrations / existing DB +If you introduce migrations into an existing DB, baseline/resolve the initial migration once to avoid “table already exists” issues. +