Files
hx-ki.com2/COM2_CANONICAL_WRITE_AND_UP.sh
2026-03-06 15:22:40 +00:00

133 lines
3.6 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
set -euo pipefail
DIR="/opt/hx-ki/com2-stack"
F="$DIR/docker-compose.yml"
ENVF="$DIR/.env"
NET="hxki-internal"
mkdir -p "$DIR"
echo "=== COM2 · CANONICAL WRITE + UP ==="
# Netzwerk muss existieren (external)
docker network inspect "$NET" >/dev/null 2>&1 || docker network create "$NET" >/dev/null
# .env (Passwörter hier)
cat > "$ENVF" <<'ENV'
PG_USER=hxki
PG_PASSWORD=CHANGE_ME_STRONG
PG_DB=n8n
MAUTIC_DB_ROOT_PASSWORD=CHANGE_ME_STRONG
MAUTIC_DB_NAME=mautic
MAUTIC_DB_USER=mautic
MAUTIC_DB_PASSWORD=CHANGE_ME_STRONG
N8N_HOST=n8n.hx-ki.com
N8N_PROTOCOL=https
ENV
# Compose: autark, ohne Grafana
cat > "$F" <<'YML'
services:
hxki-postgres:
image: postgres:16
container_name: hxki-postgres
restart: unless-stopped
environment:
POSTGRES_USER: ${PG_USER}
POSTGRES_PASSWORD: ${PG_PASSWORD}
POSTGRES_DB: ${PG_DB}
volumes:
- /opt/hx-ki/postgres:/var/lib/postgresql/data
networks: [hxki-internal]
ports: ["5432:5432"]
hxki-mariadb:
image: mariadb:10.11
container_name: hxki-mariadb
restart: unless-stopped
command: ["--character-set-server=utf8mb4","--collation-server=utf8mb4_unicode_ci"]
environment:
MARIADB_ROOT_PASSWORD: ${MAUTIC_DB_ROOT_PASSWORD}
MARIADB_DATABASE: ${MAUTIC_DB_NAME}
MARIADB_USER: ${MAUTIC_DB_USER}
MARIADB_PASSWORD: ${MAUTIC_DB_PASSWORD}
volumes:
- /opt/hx-ki/mautic/db:/var/lib/mysql
networks: [hxki-internal]
ports: ["3306:3306"]
hxki-mautic:
image: mautic/mautic:5-apache
container_name: hxki-mautic
restart: unless-stopped
depends_on: [hxki-mariadb]
environment:
MAUTIC_DB_HOST: hxki-mariadb
MAUTIC_DB_USER: ${MAUTIC_DB_USER}
MAUTIC_DB_PASSWORD: ${MAUTIC_DB_PASSWORD}
MAUTIC_DB_NAME: ${MAUTIC_DB_NAME}
volumes:
- /opt/hx-ki/mautic/app:/var/www/html
networks: [hxki-internal]
ports: ["8080:80"]
hxki-n8n:
image: docker.n8n.io/n8nio/n8n:latest
container_name: hxki-n8n
restart: unless-stopped
depends_on: [hxki-postgres]
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: hxki-postgres
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_DATABASE: ${PG_DB}
DB_POSTGRESDB_USER: ${PG_USER}
DB_POSTGRESDB_PASSWORD: ${PG_PASSWORD}
N8N_HOST: ${N8N_HOST}
N8N_PROTOCOL: ${N8N_PROTOCOL}
N8N_PORT: 5678
N8N_EDITOR_BASE_URL: ${N8N_PROTOCOL}://${N8N_HOST}
WEBHOOK_URL: ${N8N_PROTOCOL}://${N8N_HOST}
volumes:
- /data/HXKI_WORKSPACE/router:/home/node/.n8n
- /data/HXKI_WORKSPACE:/data/HXKI_WORKSPACE
networks: [hxki-internal]
ports: ["5678:5678"]
# Caddy auf COM2 Cluster-Client: Container bleibt drin.
# Cluster-spezifische Settings kommen über DEIN Caddy-Cluster-Mechanismus (Volumes/Env/Config),
# den wir nicht raten, sondern aus deinem vorhandenen COM2-Caddy Setup übernehmen.
hx-caddy:
image: caddy:2
container_name: hx-caddy
restart: unless-stopped
networks: [hxki-internal]
ports:
- "80:80"
- "443:443"
- "443:443/udp"
- "2019:2019"
volumes:
- /opt/hx-ki/caddy/Caddyfile:/etc/caddy/Caddyfile:ro
- /opt/hx-ki/caddy/data:/data
- /opt/hx-ki/caddy/config:/config
networks:
hxki-internal:
external: true
YML
echo "[1] Validate"
( cd "$DIR" && docker compose --env-file .env config >/dev/null )
echo "OK: compose valide."
echo "[2] Up"
( cd "$DIR" && docker compose --env-file .env up -d )
echo "[3] Status"
docker ps --format 'NAME={{.Names}} STATUS={{.Status}} PORTS={{.Ports}}' | egrep 'hxki-|hx-caddy' || true
echo "=== ENDE ==="