-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
87 lines (82 loc) · 3.37 KB
/
docker-compose.yml
File metadata and controls
87 lines (82 loc) · 3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
services:
remcochat:
build:
context: .
container_name: remcochat
restart: unless-stopped
networks:
- traefik-proxy
- internal
init: true
extra_hosts:
# Linux Docker does not always provide host.docker.internal by default.
# Map it explicitly so Hue Gateway fallback URL works from inside the app container.
- "host.docker.internal:host-gateway"
environment:
NODE_ENV: production
NEXT_TELEMETRY_DISABLED: "1"
REMCOCHAT_DB_PATH: /app/data/remcochat.sqlite
REMCOCHAT_CONFIG_PATH: /app/config/config.toml
REMCOCHAT_ENABLE_ADMIN: ${REMCOCHAT_ENABLE_ADMIN:-0}
REMCOCHAT_ENABLE_BASH_TOOL: ${REMCOCHAT_ENABLE_BASH_TOOL:-0}
REMCOCHAT_ADMIN_TOKEN: ${REMCOCHAT_ADMIN_TOKEN:-}
VERCEL_AI_GATEWAY_API_KEY: ${VERCEL_AI_GATEWAY_API_KEY:-}
OPENCODE_API_KEY: ${OPENCODE_API_KEY:-}
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
GEMINI_API_KEY: ${GEMINI_API_KEY:-}
XAI_API_KEY: ${XAI_API_KEY:-}
FIREWORKS_API_KEY: ${FIREWORKS_API_KEY:-}
EXA_API_KEY: ${EXA_API_KEY:-}
BRAVE_SEARCH_API: ${BRAVE_SEARCH_API:-}
BRAVE_API_KEY: ${BRAVE_API_KEY:-}
NS_APP_SUBSCRIPTION_KEY: ${NS_APP_SUBSCRIPTION_KEY:-}
HUE_AUTH_HEADER: ${HUE_AUTH_HEADER:-}
HUE_TOKEN: ${HUE_TOKEN:-}
HUE_API_KEY: ${HUE_API_KEY:-}
labels:
- traefik.enable=true
- traefik.docker.network=traefik-proxy
- traefik.http.routers.remcochat-int.rule=Host(`remcochat.int.remcokortekaas.nl`)
- traefik.http.routers.remcochat-int.entrypoints=tailnetwebsecure
- traefik.http.routers.remcochat-int.tls=true
- traefik.http.routers.remcochat-int.tls.certresolver=internalle
# OPTIONAL but recommended on first internal app: request a wildcard cert once
# - "traefik.http.routers.remcochat-int.tls.domains[0].main=int.remcokortekaas.nl"
# - "traefik.http.routers.remcochat-int.tls.domains[0].sans=*.int.remcokortekaas.nl"
# IMPORTANT: set to the actual port remcochat listens on inside the container
- traefik.http.services.remcochat-int.loadbalancer.server.port=3000
volumes:
- remcochat_data:/app/data
- remcochat_config:/app/config
# Bind-mount config for restart-only reloads (no rebuild needed).
# Allow docker deployments to mount a different config without changing the repo file.
# Example: REMCOCHAT_CONFIG_TOML=./config.docker.toml
- ${REMCOCHAT_CONFIG_TOML:-./config.toml}:/app/config.seed.toml:ro
# Host-side modelsdev installation directory (must contain `bin/modelsdev`).
# Use a RemcoChat-specific env var to avoid collisions with globally-exported vars.
- ${REMCOCHAT_MODELSDEV_CLI_HOST_DIR:-/usr/local/lib/modelsdev}:/usr/local/lib/modelsdev:ro
depends_on:
- sandboxd
sandboxd:
build:
context: .
dockerfile: sandboxd/Dockerfile
container_name: remcochat-sandboxd
restart: unless-stopped
networks:
- internal
environment:
SANDBOXD_BIND_HOST: "0.0.0.0"
# Publish sandbox ports (sandboxUrl) only on a restricted host interface.
SANDBOXD_PUBLISH_HOST_IP: "${SANDBOXD_PUBLISH_HOST_IP:-127.0.0.1}"
SANDBOXD_ADMIN_TOKEN: "${REMCOCHAT_ADMIN_TOKEN:-}"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
volumes:
remcochat_data:
remcochat_config:
networks:
traefik-proxy:
external: true
internal:
driver: bridge