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
|
# Dennis Konkol Portfolio - Modern Dark Theme
|
||||||
|
|
||||||
Ein modernes, responsives Portfolio mit dunklem Design, coolen Animationen und einem integrierten Admin-Dashboard.
|
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