Zum Inhalt springen

Docker Full

RAMP Full ist eine Einzelserver-Produktionsbereitstellung für kleine bis mittlere Teams (10—100 Benutzer). Es verwendet PostgreSQL zur Datenspeicherung und enthält einen LDAP-Server für Unternehmensauthentifizierung.

Am besten geeignet für

  • Produktionsumgebungen (10—100 Benutzer)
  • Unternehmensauthentifizierung mit LDAP
  • Einzelserver-Bereitstellungen
  • Teams, die keine Hochverfügbarkeit benötigen

Einschränkungen

  • Einzelner Ausfallpunkt (keine Redundanz)
  • Keine horizontale Skalierung
  • Dateien werden lokal gespeichert (kein gemeinsamer Speicher)
  • Ausfallzeiten bei Updates und Neustarts
  • Docker Desktop 4.0+ oder Docker Engine 20.10+
  • Docker Compose 2.0+
  • Verfügbarer Arbeitsspeicher: mindestens 4 GB (8 GB empfohlen)
  • Speicherplatz: mindestens 10 GB

  1. Navigieren Sie zum RAMP-Verzeichnis:

    Terminal-Fenster
    cd /path/to/RAMP
  2. Erstellen Sie eine .env-Datei mit benutzerdefinierten Passwörtern:

    Terminal-Fenster
    DB_PASSWORD=YourSecureDbPassword123!
    LDAP_ADMIN_PASSWORD=YourLdapAdminPassword123!
    LDAP_JWT_SECRET=your_jwt_secret_minimum_32_characters_long!
    JWT_SECRET=YourApiJwtSecretAtLeast32CharsLong!
  3. RAMP Full starten:

    Terminal-Fenster
    docker-compose -f docker-compose.full.yml up -d --build

    Dabei werden PostgreSQL, LDAP und Nginx-Images heruntergeladen, RAMP-Images erstellt, die Datenbank eingerichtet, Migrationen ausgeführt und alle Dienste gestartet.

  4. Startup überwachen (warten bis alle Dienste “healthy” anzeigen — typischerweise 2—3 Minuten):

    Terminal-Fenster
    docker-compose -f docker-compose.full.yml ps
  5. Öffnen Sie Ihren Browser unter http://localhost.


FeldWert
E-Mailadmin@ramp.local
PasswortAdmin123!
FeldWert
Hostlocalhost
Port5432
Datenbankramp
Benutzernameramp
PasswortRampDbPassword123! (oder aus .env)

Verbindungszeichenfolge: postgresql://ramp:RampDbPassword123!@localhost:5432/ramp

FeldWert
URLhttp://localhost:17170
Benutzernameadmin
PasswortLdapAdmin123! (oder aus .env)

LDAP-Verbindungsinformationen:

FeldWert
Hostlocalhost (oder ramp-ldap aus Containern)
Port3890
Base DNdc=ramp,dc=local
Bind DNuid=admin,ou=people,dc=ramp,dc=local

DienstURLBeschreibung
Webanwendunghttp://localhostHauptoberfläche von RAMP
API (über Nginx)http://localhost/apiAPI-Endpunkte über Reverse-Proxy
API (direkt)http://localhost:5000Direkter API-Zugriff
LDAP-Administrationhttp://localhost:17170LDAP-Benutzerverwaltung
PostgreSQLlocalhost:5432Datenbankzugriff

Alle Daten werden in Docker-Volumes gespeichert:

Terminal-Fenster
docker volume ls | grep ramp
# ramp-full-db (PostgreSQL-Daten)
# ramp-full-ldap (LDAP-Benutzer & -Gruppen)
# ramp-full-data (Anwendungsdaten)
# ramp-full-logs (Anwendungsprotokolle)
# ramp-full-uploads (Dateianhänge)

  1. Öffnen Sie den LDAP-Administrationsbereich unter http://localhost:17170.
  2. Als Admin anmelden.
  3. Zu Benutzer dann Benutzer erstellen navigieren.
  4. Benutzername (E-Mail-Format empfohlen), Anzeigename, Passwort und E-Mail eingeben.
  5. Auf Erstellen klicken.
  6. Optional: Den Benutzer unter dem Tab Gruppen zu Gruppen hinzufügen.
  1. Als Administrator bei RAMP anmelden.
  2. Zu Admin dann Benutzer navigieren.
  3. Auf LDAP-Benutzer synchronisieren klicken.
  4. LDAP-Benutzer erscheinen in RAMP.
  5. RAMP-Rollen nach Bedarf den Benutzern zuweisen.

Terminal-Fenster
mkdir -p ./backups
# Einfache SQL-Sicherung
docker exec ramp-db pg_dump -U ramp -d ramp > ./backups/ramp_$(date +%Y%m%d).sql
# Komprimierte Sicherung
docker exec ramp-db pg_dump -U ramp -d ramp | gzip > ./backups/ramp_$(date +%Y%m%d).sql.gz
Terminal-Fenster
docker exec ramp-ldap /app/lldap export > ./backups/ldap_$(date +%Y%m%d).ldif
Terminal-Fenster
docker cp ramp-api:/app/uploads ./backups/uploads_$(date +%Y%m%d)

