Integriere Docusaurus in Haupt-Compose mit TLS unter /docs

This commit is contained in:
2026-04-22 14:48:11 +02:00
parent 9fea18b215
commit 30dc99e4e0
5 changed files with 49 additions and 38 deletions

View File

@@ -17,10 +17,33 @@ services:
- "traefik.http.routers.fedeo-frontend.middlewares=fedeo-frontend-redirect-web-secure" - "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.rule=Host(`app.fedeo.de`) && PathPrefix(`/`)"
- "traefik.http.routers.fedeo-frontend.entrypoints=web" - "traefik.http.routers.fedeo-frontend.entrypoints=web"
- "traefik.http.routers.fedeo-frontend.priority=1"
# Web Secure Entrypoint # Web Secure Entrypoint
- "traefik.http.routers.fedeo-frontend-secure.rule=Host(`app.fedeo.de`) && PathPrefix(`/`)" - "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.entrypoints=web-secured" #
- "traefik.http.routers.fedeo-frontend-secure.tls.certresolver=mytlschallenge" - "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: backend:
image: git.federspiel.tech/flfeders/fedeo/backend:dev image: git.federspiel.tech/flfeders/fedeo/backend:dev
restart: always restart: always

View File

@@ -2,6 +2,12 @@
Diese Docusaurus-App rendert die versionierte FEDEO-Dokumentation aus dem Ordner `../docs`. 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 ## Lokale Entwicklung
Im Ordner `docs-site` ausführen: Im Ordner `docs-site` ausführen:
@@ -20,15 +26,23 @@ npm run build
npm run serve 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 ```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 ## Workflow bei Funktionsänderungen
@@ -41,11 +55,5 @@ node docs/scripts/sync-funktionsdoku.mjs
``` ```
2. Änderungen committen 2. Änderungen committen
3. Docs-Container neu bauen und starten 3. CI baut und pusht das `docs`-Image
4. Server zieht neues Image und startet den Service neu
## Wichtige Platzhalter
Bitte in `docs-site/docusaurus.config.ts` anpassen:
- `url` auf die echte Docs-Domain
- GitHub-Links (`editUrl`, `Repository`)

View File

@@ -5,8 +5,8 @@ const config: Config = {
title: 'FEDEO Docs', title: 'FEDEO Docs',
tagline: 'Versionierte Funktionsdokumentation für FEDEO', tagline: 'Versionierte Funktionsdokumentation für FEDEO',
url: 'https://docs.example.com', url: 'https://app.fedeo.de',
baseUrl: '/', baseUrl: '/docs/',
onBrokenLinks: 'throw', onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn', onBrokenMarkdownLinks: 'warn',
@@ -22,7 +22,7 @@ const config: Config = {
{ {
docs: { docs: {
path: '../docs', path: '../docs',
routeBasePath: 'docs', routeBasePath: '/',
sidebarPath: './sidebars.ts', sidebarPath: './sidebars.ts',
editUrl: 'https://github.com/DEIN-ORG/DEIN-REPO/tree/main/', editUrl: 'https://github.com/DEIN-ORG/DEIN-REPO/tree/main/',
}, },
@@ -59,7 +59,7 @@ const config: Config = {
items: [ items: [
{ {
label: 'Funktionsübersicht', label: 'Funktionsübersicht',
to: '/docs/funktionen/uebersicht', to: '/funktionen/uebersicht',
}, },
], ],
}, },

View File

@@ -6,7 +6,7 @@ server {
index index.html; index index.html;
location / { 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?)$ { location ~* \.(?:css|js|map|jpg|jpeg|gif|png|svg|ico|webp|woff2?)$ {

View File

@@ -1,20 +0,0 @@
import Link from '@docusaurus/Link';
import Layout from '@theme/Layout';
export default function Home(): JSX.Element {
return (
<Layout title="FEDEO Docs" description="Versionierte Funktionsdokumentation für FEDEO">
<main className="heroSection">
<div className="container">
<h1>FEDEO Dokumentation</h1>
<p>Versionierte Anleitung aller Funktionen für Backend, Web und Mobile.</p>
<div className="heroButtons">
<Link className="button button--primary button--lg" to="/docs/funktionen">
Zur Dokumentation
</Link>
</div>
</div>
</main>
</Layout>
);
}