| app | ||
| components | ||
| lib/admin | ||
| public | ||
| .dockerignore | ||
| .DS_Store | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| eslint.config.mjs | ||
| next-env.d.ts | ||
| next.config.ts | ||
| nginx.example.conf | ||
| package-lock.json | ||
| package.json | ||
| proxy.ts | ||
| README.md | ||
| tsconfig.json | ||
Funktechnik Schubert Website
Eigenständige öffentliche Firmenwebsite für Funktechnik Schubert. Dieses Projekt ist nicht Olympus CRM und koppelt nicht direkt an Olympus.
Technologie
- 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
Seiten
/Startseite/leistungen/funkgeraete-service/reparatur/ueber-uns/kontakt/impressum/datenschutz/admin/login/admin/admin/kontaktanfragen/admin/reparaturanfragen/admin/website/admin/medien/admin/einstellungen/admin/smtp/admin/seo/admin/system
Lokale Entwicklung
npm install
npm run dev
Die Website läuft lokal unter:
http://localhost:3010
Checks
npm run lint
npx next build
Docker
docker compose build
docker compose up -d
Service:
funktechnik-website
Port:
3010:3010
Umgebung
.env.example kopieren:
cp .env.example .env
Variablen:
NEXT_PUBLIC_SITE_URLADMIN_EMAILADMIN_PASSWORDADMIN_SESSION_SECRETAUTH_COOKIE_SECUREOLYMPUS_INTAKE_API_URLOLYMPUS_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/repairPOST /api/contactPOST /api/admin/loginPOST /api/admin/logoutPATCH /api/admin/contact/[id]PATCH /api/admin/repair/[id]POST /api/admin/settingsPOST /api/admin/smtpGET/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. 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
Siehe nginx.example.conf.
Beispiel-Domain:
funktechnik-schubert.de
Produktiv HTTPS aktivieren, z. B. mit Certbot:
certbot --nginx -d funktechnik-schubert.de -d www.funktechnik-schubert.de
Offene manuelle Punkte
- TODO: Rechtliche Angaben ergänzen
- Produktives Kontakt-/Mail-System anbinden
- Spätere Olympus-Reparaturannahme serverseitig anbinden
- Finale Domain und HTTPS-Konfiguration setzen