docs: add consolidated operations guide
Co-authored-by: dennis <dennis@konkol.net>
This commit is contained in:
@@ -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.
|
||||
|
||||
97
docs/OPERATIONS.md
Normal file
97
docs/OPERATIONS.md
Normal file
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user