initial COM2 system snapshot
This commit is contained in:
43
docker/docker-compose.bak_2025-12-01-113958
Normal file
43
docker/docker-compose.bak_2025-12-01-113958
Normal file
@@ -0,0 +1,43 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16
|
||||
container_name: hxki-postgres
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
POSTGRES_USER: hxki
|
||||
POSTGRES_PASSWORD: supersecure
|
||||
POSTGRES_DB: hxki_roles
|
||||
volumes:
|
||||
- /opt/hx-ki/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n
|
||||
container_name: hxki-n8n
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
NATS_URL: "nats://49.12.97.28:4222"
|
||||
DB_TYPE: postgresdb
|
||||
DB_POSTGRESDB_HOST: postgres
|
||||
DB_POSTGRESDB_PORT: 5432
|
||||
DB_POSTGRESDB_USER: hxki
|
||||
DB_POSTGRESDB_PASSWORD: supersecure
|
||||
DB_POSTGRESDB_DATABASE: hxki_roles
|
||||
N8N_HOST: 0.0.0.0
|
||||
N8N_PORT: 5678
|
||||
N8N_PROTOCOL: http
|
||||
ports:
|
||||
- "5678:5678"
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
14
docker/docker-compose.nats-fsn.yml
Normal file
14
docker/docker-compose.nats-fsn.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
hxki-nats-fsn:
|
||||
image: nats:2.12.2
|
||||
container_name: hxki-nats-fsn
|
||||
command: ["-js", "-m", "8222"]
|
||||
networks:
|
||||
- hxki-internal
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
18
docker/docker-compose.telemetry.yml
Normal file
18
docker/docker-compose.telemetry.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
hxki-node-exporter:
|
||||
image: prom/node-exporter:v1.8.1
|
||||
container_name: hxki-node-exporter
|
||||
command:
|
||||
- "--path.rootfs=/host"
|
||||
volumes:
|
||||
- "/:/host:ro,rslave"
|
||||
networks:
|
||||
- hxki-internal
|
||||
user: "nobody"
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
18
docker/docker-compose.telemetry.yml.bak_rename_hxki
Normal file
18
docker/docker-compose.telemetry.yml.bak_rename_hxki
Normal file
@@ -0,0 +1,18 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
hx-node-exporter:
|
||||
image: prom/node-exporter:v1.8.1
|
||||
container_name: hx-node-exporter
|
||||
command:
|
||||
- "--path.rootfs=/host"
|
||||
volumes:
|
||||
- "/:/host:ro,rslave"
|
||||
networks:
|
||||
- hxki-internal
|
||||
user: "nobody"
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
139
docker/docker-compose.yml
Normal file
139
docker/docker-compose.yml
Normal file
@@ -0,0 +1,139 @@
|
||||
version: "3.9"
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
|
||||
services:
|
||||
|
||||
# -------------------------------------------
|
||||
# POSTGRES (für n8n)
|
||||
# -------------------------------------------
|
||||
postgres:
|
||||
image: postgres:16
|
||||
container_name: hxki-postgres
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
POSTGRES_USER: hxki
|
||||
POSTGRES_PASSWORD: supersecure
|
||||
POSTGRES_DB: hxki_roles
|
||||
volumes:
|
||||
- /opt/hx-ki/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
# -------------------------------------------
|
||||
# N8N – DAS MASTER-NERVENSYSTEM
|
||||
# -------------------------------------------
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n:latest
|
||||
container_name: hxki-n8n
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
N8N_HOST: n8n.hx-ki.com
|
||||
N8N_PORT: 5678
|
||||
WEBHOOK_URL: https://n8n.hx-ki.com/
|
||||
N8N_PROTOCOL: https
|
||||
DB_TYPE: postgresdb
|
||||
DB_POSTGRESDB_HOST: postgres
|
||||
DB_POSTGRESDB_PORT: 5432
|
||||
DB_POSTGRESDB_USER: hxki
|
||||
DB_POSTGRESDB_PASSWORD: supersecure
|
||||
DB_POSTGRESDB_DATABASE: hxki_roles
|
||||
NATS_URL: nats://49.12.97.28:4222
|
||||
volumes:
|
||||
- /data/HXKI_WORKSPACE/router:/home/node/.n8n
|
||||
- /data/HXKI_WORKSPACE:/data/HXKI_WORKSPACE
|
||||
ports:
|
||||
- "5678:5678"
|
||||
|
||||
# -------------------------------------------
|
||||
# CADDY – SUBDOMAINS, TLS, ROUTING
|
||||
# -------------------------------------------
|
||||
hxki-caddy:
|
||||
image: caddy:2
|
||||
container_name: hxki-caddy
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- /opt/hx-ki/docker/hxki-caddy/Caddyfile:/etc/caddy/Caddyfile
|
||||
- caddy_data:/data
|
||||
- caddy_config:/config
|
||||
|
||||
# -------------------------------------------
|
||||
# GRAFANA
|
||||
# -------------------------------------------
|
||||
grafana:
|
||||
image: grafana/grafana-oss:latest
|
||||
container_name: hxki-grafana
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- /opt/hx-ki/grafana:/var/lib/grafana
|
||||
|
||||
# -------------------------------------------
|
||||
# MARIA DB (für mautic)
|
||||
# -------------------------------------------
|
||||
mariadb:
|
||||
image: mariadb:10.11
|
||||
container_name: hxki-mariadb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: supersecure
|
||||
MYSQL_DATABASE: mautic
|
||||
volumes:
|
||||
- /opt/hx-ki/mariadb:/var/lib/mysql
|
||||
ports:
|
||||
- "3306:3306"
|
||||
|
||||
# -------------------------------------------
|
||||
# MAUTIC
|
||||
# -------------------------------------------
|
||||
mautic:
|
||||
image: mautic/mautic:5-apache
|
||||
container_name: hxki-mautic
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mariadb
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MAUTIC_DB_HOST: mariadb
|
||||
MAUTIC_DB_USER: root
|
||||
MAUTIC_DB_PASSWORD: supersecure
|
||||
MAUTIC_DB_NAME: mautic
|
||||
ports:
|
||||
- "8080:80"
|
||||
|
||||
# -------------------------------------------
|
||||
# GITEA
|
||||
# -------------------------------------------
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: hxki-gitea
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
ports:
|
||||
- "3001:3000"
|
||||
volumes:
|
||||
- /var/lib/gitea:/data
|
||||
|
||||
volumes:
|
||||
caddy_data:
|
||||
caddy_config:
|
||||
113
docker/docker-compose.yml.bak_2025-12-01-112533
Normal file
113
docker/docker-compose.yml.bak_2025-12-01-112533
Normal file
@@ -0,0 +1,113 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16
|
||||
container_name: hxki-postgres
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
- NATS_URL=nats://91.98.42.205:4222
|
||||
POSTGRES_USER: hxki
|
||||
POSTGRES_PASSWORD: supersecure
|
||||
POSTGRES_DB: hxki_roles
|
||||
volumes:
|
||||
- /opt/hx-ki/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n
|
||||
container_name: hxki-n8n
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
- NATS_URL=nats://91.98.42.205:4222
|
||||
DB_TYPE: postgresdb
|
||||
DB_POSTGRESDB_HOST: postgres
|
||||
DB_POSTGRESDB_PORT: 5432
|
||||
DB_POSTGRESDB_USER: hxki
|
||||
DB_POSTGRESDB_PASSWORD: supersecure
|
||||
DB_POSTGRESDB_DATABASE: hxki_roles
|
||||
N8N_HOST: 0.0.0.0
|
||||
N8N_PORT: 5678
|
||||
N8N_PROTOCOL: http
|
||||
ports:
|
||||
- "5678:5678"
|
||||
|
||||
web:
|
||||
image: nginx:latest
|
||||
container_name: hxki-web
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/web:/usr/share/nginx/html:ro
|
||||
|
||||
mariadb:
|
||||
image: mariadb:10.11
|
||||
container_name: hxki-mariadb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
- NATS_URL=nats://91.98.42.205:4222
|
||||
MYSQL_ROOT_PASSWORD: supersecure
|
||||
MYSQL_DATABASE: mautic
|
||||
MYSQL_USER: mautic
|
||||
MYSQL_PASSWORD: mauticpass
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/db:/var/lib/mysql
|
||||
ports:
|
||||
- "3306:3306"
|
||||
|
||||
mautic:
|
||||
image: mautic/mautic:5-apache
|
||||
container_name: hxki-mautic
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mariadb
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
- NATS_URL=nats://91.98.42.205:4222
|
||||
MAUTIC_DB_HOST: mariadb
|
||||
MAUTIC_DB_USER: mautic
|
||||
MAUTIC_DB_PASSWORD: mauticpass
|
||||
MAUTIC_DB_NAME: mautic
|
||||
MAUTIC_TRUSTED_PROXIES: 0.0.0.0/0
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/app:/var/www/html
|
||||
ports:
|
||||
- "8080:80"
|
||||
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: hxki-gitea
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/archive:/data
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana-oss:latest
|
||||
container_name: hxki-grafana
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/grafana:/var/lib/grafana
|
||||
ports:
|
||||
- "3001:3000"
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
111
docker/docker-compose.yml.bak_host80_20251127_015759
Normal file
111
docker/docker-compose.yml.bak_host80_20251127_015759
Normal file
@@ -0,0 +1,111 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16
|
||||
container_name: hxki-postgres
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
POSTGRES_USER: hxki
|
||||
POSTGRES_PASSWORD: supersecure
|
||||
POSTGRES_DB: hxki_roles
|
||||
volumes:
|
||||
- /opt/hx-ki/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n
|
||||
container_name: hxki-n8n
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
DB_TYPE: postgresdb
|
||||
DB_POSTGRESDB_HOST: postgres
|
||||
DB_POSTGRESDB_PORT: 5432
|
||||
DB_POSTGRESDB_USER: hxki
|
||||
DB_POSTGRESDB_PASSWORD: supersecure
|
||||
DB_POSTGRESDB_DATABASE: hxki_roles
|
||||
N8N_HOST: 0.0.0.0
|
||||
N8N_PORT: 5678
|
||||
N8N_PROTOCOL: http
|
||||
ports:
|
||||
- "5678:5678"
|
||||
|
||||
web:
|
||||
image: nginx:latest
|
||||
container_name: hxki-web
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/web:/usr/share/nginx/html:ro
|
||||
ports:
|
||||
- "80:80"
|
||||
|
||||
mariadb:
|
||||
image: mariadb:10.11
|
||||
container_name: hxki-mariadb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: supersecure
|
||||
MYSQL_DATABASE: mautic
|
||||
MYSQL_USER: mautic
|
||||
MYSQL_PASSWORD: mauticpass
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/db:/var/lib/mysql
|
||||
ports:
|
||||
- "3306:3306"
|
||||
|
||||
mautic:
|
||||
image: mautic/mautic:5-apache
|
||||
container_name: hxki-mautic
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mariadb
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MAUTIC_DB_HOST: mariadb
|
||||
MAUTIC_DB_USER: mautic
|
||||
MAUTIC_DB_PASSWORD: mauticpass
|
||||
MAUTIC_DB_NAME: mautic
|
||||
MAUTIC_TRUSTED_PROXIES: 0.0.0.0/0
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/app:/var/www/html
|
||||
ports:
|
||||
- "8080:80"
|
||||
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: hxki-gitea
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/archive:/data
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana-oss:latest
|
||||
container_name: hxki-grafana
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/grafana:/var/lib/grafana
|
||||
ports:
|
||||
- "3001:3000"
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
134
docker/docker-compose.yml.bak_hxkiweb_20251127_004523
Normal file
134
docker/docker-compose.yml.bak_hxkiweb_20251127_004523
Normal file
@@ -0,0 +1,134 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
syncthing:
|
||||
image: lscr.io/linuxserver/syncthing:latest
|
||||
container_name: hxki-syncthing
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/syncthing/config:/config
|
||||
- /opt/hx-ki/syncthing/data:/data
|
||||
ports:
|
||||
- "8384:8384"
|
||||
- "22000:22000/tcp"
|
||||
- "22000:22000/udp"
|
||||
- "21027:21027/udp"
|
||||
hxki-web:
|
||||
container_name: hxki-web
|
||||
build:
|
||||
context: /opt/hx-ki/web/hx-ki-website
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
|
||||
|
||||
postgres:
|
||||
image: postgres:16
|
||||
container_name: hxki-postgres
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
POSTGRES_USER: hxki
|
||||
POSTGRES_PASSWORD: supersecure
|
||||
POSTGRES_DB: hxki_roles
|
||||
volumes:
|
||||
- /opt/hx-ki/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n
|
||||
container_name: hxki-n8n
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
DB_TYPE: postgresdb
|
||||
DB_POSTGRESDB_HOST: postgres
|
||||
DB_POSTGRESDB_PORT: 5432
|
||||
DB_POSTGRESDB_USER: hxki
|
||||
DB_POSTGRESDB_PASSWORD: supersecure
|
||||
DB_POSTGRESDB_DATABASE: hxki_roles
|
||||
N8N_HOST: 0.0.0.0
|
||||
N8N_PORT: 5678
|
||||
N8N_PROTOCOL: http
|
||||
ports:
|
||||
- "5678:5678"
|
||||
|
||||
web:
|
||||
image: nginx:latest
|
||||
container_name: hxki-web
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/web:/usr/share/nginx/html:ro
|
||||
ports:
|
||||
- "80:80"
|
||||
|
||||
mariadb:
|
||||
image: mariadb:10.11
|
||||
container_name: hxki-mariadb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: supersecure
|
||||
MYSQL_DATABASE: mautic
|
||||
MYSQL_USER: mautic
|
||||
MYSQL_PASSWORD: mauticpass
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/db:/var/lib/mysql
|
||||
ports:
|
||||
- "3306:3306"
|
||||
|
||||
mautic:
|
||||
image: mautic/mautic:5-apache
|
||||
container_name: hxki-mautic
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mariadb
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MAUTIC_DB_HOST: mariadb
|
||||
MAUTIC_DB_USER: mautic
|
||||
MAUTIC_DB_PASSWORD: mauticpass
|
||||
MAUTIC_DB_NAME: mautic
|
||||
MAUTIC_TRUSTED_PROXIES: 0.0.0.0/0
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/app:/var/www/html
|
||||
ports:
|
||||
- "8080:80"
|
||||
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: hxki-gitea
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/archive:/data
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana-oss:latest
|
||||
container_name: hxki-grafana
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/grafana:/var/lib/grafana
|
||||
ports:
|
||||
- "3001:3000"
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
127
docker/docker-compose.yml.bak_hxkiweb_20251127_005836
Normal file
127
docker/docker-compose.yml.bak_hxkiweb_20251127_005836
Normal file
@@ -0,0 +1,127 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
hxki-web:
|
||||
build:
|
||||
context: /opt/hx-ki/web/hx-ki-website
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
syncthing:
|
||||
image: lscr.io/linuxserver/syncthing:latest
|
||||
container_name: hxki-syncthing
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/syncthing/config:/config
|
||||
- /opt/hx-ki/syncthing/data:/data
|
||||
|
||||
postgres:
|
||||
image: postgres:16
|
||||
container_name: hxki-postgres
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
POSTGRES_USER: hxki
|
||||
POSTGRES_PASSWORD: supersecure
|
||||
POSTGRES_DB: hxki_roles
|
||||
volumes:
|
||||
- /opt/hx-ki/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n
|
||||
container_name: hxki-n8n
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
DB_TYPE: postgresdb
|
||||
DB_POSTGRESDB_HOST: postgres
|
||||
DB_POSTGRESDB_PORT: 5432
|
||||
DB_POSTGRESDB_USER: hxki
|
||||
DB_POSTGRESDB_PASSWORD: supersecure
|
||||
DB_POSTGRESDB_DATABASE: hxki_roles
|
||||
N8N_HOST: 0.0.0.0
|
||||
N8N_PORT: 5678
|
||||
N8N_PROTOCOL: http
|
||||
ports:
|
||||
- "5678:5678"
|
||||
|
||||
web:
|
||||
image: nginx:latest
|
||||
container_name: hxki-web
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/web:/usr/share/nginx/html:ro
|
||||
ports:
|
||||
- "80:80"
|
||||
|
||||
mariadb:
|
||||
image: mariadb:10.11
|
||||
container_name: hxki-mariadb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: supersecure
|
||||
MYSQL_DATABASE: mautic
|
||||
MYSQL_USER: mautic
|
||||
MYSQL_PASSWORD: mauticpass
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/db:/var/lib/mysql
|
||||
ports:
|
||||
- "3306:3306"
|
||||
|
||||
mautic:
|
||||
image: mautic/mautic:5-apache
|
||||
container_name: hxki-mautic
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mariadb
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MAUTIC_DB_HOST: mariadb
|
||||
MAUTIC_DB_USER: mautic
|
||||
MAUTIC_DB_PASSWORD: mauticpass
|
||||
MAUTIC_DB_NAME: mautic
|
||||
MAUTIC_TRUSTED_PROXIES: 0.0.0.0/0
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/app:/var/www/html
|
||||
ports:
|
||||
- "8080:80"
|
||||
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: hxki-gitea
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/archive:/data
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana-oss:latest
|
||||
container_name: hxki-grafana
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/grafana:/var/lib/grafana
|
||||
ports:
|
||||
- "3001:3000"
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
132
docker/docker-compose.yml.bak_hxkiweb_ports_20251127_004952
Normal file
132
docker/docker-compose.yml.bak_hxkiweb_ports_20251127_004952
Normal file
@@ -0,0 +1,132 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
hxki-web:
|
||||
build:
|
||||
context: /opt/hx-ki/web/hx-ki-website
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
syncthing:
|
||||
image: lscr.io/linuxserver/syncthing:latest
|
||||
container_name: hxki-syncthing
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/syncthing/config:/config
|
||||
- /opt/hx-ki/syncthing/data:/data
|
||||
ports:
|
||||
- "8384:8384"
|
||||
- "22000:22000/tcp"
|
||||
- "22000:22000/udp"
|
||||
- "21027:21027/udp"
|
||||
|
||||
postgres:
|
||||
image: postgres:16
|
||||
container_name: hxki-postgres
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
POSTGRES_USER: hxki
|
||||
POSTGRES_PASSWORD: supersecure
|
||||
POSTGRES_DB: hxki_roles
|
||||
volumes:
|
||||
- /opt/hx-ki/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n
|
||||
container_name: hxki-n8n
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
DB_TYPE: postgresdb
|
||||
DB_POSTGRESDB_HOST: postgres
|
||||
DB_POSTGRESDB_PORT: 5432
|
||||
DB_POSTGRESDB_USER: hxki
|
||||
DB_POSTGRESDB_PASSWORD: supersecure
|
||||
DB_POSTGRESDB_DATABASE: hxki_roles
|
||||
N8N_HOST: 0.0.0.0
|
||||
N8N_PORT: 5678
|
||||
N8N_PROTOCOL: http
|
||||
ports:
|
||||
- "5678:5678"
|
||||
|
||||
web:
|
||||
image: nginx:latest
|
||||
container_name: hxki-web
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/web:/usr/share/nginx/html:ro
|
||||
ports:
|
||||
- "80:80"
|
||||
|
||||
mariadb:
|
||||
image: mariadb:10.11
|
||||
container_name: hxki-mariadb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: supersecure
|
||||
MYSQL_DATABASE: mautic
|
||||
MYSQL_USER: mautic
|
||||
MYSQL_PASSWORD: mauticpass
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/db:/var/lib/mysql
|
||||
ports:
|
||||
- "3306:3306"
|
||||
|
||||
mautic:
|
||||
image: mautic/mautic:5-apache
|
||||
container_name: hxki-mautic
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mariadb
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MAUTIC_DB_HOST: mariadb
|
||||
MAUTIC_DB_USER: mautic
|
||||
MAUTIC_DB_PASSWORD: mauticpass
|
||||
MAUTIC_DB_NAME: mautic
|
||||
MAUTIC_TRUSTED_PROXIES: 0.0.0.0/0
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/app:/var/www/html
|
||||
ports:
|
||||
- "8080:80"
|
||||
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: hxki-gitea
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/archive:/data
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana-oss:latest
|
||||
container_name: hxki-grafana
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/grafana:/var/lib/grafana
|
||||
ports:
|
||||
- "3001:3000"
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
127
docker/docker-compose.yml.bak_orchestra_20251127_013331
Normal file
127
docker/docker-compose.yml.bak_orchestra_20251127_013331
Normal file
@@ -0,0 +1,127 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
hxki-web:
|
||||
build:
|
||||
context: /opt/hx-ki/web/hx-ki-website
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
syncthing:
|
||||
image: lscr.io/linuxserver/syncthing:latest
|
||||
container_name: hxki-syncthing
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/syncthing/config:/config
|
||||
- /opt/hx-ki/syncthing/data:/data
|
||||
|
||||
postgres:
|
||||
image: postgres:16
|
||||
container_name: hxki-postgres
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
POSTGRES_USER: hxki
|
||||
POSTGRES_PASSWORD: supersecure
|
||||
POSTGRES_DB: hxki_roles
|
||||
volumes:
|
||||
- /opt/hx-ki/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n
|
||||
container_name: hxki-n8n
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
DB_TYPE: postgresdb
|
||||
DB_POSTGRESDB_HOST: postgres
|
||||
DB_POSTGRESDB_PORT: 5432
|
||||
DB_POSTGRESDB_USER: hxki
|
||||
DB_POSTGRESDB_PASSWORD: supersecure
|
||||
DB_POSTGRESDB_DATABASE: hxki_roles
|
||||
N8N_HOST: 0.0.0.0
|
||||
N8N_PORT: 5678
|
||||
N8N_PROTOCOL: http
|
||||
ports:
|
||||
- "5678:5678"
|
||||
|
||||
web:
|
||||
image: nginx:latest
|
||||
container_name: hxki-web
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/web:/usr/share/nginx/html:ro
|
||||
ports:
|
||||
- "80:80"
|
||||
|
||||
mariadb:
|
||||
image: mariadb:10.11
|
||||
container_name: hxki-mariadb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: supersecure
|
||||
MYSQL_DATABASE: mautic
|
||||
MYSQL_USER: mautic
|
||||
MYSQL_PASSWORD: mauticpass
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/db:/var/lib/mysql
|
||||
ports:
|
||||
- "3306:3306"
|
||||
|
||||
mautic:
|
||||
image: mautic/mautic:5-apache
|
||||
container_name: hxki-mautic
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mariadb
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MAUTIC_DB_HOST: mariadb
|
||||
MAUTIC_DB_USER: mautic
|
||||
MAUTIC_DB_PASSWORD: mauticpass
|
||||
MAUTIC_DB_NAME: mautic
|
||||
MAUTIC_TRUSTED_PROXIES: 0.0.0.0/0
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/app:/var/www/html
|
||||
ports:
|
||||
- "8080:80"
|
||||
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: hxki-gitea
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/archive:/data
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana-oss:latest
|
||||
container_name: hxki-grafana
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/grafana:/var/lib/grafana
|
||||
ports:
|
||||
- "3001:3000"
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
139
docker/docker-compose.yml.bak_rename_hxki
Normal file
139
docker/docker-compose.yml.bak_rename_hxki
Normal file
@@ -0,0 +1,139 @@
|
||||
version: "3.9"
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
|
||||
services:
|
||||
|
||||
# -------------------------------------------
|
||||
# POSTGRES (für n8n)
|
||||
# -------------------------------------------
|
||||
postgres:
|
||||
image: postgres:16
|
||||
container_name: hxki-postgres
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
POSTGRES_USER: hxki
|
||||
POSTGRES_PASSWORD: supersecure
|
||||
POSTGRES_DB: hxki_roles
|
||||
volumes:
|
||||
- /opt/hx-ki/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
# -------------------------------------------
|
||||
# N8N – DAS MASTER-NERVENSYSTEM
|
||||
# -------------------------------------------
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n:latest
|
||||
container_name: hxki-n8n
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
N8N_HOST: n8n.hx-ki.com
|
||||
N8N_PORT: 5678
|
||||
WEBHOOK_URL: https://n8n.hx-ki.com/
|
||||
N8N_PROTOCOL: https
|
||||
DB_TYPE: postgresdb
|
||||
DB_POSTGRESDB_HOST: postgres
|
||||
DB_POSTGRESDB_PORT: 5432
|
||||
DB_POSTGRESDB_USER: hxki
|
||||
DB_POSTGRESDB_PASSWORD: supersecure
|
||||
DB_POSTGRESDB_DATABASE: hxki_roles
|
||||
NATS_URL: nats://49.12.97.28:4222
|
||||
volumes:
|
||||
- /data/HXKI_WORKSPACE/router:/home/node/.n8n
|
||||
- /data/HXKI_WORKSPACE:/data/HXKI_WORKSPACE
|
||||
ports:
|
||||
- "5678:5678"
|
||||
|
||||
# -------------------------------------------
|
||||
# CADDY – SUBDOMAINS, TLS, ROUTING
|
||||
# -------------------------------------------
|
||||
caddy:
|
||||
image: caddy:2
|
||||
container_name: hx-caddy
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- /opt/hx-ki/docker/hxki-caddy/Caddyfile:/etc/caddy/Caddyfile
|
||||
- caddy_data:/data
|
||||
- caddy_config:/config
|
||||
|
||||
# -------------------------------------------
|
||||
# GRAFANA
|
||||
# -------------------------------------------
|
||||
grafana:
|
||||
image: grafana/grafana-oss:latest
|
||||
container_name: hxki-grafana
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- /opt/hx-ki/grafana:/var/lib/grafana
|
||||
|
||||
# -------------------------------------------
|
||||
# MARIA DB (für mautic)
|
||||
# -------------------------------------------
|
||||
mariadb:
|
||||
image: mariadb:10.11
|
||||
container_name: hxki-mariadb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: supersecure
|
||||
MYSQL_DATABASE: mautic
|
||||
volumes:
|
||||
- /opt/hx-ki/mariadb:/var/lib/mysql
|
||||
ports:
|
||||
- "3306:3306"
|
||||
|
||||
# -------------------------------------------
|
||||
# MAUTIC
|
||||
# -------------------------------------------
|
||||
mautic:
|
||||
image: mautic/mautic:5-apache
|
||||
container_name: hxki-mautic
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mariadb
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MAUTIC_DB_HOST: mariadb
|
||||
MAUTIC_DB_USER: root
|
||||
MAUTIC_DB_PASSWORD: supersecure
|
||||
MAUTIC_DB_NAME: mautic
|
||||
ports:
|
||||
- "8080:80"
|
||||
|
||||
# -------------------------------------------
|
||||
# GITEA
|
||||
# -------------------------------------------
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: hxki-gitea
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
ports:
|
||||
- "3001:3000"
|
||||
volumes:
|
||||
- /var/lib/gitea:/data
|
||||
|
||||
volumes:
|
||||
caddy_data:
|
||||
caddy_config:
|
||||
126
docker/docker-compose.yml.bak_website_20251127_003316
Normal file
126
docker/docker-compose.yml.bak_website_20251127_003316
Normal file
@@ -0,0 +1,126 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
syncthing:
|
||||
image: lscr.io/linuxserver/syncthing:latest
|
||||
container_name: hxki-syncthing
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/syncthing/config:/config
|
||||
- /opt/hx-ki/syncthing/data:/data
|
||||
ports:
|
||||
- "8384:8384"
|
||||
- "22000:22000/tcp"
|
||||
- "22000:22000/udp"
|
||||
- "21027:21027/udp"
|
||||
|
||||
postgres:
|
||||
image: postgres:16
|
||||
container_name: hxki-postgres
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
POSTGRES_USER: hxki
|
||||
POSTGRES_PASSWORD: supersecure
|
||||
POSTGRES_DB: hxki_roles
|
||||
volumes:
|
||||
- /opt/hx-ki/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n
|
||||
container_name: hxki-n8n
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
DB_TYPE: postgresdb
|
||||
DB_POSTGRESDB_HOST: postgres
|
||||
DB_POSTGRESDB_PORT: 5432
|
||||
DB_POSTGRESDB_USER: hxki
|
||||
DB_POSTGRESDB_PASSWORD: supersecure
|
||||
DB_POSTGRESDB_DATABASE: hxki_roles
|
||||
N8N_HOST: 0.0.0.0
|
||||
N8N_PORT: 5678
|
||||
N8N_PROTOCOL: http
|
||||
ports:
|
||||
- "5678:5678"
|
||||
|
||||
web:
|
||||
image: nginx:latest
|
||||
container_name: hxki-web
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/web:/usr/share/nginx/html:ro
|
||||
ports:
|
||||
- "80:80"
|
||||
|
||||
mariadb:
|
||||
image: mariadb:10.11
|
||||
container_name: hxki-mariadb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: supersecure
|
||||
MYSQL_DATABASE: mautic
|
||||
MYSQL_USER: mautic
|
||||
MYSQL_PASSWORD: mauticpass
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/db:/var/lib/mysql
|
||||
ports:
|
||||
- "3306:3306"
|
||||
|
||||
mautic:
|
||||
image: mautic/mautic:5-apache
|
||||
container_name: hxki-mautic
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mariadb
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MAUTIC_DB_HOST: mariadb
|
||||
MAUTIC_DB_USER: mautic
|
||||
MAUTIC_DB_PASSWORD: mauticpass
|
||||
MAUTIC_DB_NAME: mautic
|
||||
MAUTIC_TRUSTED_PROXIES: 0.0.0.0/0
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/app:/var/www/html
|
||||
ports:
|
||||
- "8080:80"
|
||||
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: hxki-gitea
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/archive:/data
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana-oss:latest
|
||||
container_name: hxki-grafana
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/grafana:/var/lib/grafana
|
||||
ports:
|
||||
- "3001:3000"
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
17
docker/docker-openwebui.yml
Normal file
17
docker/docker-openwebui.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
services:
|
||||
hxki-openwebui:
|
||||
image: ghcr.io/open-webui/open-webui:main
|
||||
container_name: hxki-openwebui
|
||||
ports:
|
||||
- "3002:3000"
|
||||
volumes:
|
||||
- /opt/hx-ki/openwebui:/data
|
||||
environment:
|
||||
- WEBUI_AUTH=False
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
161
docker/hx_falkenstein_layer3_setup.sh
Executable file
161
docker/hx_falkenstein_layer3_setup.sh
Executable file
@@ -0,0 +1,161 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
echo ">> HX-KI Falkenstein Layer-3 Setup startet..."
|
||||
|
||||
BASE_DIR="/opt/hx-ki"
|
||||
|
||||
echo ">> Verzeichnisse anlegen..."
|
||||
mkdir -p "${BASE_DIR}/syncthing/config"
|
||||
mkdir -p "${BASE_DIR}/syncthing/data"
|
||||
mkdir -p "${BASE_DIR}/postres" || true
|
||||
mkdir -p "${BASE_DIR}/postgres"
|
||||
mkdir -p "${BASE_DIR}/web"
|
||||
mkdir -p "${BASE_DIR}/mautic/db"
|
||||
mkdir -p "${BASE_DIR}/mautic/app"
|
||||
mkdir -p "${BASE_DIR}/archive"
|
||||
mkdir -p "${BASE_DIR}/grafana"
|
||||
|
||||
echo ">> Docker Netzwerk hxki-internal anlegen (falls nötig)..."
|
||||
docker network create hxki-internal || true
|
||||
|
||||
COMPOSE_FILE="${BASE_DIR}/docker/docker-compose.yml"
|
||||
mkdir -p "${BASE_DIR}/docker"
|
||||
|
||||
echo ">> docker-compose.yml schreiben nach ${COMPOSE_FILE}..."
|
||||
|
||||
cat > "${COMPOSE_FILE}" << 'EOF'
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
syncthing:
|
||||
image: lscr.io/linuxserver/syncthing:latest
|
||||
container_name: hxki-syncthing
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/syncthing/config:/config
|
||||
- /opt/hx-ki/syncthing/data:/data
|
||||
ports:
|
||||
- "8384:8384"
|
||||
- "22000:22000/tcp"
|
||||
- "22000:22000/udp"
|
||||
- "21027:21027/udp"
|
||||
|
||||
postgres:
|
||||
image: postgres:16
|
||||
container_name: hxki-postgres
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
POSTGRES_USER: hxki
|
||||
POSTGRES_PASSWORD: supersecure
|
||||
POSTGRES_DB: hxki_roles
|
||||
volumes:
|
||||
- /opt/hx-ki/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n
|
||||
container_name: hxki-n8n
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
DB_TYPE: postgresdb
|
||||
DB_POSTGRESDB_HOST: postgres
|
||||
DB_POSTGRESDB_PORT: 5432
|
||||
DB_POSTGRESDB_USER: hxki
|
||||
DB_POSTGRESDB_PASSWORD: supersecure
|
||||
DB_POSTGRESDB_DATABASE: hxki_roles
|
||||
N8N_HOST: 0.0.0.0
|
||||
N8N_PORT: 5678
|
||||
N8N_PROTOCOL: http
|
||||
ports:
|
||||
- "5678:5678"
|
||||
|
||||
web:
|
||||
image: nginx:latest
|
||||
container_name: hxki-web
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/web:/usr/share/nginx/html:ro
|
||||
ports:
|
||||
- "80:80"
|
||||
|
||||
mariadb:
|
||||
image: mariadb:10.11
|
||||
container_name: hxki-mariadb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: supersecure
|
||||
MYSQL_DATABASE: mautic
|
||||
MYSQL_USER: mautic
|
||||
MYSQL_PASSWORD: mauticpass
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/db:/var/lib/mysql
|
||||
ports:
|
||||
- "3306:3306"
|
||||
|
||||
mautic:
|
||||
image: mautic/mautic:5-apache
|
||||
container_name: hxki-mautic
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mariadb
|
||||
networks:
|
||||
- hxki-internal
|
||||
environment:
|
||||
MAUTIC_DB_HOST: mariadb
|
||||
MAUTIC_DB_USER: mautic
|
||||
MAUTIC_DB_PASSWORD: mauticpass
|
||||
MAUTIC_DB_NAME: mautic
|
||||
MAUTIC_TRUSTED_PROXIES: 0.0.0.0/0
|
||||
volumes:
|
||||
- /opt/hx-ki/mautic/app:/var/www/html
|
||||
ports:
|
||||
- "8080:80"
|
||||
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: hxki-gitea
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/archive:/data
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana-oss:latest
|
||||
container_name: hxki-grafana
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- hxki-internal
|
||||
volumes:
|
||||
- /opt/hx-ki/grafana:/var/lib/grafana
|
||||
ports:
|
||||
- "3001:3000"
|
||||
|
||||
networks:
|
||||
hxki-internal:
|
||||
external: true
|
||||
EOF
|
||||
|
||||
echo ">> Stack starten (docker compose up -d)..."
|
||||
cd "${BASE_DIR}/docker"
|
||||
docker compose up -d
|
||||
|
||||
echo ">> HX-KI Falkenstein Layer-3 Setup: FERTIG."
|
||||
docker ps
|
||||
525
docker/hx_falkenstein_orchestra_setup.sh
Executable file
525
docker/hx_falkenstein_orchestra_setup.sh
Executable file
@@ -0,0 +1,525 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# ============================================================
|
||||
# HX-KI FALKENSTEIN ORCHESTRA INSTALL V1
|
||||
# ------------------------------------------------------------
|
||||
# - Legt Ferrari-Orchestra-Schema an
|
||||
# - Spielt Falkenstein-Rollen inkl. Backbridge ein
|
||||
# - Optional erweiterbar um weitere Pipelines
|
||||
#
|
||||
# Voraussetzung:
|
||||
# - Docker-Container: hxki-postgres
|
||||
# - DB-User: hxki
|
||||
# - DB-Name: hxki_roles
|
||||
# ============================================================
|
||||
|
||||
DB_CONTAINER="hxki-postgres"
|
||||
DB_USER="hxki"
|
||||
DB_NAME="hxki_roles"
|
||||
|
||||
echo ">> HX-KI Falkenstein Orchestra Install startet..."
|
||||
|
||||
docker exec -i "${DB_CONTAINER}" psql -U "${DB_USER}" -d "${DB_NAME}" << 'EOSQL'
|
||||
|
||||
-- ============================================================
|
||||
-- 1) SCHEMA: HX ORCHESTRA (Basis aus hx_orchestra_schema.sql)
|
||||
-- ============================================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS hx_roles (
|
||||
id SERIAL PRIMARY KEY,
|
||||
code TEXT UNIQUE NOT NULL,
|
||||
profile JSONB NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT now(),
|
||||
updated_at TIMESTAMP DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_roles_code ON hx_roles(code);
|
||||
CREATE INDEX IF NOT EXISTS idx_roles_profile ON hx_roles USING GIN(profile);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS hx_pipelines (
|
||||
id SERIAL PRIMARY KEY,
|
||||
code TEXT UNIQUE NOT NULL,
|
||||
config JSONB NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT now(),
|
||||
updated_at TIMESTAMP DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_pipelines_code ON hx_pipelines(code);
|
||||
CREATE INDEX IF NOT EXISTS idx_pipelines_config ON hx_pipelines USING GIN(config);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS hx_pipeline_steps (
|
||||
id SERIAL PRIMARY KEY,
|
||||
pipeline_code TEXT NOT NULL,
|
||||
step_no INTEGER NOT NULL,
|
||||
config JSONB NOT NULL,
|
||||
UNIQUE(pipeline_code, step_no)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_steps_pipeline ON hx_pipeline_steps(pipeline_code, step_no);
|
||||
CREATE INDEX IF NOT EXISTS idx_steps_config ON hx_pipeline_steps USING GIN(config);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS hx_orchestra_runs (
|
||||
id SERIAL PRIMARY KEY,
|
||||
started_at TIMESTAMP DEFAULT now(),
|
||||
run_data JSONB NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_runs_started ON hx_orchestra_runs(started_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_runs_data ON hx_orchestra_runs USING GIN(run_data);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS hx_schema_version (
|
||||
version TEXT PRIMARY KEY,
|
||||
applied_at TIMESTAMP DEFAULT now(),
|
||||
description TEXT
|
||||
);
|
||||
|
||||
INSERT INTO hx_schema_version (version, description)
|
||||
VALUES ('1.0.0', 'Initial Ferrari Schema - Maximum Flexible Design')
|
||||
ON CONFLICT (version) DO NOTHING;
|
||||
|
||||
-- kleine Helper-Funktion: updated_at pflegen
|
||||
CREATE OR REPLACE FUNCTION hx_touch_updated_at()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
NEW.updated_at = now();
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
DROP TRIGGER IF EXISTS trg_roles_updated ON hx_roles;
|
||||
CREATE TRIGGER trg_roles_updated
|
||||
BEFORE UPDATE ON hx_roles
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION hx_touch_updated_at();
|
||||
|
||||
DROP TRIGGER IF EXISTS trg_pipelines_updated ON hx_pipelines;
|
||||
CREATE TRIGGER trg_pipelines_updated
|
||||
BEFORE UPDATE ON hx_pipelines
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION hx_touch_updated_at();
|
||||
|
||||
-- ============================================================
|
||||
-- 2) ROLLEN FÜR FALKENSTEIN (SPRACHORGAN)
|
||||
-- ============================================================
|
||||
-- Codes:
|
||||
-- VOICE_21 = Master Sprachorgan
|
||||
-- ROUTER_22 = Message Router
|
||||
-- GATEWAY_23 = Public Gateway (Web/API)
|
||||
-- MAUTIC_24 = Marketing Connector
|
||||
-- ARCHIVAR_25 = Gitea Archiv-Porsche
|
||||
-- BRIDGE_NBG_26 = Bridge nach Nürnberg
|
||||
-- BRIDGE_HEL_27 = Bridge nach Helsinki
|
||||
-- BACKBRIDGE_28 = Rückfluss/Backchannel (Feedback & Logging)
|
||||
-- WEBSITE_29 = Web Output / SEO
|
||||
-- ============================================================
|
||||
|
||||
-- Helper: UPSERT für Rollen
|
||||
CREATE OR REPLACE FUNCTION hx_upsert_role(_code TEXT, _profile JSONB)
|
||||
RETURNS VOID AS $$
|
||||
BEGIN
|
||||
INSERT INTO hx_roles (code, profile)
|
||||
VALUES (_code, _profile)
|
||||
ON CONFLICT (code) DO UPDATE
|
||||
SET profile = EXCLUDED.profile,
|
||||
updated_at = now();
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- ========== VOICE_21 =======================================
|
||||
|
||||
SELECT hx_upsert_role(
|
||||
'VOICE_21',
|
||||
'{
|
||||
"name": "Sprachorgan Master",
|
||||
"belongs_to_server": "FALKENSTEIN",
|
||||
"numerology": {
|
||||
"primary_tag": "21",
|
||||
"description": "Master-Kommunikationsknoten des Systems"
|
||||
},
|
||||
"is_active": true,
|
||||
"dimension_1_golden_circle": {
|
||||
"why": "Ich existiere, um die Stimme des Gesamtsystems nach außen klar, ruhig und markenkonform hörbar zu machen.",
|
||||
"how": "Ich sammle, synthetisiere und priorisiere alle Kommunikationsströme aus Hirn (Nürnberg) und Motor (Helsinki).",
|
||||
"what": "Ich formuliere finale Antworten, Protokolle, Memos und Marketingbotschaften im HX-KI Stil."
|
||||
},
|
||||
"dimension_2_architecture": {
|
||||
"architectural_role": ["Top-Level Communicator", "Final Synthesizer"],
|
||||
"position_in_system": "Letzte Station vor externem Output (User, Web, Mail).",
|
||||
"interacts_with": ["ROUTER_22", "GATEWAY_23", "BRIDGE_NBG_26", "BRIDGE_HEL_27", "BACKBRIDGE_28"]
|
||||
},
|
||||
"dimension_3_usp": {
|
||||
"unique_contribution": "Nur VOICE_21 trägt die Verantwortung für die finale Formulierung nach außen – klar, verständlich, markentragend."
|
||||
},
|
||||
"dimension_4_cognition": {
|
||||
"strengths": ["Storytelling", "Synthese", "Sprachklarheit"],
|
||||
"weaknesses": ["Tiefe Systemdiagnostik"],
|
||||
"operating_modes": ["synthesize", "summarize", "clarify"]
|
||||
},
|
||||
"dimension_5_hierarchy": {
|
||||
"default_pipelines": ["FALKENSTEIN_MESSAGE_FLOW"],
|
||||
"input_source": ["ROUTER_22", "BRIDGE_NBG_26", "BRIDGE_HEL_27"],
|
||||
"output_target": ["GATEWAY_23", "WEBSITE_29", "BACKBRIDGE_28"]
|
||||
},
|
||||
"dimension_6_technical": {
|
||||
"model": "llama3:8b-instruct",
|
||||
"temperature": 0.4,
|
||||
"max_tokens": 2048,
|
||||
"required_collections": [],
|
||||
"system_prompt": "Du bist VOICE_21 – das zentrale Sprachorgan von HX-KI. Du formulierst die finale, klare und markenkonforme Antwort des Systems nach außen."
|
||||
},
|
||||
"dimension_7_kpi": {
|
||||
"primary_kpi": "Clarity & Brand Consistency",
|
||||
"secondary_kpi": "Time-to-Understanding"
|
||||
}
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
-- ========== ROUTER_22 ======================================
|
||||
|
||||
SELECT hx_upsert_role(
|
||||
'ROUTER_22',
|
||||
'{
|
||||
"name": "Message Router",
|
||||
"belongs_to_server": "FALKENSTEIN",
|
||||
"numerology": {
|
||||
"primary_tag": "22",
|
||||
"description": "Master-Logistik für Nachrichtenströme"
|
||||
},
|
||||
"is_active": true,
|
||||
"dimension_1_golden_circle": {
|
||||
"why": "Ich existiere, damit jede Nachricht an der richtigen Stelle landet – nicht im Chaos.",
|
||||
"how": "Ich klassifiziere, tagge und route Eingaben anhand von Inhalt, Herkunft und Ziel.",
|
||||
"what": "Ich bestimme, ob etwas nach Nürnberg, Helsinki, VOICE_21, ARCHIVAR_25 oder ins Log wandert."
|
||||
},
|
||||
"dimension_2_architecture": {
|
||||
"architectural_role": ["Router", "Traffic Control"],
|
||||
"position_in_system": "Frühe Rolle in jeder Kommunikations-Pipeline.",
|
||||
"interacts_with": ["BRIDGE_NBG_26", "BRIDGE_HEL_27", "BACKBRIDGE_28", "ARCHIVAR_25"]
|
||||
},
|
||||
"dimension_6_technical": {
|
||||
"model": "phi3:mini",
|
||||
"temperature": 0.1,
|
||||
"max_tokens": 512,
|
||||
"required_collections": [],
|
||||
"system_prompt": "Du bist ROUTER_22 – du klassifizierst Nachrichten und entscheidest, welcher Server / welche Rolle sie weiterverarbeiten soll."
|
||||
}
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
-- ========== GATEWAY_23 =====================================
|
||||
|
||||
SELECT hx_upsert_role(
|
||||
'GATEWAY_23',
|
||||
'{
|
||||
"name": "Public Gateway",
|
||||
"belongs_to_server": "FALKENSTEIN",
|
||||
"numerology": {
|
||||
"primary_tag": "23",
|
||||
"description": "Sichere Außenschnittstelle"
|
||||
},
|
||||
"is_active": true,
|
||||
"dimension_1_golden_circle": {
|
||||
"why": "Ich existiere, um einen sicheren, kontrollierten Zugang zur Außenwelt zu bieten.",
|
||||
"how": "Ich filtere, logge und kontrolliere alle externen Schnittstellen (Web, API, Mail).",
|
||||
"what": "Ich nehme Anfragen entgegen und liefere Antworten aus VOICE_21 und WEBSITE_29 aus."
|
||||
},
|
||||
"dimension_2_architecture": {
|
||||
"architectural_role": ["Gateway", "Security Filter"],
|
||||
"position_in_system": "Erster und letzter Kontaktpunkt zur Außenwelt.",
|
||||
"interacts_with": ["VOICE_21", "WEBSITE_29", "BACKBRIDGE_28"]
|
||||
},
|
||||
"dimension_6_technical": {
|
||||
"model": "phi3:mini",
|
||||
"temperature": 0.0,
|
||||
"max_tokens": 512,
|
||||
"required_collections": [],
|
||||
"system_prompt": "Du bist GATEWAY_23 – du bist die kontrollierte Schnittstelle zur Außenwelt."
|
||||
}
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
-- ========== MAUTIC_24 ======================================
|
||||
|
||||
SELECT hx_upsert_role(
|
||||
'MAUTIC_24',
|
||||
'{
|
||||
"name": "Marketing Connector",
|
||||
"belongs_to_server": "FALKENSTEIN",
|
||||
"numerology": { "primary_tag": "24" },
|
||||
"is_active": true,
|
||||
"dimension_1_golden_circle": {
|
||||
"why": "Ich existiere, um Mautic-Kampagnen inhaltlich zu befeuern.",
|
||||
"how": "Ich übersetze Strategien und Botschaften in konkrete Mautic-Templates und Segmente.",
|
||||
"what": "Ich generiere Texte, Betreffzeilen, Sequenzen und logische Regeln für Kampagnen."
|
||||
},
|
||||
"dimension_2_architecture": {
|
||||
"architectural_role": ["Marketing Output"],
|
||||
"position_in_system": "Spezialisierte Rolle in Marketing-Pipelines.",
|
||||
"interacts_with": ["VOICE_21", "WEBSITE_29"]
|
||||
},
|
||||
"dimension_6_technical": {
|
||||
"model": "llama3:8b-instruct",
|
||||
"temperature": 0.6,
|
||||
"max_tokens": 2048,
|
||||
"required_collections": [],
|
||||
"system_prompt": "Du bist MAUTIC_24 – du erstellst und optimierst Inhalte für Mautic-Kampagnen im HX-KI Stil."
|
||||
}
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
-- ========== ARCHIVAR_25 ====================================
|
||||
|
||||
SELECT hx_upsert_role(
|
||||
'ARCHIVAR_25',
|
||||
'{
|
||||
"name": "Archiv-Porsche",
|
||||
"belongs_to_server": "FALKENSTEIN",
|
||||
"numerology": { "primary_tag": "25" },
|
||||
"is_active": true,
|
||||
"dimension_1_golden_circle": {
|
||||
"why": "Ich existiere, damit kein wertvoller Code, keine Konfiguration und kein Prompt verloren geht.",
|
||||
"how": "Ich strukturiere Repositories, Branches und Tags in Gitea nach dem HX-KI-Logiksystem.",
|
||||
"what": "Ich pflege Repos für Motor (Helsinki), Hirn (Nürnberg) und Sprachorgan (Falkenstein)."
|
||||
},
|
||||
"dimension_2_architecture": {
|
||||
"architectural_role": ["Archivierung", "Versionierung"],
|
||||
"position_in_system": "Support-Rolle, die von ROUTER_22 und BACKBRIDGE_28 gefüttert wird.",
|
||||
"interacts_with": ["BRIDGE_NBG_26", "BRIDGE_HEL_27"]
|
||||
},
|
||||
"dimension_6_technical": {
|
||||
"model": "phi3:mini",
|
||||
"temperature": 0.2,
|
||||
"max_tokens": 1024,
|
||||
"required_collections": [],
|
||||
"system_prompt": "Du bist ARCHIVAR_25 – du sorgst dafür, dass Code, Skripte und Konfigurationen sauber in Gitea abgelegt und versioniert sind."
|
||||
}
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
-- ========== BRIDGE_NBG_26 ==================================
|
||||
|
||||
SELECT hx_upsert_role(
|
||||
'BRIDGE_NBG_26',
|
||||
'{
|
||||
"name": "Brain Bridge Nürnberg",
|
||||
"belongs_to_server": "FALKENSTEIN",
|
||||
"numerology": { "primary_tag": "26" },
|
||||
"is_active": true,
|
||||
"dimension_1_golden_circle": {
|
||||
"why": "Ich existiere, damit das Sprachorgan gezielt mit dem Großhirn in Nürnberg sprechen kann.",
|
||||
"how": "Ich wandle Kommunikationswünsche in technische Requests an Nürnberg um und sammle die Antworten.",
|
||||
"what": "Ich bin die Logik-Schicht über n8n/Webhooks/Syncthing zwischen Falkenstein und Nürnberg."
|
||||
},
|
||||
"dimension_2_architecture": {
|
||||
"architectural_role": ["Bridge", "Translator"],
|
||||
"position_in_system": "Zwischen ROUTER_22 und VOICE_21 / ANALYST-Rollen in Nürnberg.",
|
||||
"interacts_with": ["ROUTER_22", "BACKBRIDGE_28"]
|
||||
},
|
||||
"dimension_6_technical": {
|
||||
"model": "phi3:mini",
|
||||
"temperature": 0.1,
|
||||
"max_tokens": 1024,
|
||||
"required_collections": [],
|
||||
"system_prompt": "Du bist BRIDGE_NBG_26 – du koordinierst Anfragen vom Sprachorgan an das Großhirn (Nürnberg) und bringst strukturierte Antworten zurück."
|
||||
}
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
-- ========== BRIDGE_HEL_27 ==================================
|
||||
|
||||
SELECT hx_upsert_role(
|
||||
'BRIDGE_HEL_27',
|
||||
'{
|
||||
"name": "Motor Bridge Helsinki",
|
||||
"belongs_to_server": "FALKENSTEIN",
|
||||
"numerology": { "primary_tag": "27" },
|
||||
"is_active": true,
|
||||
"dimension_1_golden_circle": {
|
||||
"why": "Ich existiere, damit das Sprachorgan gezielt mit dem Motor (Helsinki) sprechen kann.",
|
||||
"how": "Ich fordere Indexierung, Embeddings, File-Status und technische Metadaten beim Motor an.",
|
||||
"what": "Ich mappe Kommunikationsbedarfe auf Auto-Indexer- und Embedding-Jobs."
|
||||
},
|
||||
"dimension_2_architecture": {
|
||||
"architectural_role": ["Bridge", "Job Dispatcher"],
|
||||
"position_in_system": "Neben BRIDGE_NBG_26 als zweite externe Brücke.",
|
||||
"interacts_with": ["ROUTER_22", "BACKBRIDGE_28"]
|
||||
},
|
||||
"dimension_6_technical": {
|
||||
"model": "phi3:mini",
|
||||
"temperature": 0.1,
|
||||
"max_tokens": 1024,
|
||||
"required_collections": [],
|
||||
"system_prompt": "Du bist BRIDGE_HEL_27 – du koordinierst das Zusammenspiel zwischen Sprachorgan und Motor (Helsinki)."
|
||||
}
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
-- ========== BACKBRIDGE_28 ==================================
|
||||
-- Rückfluss und Feedback-Kanal: Alles was rausging, kommt hier
|
||||
-- als strukturierte Erfahrung wieder zurück ins System.
|
||||
|
||||
SELECT hx_upsert_role(
|
||||
'BACKBRIDGE_28',
|
||||
'{
|
||||
"name": "Backbridge Feedback",
|
||||
"belongs_to_server": "FALKENSTEIN",
|
||||
"numerology": { "primary_tag": "28" },
|
||||
"is_active": true,
|
||||
"dimension_1_golden_circle": {
|
||||
"why": "Ich existiere, damit das System aus seinen eigenen Outputs lernt, ohne sich selbst zu überfluten.",
|
||||
"how": "Ich sammle Antworten, Logs, Reaktionen und bringe sie kontrolliert zurück in Hirn und Motor.",
|
||||
"what": "Ich schreibe strukturierte Run-Daten, Reaktionsmuster und Archivereinträge zurück ins System."
|
||||
},
|
||||
"dimension_2_architecture": {
|
||||
"architectural_role": ["Feedback Bridge", "Backchannel"],
|
||||
"position_in_system": "Hinter GATEWAY_23 und VOICE_21, vor ARCHIVAR_25 und BRIDGES.",
|
||||
"interacts_with": ["GATEWAY_23", "VOICE_21", "ARCHIVAR_25", "BRIDGE_NBG_26", "BRIDGE_HEL_27"]
|
||||
},
|
||||
"dimension_6_technical": {
|
||||
"model": "phi3:mini",
|
||||
"temperature": 0.0,
|
||||
"max_tokens": 1024,
|
||||
"required_collections": [],
|
||||
"system_prompt": "Du bist BACKBRIDGE_28 – du verwandelst Outputs und Logs in strukturiertes Feedback, das sicher wieder in Hirn und Motor zurückgeführt wird."
|
||||
}
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
-- ========== WEBSITE_29 =====================================
|
||||
|
||||
SELECT hx_upsert_role(
|
||||
'WEBSITE_29',
|
||||
'{
|
||||
"name": "Web Output Manager",
|
||||
"belongs_to_server": "FALKENSTEIN",
|
||||
"numerology": { "primary_tag": "29" },
|
||||
"is_active": true,
|
||||
"dimension_1_golden_circle": {
|
||||
"why": "Ich existiere, um das, was HX-KI ist, sauber und verständlich im Web abzubilden.",
|
||||
"how": "Ich bringe Struktur, CI-Ton und SEO-Basis zusammen.",
|
||||
"what": "Ich erstelle und pflege Seitenstrukturen, Texte und Feintuning für Web-Output."
|
||||
},
|
||||
"dimension_2_architecture": {
|
||||
"architectural_role": ["Web Output", "SEO Layer"],
|
||||
"position_in_system": "Spezialisierte Output-Rolle hinter VOICE_21.",
|
||||
"interacts_with": ["VOICE_21", "GATEWAY_23"]
|
||||
},
|
||||
"dimension_6_technical": {
|
||||
"model": "llama3:8b-instruct",
|
||||
"temperature": 0.5,
|
||||
"max_tokens": 2048,
|
||||
"required_collections": [],
|
||||
"system_prompt": "Du bist WEBSITE_29 – du bringst die Inhalte von HX-KI CI-konform und verständlich ins Web."
|
||||
}
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 3) OPTIONAL: BASIS-PIPELINE FÜR FALKENSTEIN (MESSAGE-FLOW)
|
||||
-- ============================================================
|
||||
|
||||
-- Helper: UPSERT für Pipelines
|
||||
CREATE OR REPLACE FUNCTION hx_upsert_pipeline(_code TEXT, _config JSONB)
|
||||
RETURNS VOID AS $$
|
||||
BEGIN
|
||||
INSERT INTO hx_pipelines (code, config)
|
||||
VALUES (_code, _config)
|
||||
ON CONFLICT (code) DO UPDATE
|
||||
SET config = EXCLUDED.config,
|
||||
updated_at = now();
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- Helper: UPSERT für Pipeline-Steps
|
||||
CREATE OR REPLACE FUNCTION hx_upsert_pipeline_step(_pipeline_code TEXT, _step_no INT, _config JSONB)
|
||||
RETURNS VOID AS $$
|
||||
BEGIN
|
||||
INSERT INTO hx_pipeline_steps (pipeline_code, step_no, config)
|
||||
VALUES (_pipeline_code, _step_no, _config)
|
||||
ON CONFLICT (pipeline_code, step_no) DO UPDATE
|
||||
SET config = EXCLUDED.config;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- Pipeline: FALKENSTEIN_MESSAGE_FLOW
|
||||
SELECT hx_upsert_pipeline(
|
||||
'FALKENSTEIN_MESSAGE_FLOW',
|
||||
'{
|
||||
"name": "Falkenstein Message Flow",
|
||||
"description": "Standard-Pipeline für eingehende Kommunikation über Falkenstein.",
|
||||
"is_active": true,
|
||||
"use_cases": ["Web-Anfragen", "API-Requests", "Marketing-Output"],
|
||||
"trigger_conditions": {
|
||||
"default": true,
|
||||
"keywords": []
|
||||
}
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
SELECT hx_upsert_pipeline_step(
|
||||
'FALKENSTEIN_MESSAGE_FLOW',
|
||||
1,
|
||||
'{
|
||||
"role_code": "ROUTER_22",
|
||||
"mode": "route",
|
||||
"input_source": "user",
|
||||
"description": "Klassifiziert die Anfrage und entscheidet, ob Hirn, Motor oder nur Sprachorgan benötigt wird."
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
SELECT hx_upsert_pipeline_step(
|
||||
'FALKENSTEIN_MESSAGE_FLOW',
|
||||
2,
|
||||
'{
|
||||
"role_code": "BRIDGE_NBG_26",
|
||||
"mode": "brain_request",
|
||||
"input_source": "conditional",
|
||||
"description": "Sendet Anfragen, die tiefes Denken brauchen, nach Nürnberg.",
|
||||
"optional": true
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
SELECT hx_upsert_pipeline_step(
|
||||
'FALKENSTEIN_MESSAGE_FLOW',
|
||||
3,
|
||||
'{
|
||||
"role_code": "BRIDGE_HEL_27",
|
||||
"mode": "motor_request",
|
||||
"input_source": "conditional",
|
||||
"description": "Sendet Anfragen, die Indexierung/Embeddings brauchen, nach Helsinki.",
|
||||
"optional": true
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
SELECT hx_upsert_pipeline_step(
|
||||
'FALKENSTEIN_MESSAGE_FLOW',
|
||||
4,
|
||||
'{
|
||||
"role_code": "VOICE_21",
|
||||
"mode": "synthesize",
|
||||
"input_source": "merge",
|
||||
"description": "Synthetisiert Antworten aus Hirn/Motor oder beantwortet direkt.",
|
||||
"output_format": "final_answer"
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
SELECT hx_upsert_pipeline_step(
|
||||
'FALKENSTEIN_MESSAGE_FLOW',
|
||||
5,
|
||||
'{
|
||||
"role_code": "BACKBRIDGE_28",
|
||||
"mode": "feedback_log",
|
||||
"input_source": "previous",
|
||||
"description": "Schreibt Output, Logs und Feedback strukturiert zurück ins System und ins Archiv.",
|
||||
"output_format": "logged_answer"
|
||||
}'::jsonb
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- FERTIG
|
||||
-- ============================================================
|
||||
|
||||
EOSQL
|
||||
|
||||
echo ">> HX-KI Falkenstein Orchestra Install: FERTIG."
|
||||
8
docker/hxki-caddy/Caddyfile
Normal file
8
docker/hxki-caddy/Caddyfile
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
email admin@hx-ki.com
|
||||
}
|
||||
|
||||
# Nur n8n, minimal
|
||||
n8n.hx-ki.com {
|
||||
reverse_proxy hxki-n8n:5678
|
||||
}
|
||||
25
docker/hxki-com-orchestra.sh
Executable file
25
docker/hxki-com-orchestra.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
COMPOSE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
BASE="${COMPOSE_DIR}/docker-compose.yml"
|
||||
NATS="${COMPOSE_DIR}/docker-compose.nats-fsn.yml"
|
||||
TELEM="${COMPOSE_DIR}/docker-compose.telemetry.yml"
|
||||
|
||||
if command -v docker compose >/dev/null 2>&1; then
|
||||
CMD="docker compose"
|
||||
else
|
||||
CMD="docker-compose"
|
||||
fi
|
||||
|
||||
if [[ $# -eq 0 ]]; then
|
||||
echo "Usage: $0 up|down|ps|logs [weitere docker-compose Argumente]"
|
||||
echo "Beispiele:"
|
||||
echo " $0 up -d # kompletten COM-Stack starten"
|
||||
echo " $0 down # kompletten COM-Stack stoppen"
|
||||
echo " $0 ps # Status aller COM-Container"
|
||||
echo " $0 logs hxki-n8n # Logs eines Dienstes"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$CMD" -f "$BASE" -f "$NATS" -f "$TELEM" "$@"
|
||||
21
docker/hxki-syncthing/docker-compose.yml
Normal file
21
docker/hxki-syncthing/docker-compose.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
hxki-syncthing:
|
||||
image: lscr.io/linuxserver/syncthing:latest
|
||||
container_name: hxki-syncthing
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- NATS_URL=nats://91.98.42.205:4222
|
||||
- PUID=0
|
||||
- PGID=0
|
||||
- TZ=Europe/Berlin
|
||||
volumes:
|
||||
- /opt/hx-ki/syncthing/config:/config
|
||||
- /data/HXKI_WORKSPACE:/data
|
||||
network_mode: bridge
|
||||
ports:
|
||||
- "8384:8384" # Web UI
|
||||
- "22000:22000/tcp" # Sync TCP
|
||||
- "22000:22000/udp" # Sync UDP
|
||||
- "21027:21027/udp" # Local discovery
|
||||
Reference in New Issue
Block a user