Files
Lageplan/deploy

Lageplan — Portainer Deployment

Architektur

Browser → :3000 (Web App) → intern: db:5432, minio:9000

Nur ein Port (3000) muss exponiert werden. DB und MinIO laufen rein intern im Docker-Netzwerk. Icons werden über die Web-App gestreamt — kein direkter MinIO-Zugriff nötig.


Dateien

Datei Beschreibung
lageplan-web-v1.0.0.tar Docker Image (~92 MB)
portainer-stack.yml Stack YAML für Portainer
.env.example Environment Variables Vorlage

Schritt 1: Image auf Server laden

# Kopieren
scp lageplan-web-v1.0.0.tar user@server:/tmp/

# Auf dem Server laden
docker load -i /tmp/lageplan-web-v1.0.0.tar

# Prüfen
docker images | grep lageplan

Schritt 2: Stack in Portainer erstellen

  1. PortainerStacks+ Add stack
  2. Name: lageplan
  3. Web editor: Inhalt von portainer-stack.yml einfügen
  4. Environment variables setzen:
Variable Wert
POSTGRES_USER lageplan
POSTGRES_PASSWORD (sicheres Passwort)
POSTGRES_DB lageplan
MINIO_ROOT_USER minioadmin
MINIO_ROOT_PASSWORD (sicheres Passwort)
MINIO_BUCKET lageplan-icons
WEB_PORT 3000
NEXTAUTH_URL http://SERVER_IP:3000
NEXTAUTH_SECRET (langer zufälliger String)

Tipp: Secret generieren: openssl rand -base64 32

  1. Deploy the stack

Schritt 3: Datenbank initialisieren (einmalig)

In Portainer: Container web → Console → /bin/sh:

npx prisma db push
npx prisma db seed

Oder per SSH:

docker exec -it lageplan-web-1 npx prisma db push
docker exec -it lageplan-web-1 npx prisma db seed

Schritt 4: Zugriff

  • Web App: http://SERVER_IP:3000
  • Login: admin@lageplan.local / admin123

Update

# Lokal: neues Image bauen + exportieren
docker compose build web
docker tag lageplan-web:latest lageplan-web:v1.1.0
docker save lageplan-web:v1.1.0 -o deploy/lageplan-web-v1.1.0.tar

# Server: laden
docker load -i lageplan-web-v1.1.0.tar

# Portainer: Stack → Editor → Image-Tag ändern → Update the stack

Ports

Service Port Extern?
Web App 3000 Ja (WEB_PORT)
PostgreSQL 5432 Nur intern
MinIO API 9000 Nur intern
MinIO Console 9001 Nur intern