mahlendur-web/README.md
2026-08-04 01:09:07 +02:00

128 lines
3.4 KiB
Markdown

# Chroniken der Leere - Gothic II Modifikation Website
Offizielle Website für die Gothic II Modifikation **"Chroniken der Leere"** mit düsterer Low-Fantasy und Cosmic-Horror-Ästhetik sowie integriertem Online-CMS zur einfacheren Inhaltspflege ohne Code-Anpassungen.
---
## 🚀 Schnellstart mit Docker Compose
Die Anwendung ist als produktionsbereiter Docker-Stack konfiguriert. Alle Inhaltsänderungen, die du über das Online-CMS vornimmst, werden automatisch in `cms-data.json` gesichert und über den Volume-Mount auch bei Container-Neustarts dauerhaft gespeichert.
### 1. Repository klonen & Container starten
```bash
git clone <dein-repo-url>
cd <repo-ordner>
# Stack im Hintergrund starten
docker compose up -d --build
```
Die Website ist danach im Browser unter `http://localhost:3000` erreichbar!
### 2. Container stoppen
```bash
docker compose down
```
---
## 📄 Docker Konfigurationsdateien (Quellcode)
Falls die Datei `Dockerfile` in deiner Web-Entwicklungsumgebung oder beim Export ausgeblendet wird, kannst du die Konfigurationen direkt aus diesem Abschnitt verwenden:
### `Dockerfile`
```dockerfile
# Multi-Stage Dockerfile for Gothic II Mod Website
FROM node:20-alpine AS builder
WORKDIR /app
# Install dependencies first for better Docker layer caching
COPY package*.json ./
RUN npm install
# Copy source code and build the production bundle
COPY . .
RUN npm run build
# Production Runner Stage
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=3000
# Install production dependencies only
COPY package*.json ./
RUN npm install --omit=dev
# Copy built dist files and default cms data from builder
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/src/data ./src/data
COPY --from=builder /app/cms-data.json ./cms-data.json
EXPOSE 3000
CMD ["node", "dist/server.cjs"]
```
### `docker-compose.yml`
```yaml
version: '3.8'
services:
gothic2-mod-website:
build:
context: .
dockerfile: Dockerfile
container_name: gothic2_chroniken_leere
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- PORT=3000
volumes:
# Mount cms-data.json to persist content changes made via the online CMS portal
- ./cms-data.json:/app/cms-data.json
restart: unless-stopped
```
---
## 🔐 Modder Online-CMS Portal
Du kannst alle Texte, Screenshots, News-Beiträge und Fortschritts-Balken direkt im Browser verwalten:
1. Klicke oben rechts auf **"Modder Login"** (oder unten im Footer).
2. Gib das Standard-Passwort ein: `gothic2026`
3. Ändere beliebige Inhalte & klicke auf **"Änderungen Live Speichern"**.
4. Über das Dashboard kannst du deine Inhalte auch als **JSON exportieren & sichern**.
### 🔑 Passwort ändern (2 Wege):
* **Weg 1 (Im Browser über das CMS):**
Logge dich im CMS ein, gehe in der Sidebar auf den Reiter **"Allgemein & Hero"** und scrolle nach unten zum Feld **"CMS Passwort / Zugangs-PIN"**. Trage dort dein neues Passwort ein und klicke unten auf **"Änderungen Live Speichern"**.
* **Weg 2 (Direkt in der Datei):**
Öffne die Datei `cms-data.json` im Projektverzeichnis und passe den Wert von `"adminPin"` an:
```json
"adminPin": "dein_neues_passwort"
```
Beim nächsten Speichern oder Server-Neustart ist das neue Passwort aktiv.
---
## 🛠️ Lokale Entwicklung ohne Docker
```bash
# Abhängigkeiten installieren
npm install
# Entwicklungs-Server starten
npm run dev
# Produktions-Build testen
npm run build
npm start
```