2.4 KiB
2.4 KiB
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
- Portainer →
Stacks→+ Add stack - Name:
lageplan - Web editor: Inhalt von
portainer-stack.ymleinfügen - 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
- 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 |