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
|
# Local environment files
|
||||||
.env
|
.env
|
||||||
.env.*
|
.env.*
|
||||||
|
!.env.example
|
||||||
|
|
||||||
# Compose override files
|
# Compose override files
|
||||||
compose.override.yml
|
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_mqtt_broker: "tcp://dockerbox.morz.de:1883"
|
||||||
morz_heartbeat_every_seconds: 30
|
morz_heartbeat_every_seconds: 30
|
||||||
morz_status_report_every_seconds: 60
|
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:
|
info01-dev:
|
||||||
info11-dev:
|
info11-dev:
|
||||||
info12-dev:
|
info12-dev:
|
||||||
debi:
|
|
||||||
signage_servers:
|
signage_servers:
|
||||||
hosts:
|
hosts:
|
||||||
dockerbox:
|
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