ibo/docker-compose.yml
timu 650d7f3394 ibo: containerize + Gitea-CI + dev/prod-Deploy + Zitadel-SSO + noVNC-Live-View
- Dockerfile/compose: Flask-App + selenium/standalone-chrome (noVNC), Healthcheck
- app.py: /healthz + eingebettete noVNC-Live-Ansicht (NOVNC_URL, lokal:7900 / Cluster:/novnc/)
- Helm-Chart infra/k8s/base/ibo: App + Selenium-Sidecar, 2 Ports, Ingress
  (/ + /novnc via stripPrefix), SSO-Middlewares aus dem CD-Repo
- Gitea-CI: version -> test -> build-push -> helm-validate -> deploy-dev (Write-back)
- .gitignore/.dockerignore (Dev-Samples raus)
- infra/RUNBOOK-ibo.md: Zitadel/DNS/Deploy/Prod-Promote

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 01:03:32 +02:00

42 lines
1.5 KiB
YAML

# Immo-Bot lokal / auf einem VPS:
#
# docker compose up -d
#
# Danach:
# - Web-UI: http://localhost:5000
# - Live-Ansicht des Automations-Browsers: direkt in der Web-App (Button
# "👁️ Browser live ansehen" / oeffnet automatisch beim Consent-Browser).
# Die App bettet dazu noVNC (Port 7900) per iframe ein — NOVNC_URL unten.
# Alternativ direkt: http://localhost:7900 (Passwort: secret)
#
# Der Selenium-Container bringt Chrome + noVNC mit. Die App verbindet sich
# ueber SELENIUM_REMOTE_URL mit ihm (kein Chrome-Setup in der App noetig).
services:
selenium:
image: selenium/standalone-chrome:latest
shm_size: "2g"
environment:
# Parallelitaet: mehrere Browser-Sessions gleichzeitig zulassen.
# Sollte >= config.json run.parallel_workers sein.
SE_NODE_MAX_SESSIONS: "4"
SE_NODE_OVERRIDE_MAX_SESSIONS: "true"
ports:
- "4444:4444" # WebDriver (intern von der App genutzt)
- "7900:7900" # noVNC - Live-Ansicht (eingebettet in die Web-App)
restart: unless-stopped
app:
build: .
depends_on:
- selenium
environment:
# App spricht den Selenium-Container ueber den Service-Namen an
SELENIUM_REMOTE_URL: "http://selenium:4444"
# Basis-URL fuer das eingebettete noVNC-Live-View. Lokal zeigt der Browser
# auf den gemappten Host-Port 7900. (Im Cluster: /novnc/ ueber den Ingress.)
NOVNC_URL: "http://localhost:7900"
ports:
- "5000:5000" # Web-UI
restart: unless-stopped