Terminal-Fenster
# Alle Dienste
docker-compose -f docker-compose.full.yml logs -f
# Spezifischer Dienst
docker-compose -f docker-compose.full.yml logs -f ramp-api
docker-compose -f docker-compose.full.yml logs -f ramp-db
# Letzte 50 Zeilen
docker-compose -f docker-compose.full.yml logs --tail=50
Terminal-Fenster
# Alle neu starten
docker-compose -f docker-compose.full.yml restart
# Spezifischen Dienst neu starten
docker-compose -f docker-compose.full.yml restart ramp-api
Terminal-Fenster
docker-compose -f docker-compose.full.yml stop
Terminal-Fenster
git pull
docker-compose -f docker-compose.full.yml build
docker-compose -f docker-compose.full.yml up -d

Terminal-Fenster
# Container-Status prüfen -- alle sollten "Up (healthy)" anzeigen
docker-compose -f docker-compose.full.yml ps
# Protokolle auf Fehler prüfen
docker-compose -f docker-compose.full.yml logs
Terminal-Fenster
# Prüfen ob LDAP-Server läuft
docker-compose -f docker-compose.full.yml ps ramp-ldap
# LDAP-Verbindung testen
docker exec ramp-ldap /app/lldap healthcheck

Überprüfen Sie dann, ob Benutzer im LDAP-Administrationsbereich unter http://localhost:17170 unter ou=people,dc=ramp,dc=local vorhanden sind.

Terminal-Fenster
# PostgreSQL-Integrität prüfen
docker exec ramp-db pg_isready -U ramp
# Erwartet: "ramp-db:5432 - accepting connections"
# Datenbank überprüfen
docker exec ramp-db psql -U ramp -l
# Sollte die Datenbank "ramp" auflisten
# Zuerst Datenbank, dann API neu starten
docker-compose -f docker-compose.full.yml restart ramp-db
# 10 Sekunden warten
docker-compose -f docker-compose.full.yml restart ramp-api
Terminal-Fenster
docker stats

Erwartete Arbeitsspeicherauslastung:

DienstRAM
PostgreSQL200—500 MB
LDAP50—100 MB
API500 MB — 1 GB
Web50 MB
Nginx10—20 MB
Gesamt~1—2 GB

Bei deutlich höherer Auslastung starten Sie die Dienste neu:

Terminal-Fenster
docker-compose -f docker-compose.full.yml restart

docker-compose.full.yml bearbeiten:

ramp-db:
environment:
- POSTGRES_SHARED_BUFFERS=256MB
- POSTGRES_EFFECTIVE_CACHE_SIZE=1GB
ramp-api:
deploy:
resources:
limits:
memory: 2G
ramp-api:
environment:
- Database__MaxPoolSize=100
- Database__MinPoolSize=10

Starten Sie die betroffenen Dienste nach Änderungen neu:

Terminal-Fenster
docker-compose -f docker-compose.full.yml restart ramp-db ramp-api

Terminal-Fenster
# Anwendungsintegrität
curl http://localhost/_health
# Datenbankgröße
docker exec ramp-db psql -U ramp -d ramp -c "SELECT pg_size_pretty(pg_database_size('ramp'));"
# Aktive Datenbankverbindungen
docker exec ramp-db psql -U ramp -d ramp -c "SELECT count(*) FROM pg_stat_activity;"

  1. Alle Standardpasswörter ändern — RAMP-Admin, PostgreSQL, LDAP und JWT-Secret. Setzen Sie sie in der .env-Datei und starten Sie neu.

  2. HTTPS aktivieren — SSL-Zertifikate in den Nginx-Container einbinden oder einen externen Reverse-Proxy davor schalten:

    ramp-web:
    volumes:
    - ./ssl/cert.pem:/etc/nginx/cert.pem
    - ./ssl/key.pem:/etc/nginx/key.pem
  3. Datenbankzugriff einschränken — externe Port-Bindung für PostgreSQL in docker-compose.full.yml entfernen:

    ramp-db:
    ports:
    # Auskommentieren, um externen Zugriff zu verhindern
    # - "5432:5432"
  4. Automatische Sicherungen einrichten — einen Cron-Job erstellen:

    backup.sh
    #!/bin/bash
    DATE=$(date +%Y%m%d_%H%M%S)
    docker exec ramp-db pg_dump -U ramp -d ramp | gzip > /backups/ramp_${DATE}.sql.gz
    # Zu Crontab hinzufügen (täglich um 2 Uhr)
    # 0 2 * * * /path/to/backup.sh

MinimumEmpfohlen
RAM4 GB8 GB
CPU2 Kerne4 Kerne
Speicher10 GB50 GB (abhängig von Uploads)

Ziehen Sie ein Upgrade von Full auf Docker Cluster in Betracht, wenn Sie Folgendes benötigen:

  • Hochverfügbarkeit (keine Ausfallzeiten bei Updates)
  • Horizontale Skalierung (mehrere API-Instanzen)
  • Load Balancing
  • Zentralisierten Dateispeicher (MinIO/S3)
  • Redis-Caching und Echtzeit-Messaging über Instanzen hinweg
  1. Die PostgreSQL-Datenbank sichern.
  2. Das Cluster-Setup bereitstellen.
  3. Die Datenbank in die Cluster-PostgreSQL-Instanz importieren.
  4. Gemeinsamen Dateispeicher (MinIO) konfigurieren.
  5. Testen und umschalten.