Skip to content

jaserNo1/LaunchPad

 
 

Repository files navigation

LaunchPad - Strapi Demo mit Docker

LaunchPad

Willkommen bei LaunchPad, der offiziellen Strapi Demo-Anwendung. Dieses Repository enthält eine vollständig dockerisierte Version des LaunchPad-Projekts mit Next.js Frontend und Strapi Backend.

🚀 Übersicht

Diese Docker-basierte Lösung bietet:

  • Strapi CMS mit vorkonfigurierten Inhalten
  • Next.js Frontend mit Server-Side Rendering
  • Nginx Reverse Proxy für optimales Routing
  • Sidecar-Proxy für korrekte Bildverarbeitung
  • Vollständige Infrastruktur-Lösung ohne Code-Änderungen

📋 Voraussetzungen

  • Docker und Docker Compose installiert
  • Git
  • Mindestens 4GB freier RAM
  • Ports 3333 und 1338 müssen frei sein

🛠️ Installation

1. Repository klonen

git clone [dein-repository-url]
cd LaunchPad

2. Umgebungsvariablen einrichten

Erstelle die benötigten .env Dateien:

# Strapi .env
cp ./strapi/.env.example ./strapi/.env

# Next.js .env
cp ./next/.env.example ./next/.env

Die Umgebungsvariablen sind bereits für Docker vorkonfiguriert und müssen normalerweise nicht angepasst werden.

3. Docker Container starten

docker-compose up -d

Beim ersten Start werden die Docker Images gebaut, was einige Minuten dauern kann.

🌐 Zugriff

Nach dem Start sind folgende Services verfügbar:

🏗️ Architektur

Docker Services

  1. nginx (Port 3333)

    • Reverse Proxy für alle Services
    • URL-Rewriting für Bildpfade
    • Load Balancing zwischen Services
  2. strapi (intern Port 1337, extern Port 1338)

    • Headless CMS
    • SQLite Datenbank
    • Media Library für Uploads
  3. nextjs (intern Port 3000)

    • React Frontend mit SSR
    • Internationalisierung (en/fr)
    • Image Optimization
  4. nextjs-proxy (Sidecar)

    • Löst localhost-Referenzen innerhalb des Next.js Containers auf
    • Ermöglicht korrekte Bildverarbeitung

Netzwerk-Konfiguration

Alle Services nutzen ein gemeinsames Docker-Netzwerk (launchpad) mit festen IP-Adressen:

  • nginx: 172.20.0.2
  • strapi: 172.20.0.10
  • nextjs: 172.20.0.11

🔧 Konfiguration

docker-compose.yml

Die Hauptkonfiguration mit allen Services und deren Abhängigkeiten.

nginx/nginx.conf

Nginx-Konfiguration mit:

  • Upstream-Definitionen für Strapi und Next.js
  • URL-Rewriting für /api/uploads//uploads/
  • Proxy-Einstellungen für alle Routen

Dockerfiles

  • strapi/Dockerfile: Multi-stage Build für Strapi
  • next/Dockerfile: Multi-stage Build für Next.js mit Build-Zeit-Variablen

🐛 Fehlerbehebung

Container-Logs anzeigen

# Alle Logs
docker-compose logs -f

# Spezifischer Service
docker-compose logs -f nextjs

Container neu starten

# Einzelner Service
docker-compose restart nextjs

# Alle Services
docker-compose down && docker-compose up -d

Datenbank zurücksetzen

# Strapi-Datenbank löschen und neu initialisieren
rm -rf strapi/.tmp
docker-compose restart strapi

📝 Wichtige Hinweise

  1. Locale-Routing: Die Anwendung leitet automatisch auf die erkannte Sprache weiter (z.B. /en oder /fr)
  2. Bilder: Werden über Next.js Image Optimization verarbeitet
  3. Persistenz: Strapi-Uploads und Datenbank werden in lokalen Volumes gespeichert
  4. Performance: Beim ersten Laden kann es etwas dauern, bis alle Services bereit sind

🚀 Entwicklung

Code-Änderungen

  • Next.js: Änderungen in ./next erfordern einen Container-Neustart
  • Strapi: Änderungen in ./strapi werden automatisch erkannt (Development-Modus)

Neue Dependencies

Nach dem Hinzufügen neuer npm/yarn Dependencies:

# Image neu bauen
docker-compose build [service-name]

# Container neu starten
docker-compose up -d [service-name]

📦 Deployment

Für Produktionsumgebungen:

  1. Umgebungsvariablen anpassen (insbesondere Secrets und URLs)
  2. NODE_ENV=production setzen
  3. Externe Datenbank verwenden (statt SQLite)
  4. SSL/TLS-Zertifikate konfigurieren
  5. Backup-Strategie implementieren

🤝 Beitragen

Dieses Projekt basiert auf dem offiziellen Strapi LaunchPad Demo.

📄 Lizenz

Siehe Original-Repository für Lizenzinformationen.

About

Official Strapi Demo application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 97.5%
  • JavaScript 1.5%
  • Other 1.0%