From 30dc99e4e0c15a2fa689a11eae79e05f3caacc96 Mon Sep 17 00:00:00 2001 From: florianfederspiel Date: Wed, 22 Apr 2026 14:48:11 +0200 Subject: [PATCH] Integriere Docusaurus in Haupt-Compose mit TLS unter /docs --- docker-compose.yml | 25 ++++++++++++++++++++++++- docs-site/README.md | 32 ++++++++++++++++++++------------ docs-site/docusaurus.config.ts | 8 ++++---- docs-site/nginx.conf | 2 +- docs-site/src/pages/index.tsx | 20 -------------------- 5 files changed, 49 insertions(+), 38 deletions(-) delete mode 100644 docs-site/src/pages/index.tsx diff --git a/docker-compose.yml b/docker-compose.yml index 3ecf6ef..328d38c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,10 +17,33 @@ services: - "traefik.http.routers.fedeo-frontend.middlewares=fedeo-frontend-redirect-web-secure" - "traefik.http.routers.fedeo-frontend.rule=Host(`app.fedeo.de`) && PathPrefix(`/`)" - "traefik.http.routers.fedeo-frontend.entrypoints=web" + - "traefik.http.routers.fedeo-frontend.priority=1" # Web Secure Entrypoint - "traefik.http.routers.fedeo-frontend-secure.rule=Host(`app.fedeo.de`) && PathPrefix(`/`)" - "traefik.http.routers.fedeo-frontend-secure.entrypoints=web-secured" # - "traefik.http.routers.fedeo-frontend-secure.tls.certresolver=mytlschallenge" + - "traefik.http.routers.fedeo-frontend-secure.priority=1" + docs: + image: git.federspiel.tech/flfeders/fedeo/docs:dev + restart: always + networks: + - traefik + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik" + - "traefik.port=80" + # Middlewares + - "traefik.http.middlewares.fedeo-docs-redirect-web-secure.redirectscheme.scheme=https" + # Web Entrypoint + - "traefik.http.routers.fedeo-docs.middlewares=fedeo-docs-redirect-web-secure" + - "traefik.http.routers.fedeo-docs.rule=Host(`app.fedeo.de`) && PathPrefix(`/docs`)" + - "traefik.http.routers.fedeo-docs.entrypoints=web" + - "traefik.http.routers.fedeo-docs.priority=120" + # Web Secure Entrypoint + - "traefik.http.routers.fedeo-docs-secure.rule=Host(`app.fedeo.de`) && PathPrefix(`/docs`)" + - "traefik.http.routers.fedeo-docs-secure.entrypoints=web-secured" + - "traefik.http.routers.fedeo-docs-secure.tls.certresolver=mytlschallenge" + - "traefik.http.routers.fedeo-docs-secure.priority=120" backend: image: git.federspiel.tech/flfeders/fedeo/backend:dev restart: always @@ -90,4 +113,4 @@ services: - traefik networks: traefik: - external: false \ No newline at end of file + external: false diff --git a/docs-site/README.md b/docs-site/README.md index 11dbc1e..77bd9b5 100644 --- a/docs-site/README.md +++ b/docs-site/README.md @@ -2,6 +2,12 @@ Diese Docusaurus-App rendert die versionierte FEDEO-Dokumentation aus dem Ordner `../docs`. +## Zielpfad in Produktion + +Die Seite ist für den Betrieb hinter Traefik unter folgendem Pfad konfiguriert: + +- `https://app.fedeo.de/docs` + ## Lokale Entwicklung Im Ordner `docs-site` ausführen: @@ -20,15 +26,23 @@ npm run build npm run serve ``` -## Deploy mit Docker Compose +## Deploy über Haupt-Compose -Aus dem Projekt-Root: +Die Docs sind in der zentralen `docker-compose.yml` als eigener Service `docs` eingebunden. + +Deploy aus dem Projekt-Root: ```bash -docker compose -f docker-compose.docs.yml up -d --build +docker compose pull docs +docker compose up -d docs ``` -Standard-Port ist `3205`. +Für ein komplettes Update des gesamten Stacks: + +```bash +docker compose pull +docker compose up -d +``` ## Workflow bei Funktionsänderungen @@ -41,11 +55,5 @@ node docs/scripts/sync-funktionsdoku.mjs ``` 2. Änderungen committen -3. Docs-Container neu bauen und starten - -## Wichtige Platzhalter - -Bitte in `docs-site/docusaurus.config.ts` anpassen: - -- `url` auf die echte Docs-Domain -- GitHub-Links (`editUrl`, `Repository`) +3. CI baut und pusht das `docs`-Image +4. Server zieht neues Image und startet den Service neu diff --git a/docs-site/docusaurus.config.ts b/docs-site/docusaurus.config.ts index ef2cb80..11c6f5f 100644 --- a/docs-site/docusaurus.config.ts +++ b/docs-site/docusaurus.config.ts @@ -5,8 +5,8 @@ const config: Config = { title: 'FEDEO Docs', tagline: 'Versionierte Funktionsdokumentation für FEDEO', - url: 'https://docs.example.com', - baseUrl: '/', + url: 'https://app.fedeo.de', + baseUrl: '/docs/', onBrokenLinks: 'throw', onBrokenMarkdownLinks: 'warn', @@ -22,7 +22,7 @@ const config: Config = { { docs: { path: '../docs', - routeBasePath: 'docs', + routeBasePath: '/', sidebarPath: './sidebars.ts', editUrl: 'https://github.com/DEIN-ORG/DEIN-REPO/tree/main/', }, @@ -59,7 +59,7 @@ const config: Config = { items: [ { label: 'Funktionsübersicht', - to: '/docs/funktionen/uebersicht', + to: '/funktionen/uebersicht', }, ], }, diff --git a/docs-site/nginx.conf b/docs-site/nginx.conf index 61cb853..89d3c8e 100644 --- a/docs-site/nginx.conf +++ b/docs-site/nginx.conf @@ -6,7 +6,7 @@ server { index index.html; location / { - try_files $uri $uri/ /index.html; + try_files $uri $uri/ /docs/index.html; } location ~* \.(?:css|js|map|jpg|jpeg|gif|png|svg|ico|webp|woff2?)$ { diff --git a/docs-site/src/pages/index.tsx b/docs-site/src/pages/index.tsx deleted file mode 100644 index ad49a84..0000000 --- a/docs-site/src/pages/index.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import Link from '@docusaurus/Link'; -import Layout from '@theme/Layout'; - -export default function Home(): JSX.Element { - return ( - -
-
-

FEDEO Dokumentation

-

Versionierte Anleitung aller Funktionen für Backend, Web und Mobile.

-
- - Zur Dokumentation - -
-
-
-
- ); -}