Files
Visigine/docker-compose.yml
Ihor_Zhekov 8653ce2cc5 Remove custom network so Coolify/Traefik can route (fixes empty HTTPS reply)
Frontend was on two networks; Traefik (on only one) couldn't reach it -> 000/empty reply on HTTPS while nginx served 200 directly. Letting Coolify manage networking puts both services on its single proxy network; service-name DNS (backend) still resolves.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 11:18:14 +02:00

47 lines
1.3 KiB
YAML

# Visigine — deployment compose at the REPO ROOT so build contexts resolve
# correctly under Coolify (which runs compose with --project-directory = repo root).
# Frontend (nginx) is the only ingress; the backend is reachable only over the
# internal docker network. Dockerfiles live in docker/ and assume context = root.
#
# Secrets (MISTRAL_KEY, ADMIN_TOKEN, …) are injected from Coolify env vars.
name: visigine
services:
backend:
build:
context: .
dockerfile: docker/backend.Dockerfile
environment:
NODE_ENV: production
PORT: "3001"
ALLOWED_ORIGINS: "https://visigine.de"
ALLOW_PRIVATE_HOSTS: "0"
DB_PATH: "/data/visigine.db"
MISTRAL_KEY: ${MISTRAL_KEY}
ADMIN_TOKEN: ${ADMIN_TOKEN}
OPENAI_KEY: ${OPENAI_KEY:-}
PERPLEXITY_KEY: ${PERPLEXITY_KEY:-}
ANTHROPIC_KEY: ${ANTHROPIC_KEY:-}
expose:
- "3001"
volumes:
# Persist the SQLite file across container rebuilds.
- visigine_data:/data
restart: unless-stopped
frontend:
build:
context: .
dockerfile: docker/frontend.Dockerfile
# No host port binding: Coolify/Traefik routes visigine.de to this port 80.
expose:
- "80"
depends_on:
backend:
condition: service_healthy
restart: unless-stopped
volumes:
visigine_data: