fix(admin): persist data directory and pass env vars
This commit is contained in:
parent
99e8201745
commit
1d7e7c41c9
39 changed files with 1297 additions and 32 deletions
45
README.md
45
README.md
|
|
@ -7,6 +7,8 @@ Eigenständige öffentliche Firmenwebsite für Funktechnik Schubert. Dieses Proj
|
|||
- Next.js 16 App Router
|
||||
- TypeScript strict
|
||||
- Serverseitige API-Routen für Kontakt und Reparaturannahme
|
||||
- Geschützter Admin-Bereich unter `/admin`
|
||||
- Lokale Foundation-Datenablage für Anfragen und Einstellungen
|
||||
- Docker
|
||||
- Nginx/Reverse-Proxy-fähig
|
||||
- SEO Metadata, Sitemap und robots.txt
|
||||
|
|
@ -21,6 +23,16 @@ Eigenständige öffentliche Firmenwebsite für Funktechnik Schubert. Dieses Proj
|
|||
- `/kontakt`
|
||||
- `/impressum`
|
||||
- `/datenschutz`
|
||||
- `/admin/login`
|
||||
- `/admin`
|
||||
- `/admin/kontaktanfragen`
|
||||
- `/admin/reparaturanfragen`
|
||||
- `/admin/website`
|
||||
- `/admin/medien`
|
||||
- `/admin/einstellungen`
|
||||
- `/admin/smtp`
|
||||
- `/admin/seo`
|
||||
- `/admin/system`
|
||||
|
||||
## Lokale Entwicklung
|
||||
|
||||
|
|
@ -72,17 +84,48 @@ cp .env.example .env
|
|||
Variablen:
|
||||
|
||||
- `NEXT_PUBLIC_SITE_URL`
|
||||
- `ADMIN_EMAIL`
|
||||
- `ADMIN_PASSWORD`
|
||||
- `ADMIN_SESSION_SECRET`
|
||||
- `AUTH_COOKIE_SECURE`
|
||||
- `OLYMPUS_INTAKE_API_URL`
|
||||
- `OLYMPUS_INTAKE_API_TOKEN`
|
||||
|
||||
Die Olympus-Variablen sind nur für eine spätere serverseitige Integration vorbereitet. Sie werden nicht im Browser verwendet.
|
||||
|
||||
Für lokale Entwicklung kann `AUTH_COOKIE_SECURE=false` bleiben. Produktiv muss HTTPS verwendet und `AUTH_COOKIE_SECURE=true` gesetzt werden. `ADMIN_SESSION_SECRET` muss produktiv ein langer zufälliger Wert sein.
|
||||
|
||||
## API-Routen
|
||||
|
||||
- `POST /api/repair`
|
||||
- `POST /api/contact`
|
||||
- `POST /api/admin/login`
|
||||
- `POST /api/admin/logout`
|
||||
- `PATCH /api/admin/contact/[id]`
|
||||
- `PATCH /api/admin/repair/[id]`
|
||||
- `POST /api/admin/settings`
|
||||
- `POST /api/admin/smtp`
|
||||
- `GET/POST /api/admin/media`
|
||||
|
||||
Aktuell validieren die Routen serverseitig, geben klare JSON-Antworten zurück und schreiben nur technische Metadaten in Server-Logs. Es werden keine Nachrichteninhalte oder Tokens geloggt.
|
||||
Aktuell validieren die Routen serverseitig, geben klare JSON-Antworten zurück und schreiben nur technische Metadaten in Server-Logs. Es werden keine Nachrichteninhalte oder Tokens geloggt. Kontakt- und Reparaturanfragen werden lokal unter `data/*.json` gespeichert und nicht versioniert.
|
||||
|
||||
## Admin-Bereich
|
||||
|
||||
Der geschützte Admin-Bereich ist unter `/admin/login` erreichbar. Er verwendet ein signiertes HttpOnly-Cookie und ist für Desktop und Tablet ausgelegt.
|
||||
|
||||
Funktionen:
|
||||
|
||||
- Dashboard mit Kennzahlen
|
||||
- Kontaktanfragen verwalten
|
||||
- Reparaturanfragen verwalten
|
||||
- Website-Inhaltsverwaltung vorbereitet
|
||||
- Firmendaten pflegen
|
||||
- SMTP-Konfiguration vorbereiten
|
||||
- Medien hochladen
|
||||
- SEO-Übersicht
|
||||
- Systemübersicht
|
||||
|
||||
SMTP-Versand, Publishing von Website-Inhalten und Olympus-Übernahme sind bewusst noch nicht aktiv gekoppelt.
|
||||
|
||||
## Nginx
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue