feat(deploy): manuelles Deploy-Verzeichnis für dockerbox.morz.de
- deploy/docker-compose.yml: Produktions-Stack (Backend, Postgres, Mosquitto) Backend bindet nur auf 127.0.0.1:8080 (HTTPS via Reverse Proxy) - deploy/.env.example: Vorlage für Produktions-Umgebungsvariablen - deploy/mosquitto/config/mosquitto.conf: Mosquitto mit Passwort-Auth - ansible/group_vars: morz_server_base_url auf https://dockerbox.morz.de - ansible/inventory.yml: debi entfernt, dev-Hosts info11/info12 ergänzt - .gitignore: !.env.example als Ausnahme ergänzt Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
17ad69a82b
commit
b3fd512d25
9 changed files with 120 additions and 2 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -13,6 +13,7 @@ dist/
|
|||
# Local environment files
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
|
||||
# Compose override files
|
||||
compose.override.yml
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
morz_server_base_url: "http://192.168.64.1:8080"
|
||||
morz_server_base_url: "https://dockerbox.morz.de"
|
||||
morz_mqtt_broker: "tcp://dockerbox.morz.de:1883"
|
||||
morz_heartbeat_every_seconds: 30
|
||||
morz_status_report_every_seconds: 60
|
||||
|
|
|
|||
6
ansible/host_vars/info11-dev/vars.yml
Normal file
6
ansible/host_vars/info11-dev/vars.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
ansible_host: 192.168.64.12
|
||||
ansible_user: admin
|
||||
screen_id: info11-dev
|
||||
screen_name: "11 - Macbook"
|
||||
screen_orientation: landscape
|
||||
6
ansible/host_vars/info12-dev/vars.yml
Normal file
6
ansible/host_vars/info12-dev/vars.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
ansible_host: 192.168.64.13
|
||||
ansible_user: admin
|
||||
screen_id: info12-dev
|
||||
screen_name: "12 - Macbook"
|
||||
screen_orientation: landscape
|
||||
|
|
@ -7,7 +7,6 @@ all:
|
|||
info01-dev:
|
||||
info11-dev:
|
||||
info12-dev:
|
||||
debi:
|
||||
signage_servers:
|
||||
hosts:
|
||||
dockerbox:
|
||||
|
|
|
|||
11
compose/.env.example
Normal file
11
compose/.env.example
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# Passwort für den initialen Admin-User (Tenant: MORZ_INFOBOARD_DEFAULT_TENANT).
|
||||
# Wird beim ersten Start gesetzt, sofern noch kein Admin-User existiert.
|
||||
# Leer lassen = zufälliges Passwort wird generiert und ins Log geschrieben.
|
||||
MORZ_INFOBOARD_ADMIN_PASSWORD=
|
||||
|
||||
# Aktiviert den Dev-Modus (z. B. entspannte CORS-Regeln, ausführliches Logging).
|
||||
# In Produktion auf false belassen.
|
||||
MORZ_INFOBOARD_DEV_MODE=false
|
||||
|
||||
# Slug des Standard-Tenants, unter dem der Admin-User angelegt wird.
|
||||
MORZ_INFOBOARD_DEFAULT_TENANT=morz
|
||||
14
deploy/.env.example
Normal file
14
deploy/.env.example
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# Datenbank-Passwort (wird auch intern vom Backend genutzt)
|
||||
MORZ_DB_PASSWORD=sicheres-passwort-hier
|
||||
|
||||
# Initialer Admin-Benutzer (Tenant: MORZ_DEFAULT_TENANT)
|
||||
# Leer lassen = zufälliges Passwort wird generiert und ins Log geschrieben
|
||||
MORZ_ADMIN_PASSWORD=
|
||||
|
||||
# Standard-Tenant-Slug
|
||||
MORZ_DEFAULT_TENANT=morz
|
||||
|
||||
# MQTT-Broker – intern erreichbar über den mqtt-Service
|
||||
MORZ_MQTT_BROKER=tcp://mqtt:1883
|
||||
MORZ_MQTT_USERNAME=
|
||||
MORZ_MQTT_PASSWORD=
|
||||
70
deploy/docker-compose.yml
Normal file
70
deploy/docker-compose.yml
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
services:
|
||||
backend:
|
||||
image: git.az-it.net/az/morz-infoboard/backend:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "127.0.0.1:8080:8080"
|
||||
environment:
|
||||
MORZ_INFOBOARD_HTTP_ADDR: ":8080"
|
||||
MORZ_INFOBOARD_DATABASE_URL: "postgres://morz_infoboard:${MORZ_DB_PASSWORD}@db:5432/morz_infoboard?sslmode=disable"
|
||||
MORZ_INFOBOARD_UPLOAD_DIR: /app/uploads
|
||||
MORZ_INFOBOARD_STATUS_STORE_PATH: /app/data/status
|
||||
MORZ_INFOBOARD_MQTT_BROKER: "${MORZ_MQTT_BROKER}"
|
||||
MORZ_INFOBOARD_MQTT_USERNAME: "${MORZ_MQTT_USERNAME}"
|
||||
MORZ_INFOBOARD_MQTT_PASSWORD: "${MORZ_MQTT_PASSWORD}"
|
||||
MORZ_INFOBOARD_ADMIN_PASSWORD: "${MORZ_ADMIN_PASSWORD}"
|
||||
MORZ_INFOBOARD_DEFAULT_TENANT: "${MORZ_DEFAULT_TENANT:-morz}"
|
||||
MORZ_INFOBOARD_DEV_MODE: "false"
|
||||
TZ: "Europe/Berlin"
|
||||
volumes:
|
||||
- ./uploads:/app/uploads
|
||||
- ./data:/app/data
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- internal
|
||||
- proxy
|
||||
|
||||
db:
|
||||
image: postgres:17-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_USER: morz_infoboard
|
||||
POSTGRES_PASSWORD: "${MORZ_DB_PASSWORD}"
|
||||
POSTGRES_DB: morz_infoboard
|
||||
volumes:
|
||||
- db_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U morz_infoboard"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
networks:
|
||||
- internal
|
||||
|
||||
mqtt:
|
||||
image: eclipse-mosquitto:2
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "1883:1883"
|
||||
volumes:
|
||||
- ./mosquitto/config:/mosquitto/config:ro
|
||||
- mosquitto_data:/mosquitto/data
|
||||
- mosquitto_log:/mosquitto/log
|
||||
networks:
|
||||
- internal
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
mosquitto_data:
|
||||
mosquitto_log:
|
||||
|
||||
networks:
|
||||
internal:
|
||||
proxy:
|
||||
# Gemeinsames Netz mit dem Reverse Proxy (z. B. Traefik/Nginx Proxy Manager).
|
||||
# Falls der Proxy ein eigenes externes Netz verwaltet, hier name: und external: true setzen.
|
||||
# Beispiel:
|
||||
# name: proxy
|
||||
# external: true
|
||||
11
deploy/mosquitto/config/mosquitto.conf
Normal file
11
deploy/mosquitto/config/mosquitto.conf
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
listener 1883
|
||||
allow_anonymous false
|
||||
password_file /mosquitto/config/passwd
|
||||
|
||||
persistence true
|
||||
persistence_location /mosquitto/data/
|
||||
|
||||
log_dest file /mosquitto/log/mosquitto.log
|
||||
log_type error
|
||||
log_type warning
|
||||
log_type notice
|
||||
Loading…
Add table
Reference in a new issue