201 lines
5.2 KiB
YAML
201 lines
5.2 KiB
YAML
services:
|
|
backstory:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: backstory
|
|
container_name: backstory
|
|
image: backstory
|
|
restart: "always"
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- PRODUCTION=0
|
|
- MODEL_NAME=${MODEL_NAME:-qwen2.5:3b}
|
|
devices:
|
|
- /dev/dri:/dev/dri
|
|
depends_on:
|
|
- ollama
|
|
networks:
|
|
- internal
|
|
ports:
|
|
- 8912:8911 # FastAPI React server
|
|
volumes:
|
|
- ./cache:/root/.cache # Persist all models and GPU kernel cache
|
|
- ./sessions:/opt/backstory/sessions:rw # Persist sessions
|
|
- ./dev-keys:/opt/backstory/keys:ro # Developer keys
|
|
- ./users:/opt/backstory/users:rw # Live mount of user data
|
|
- ./src:/opt/backstory/src:rw # Live mount server src
|
|
cap_add: # used for running ze-monitor within container
|
|
- CAP_DAC_READ_SEARCH # Bypass all filesystem read access checks
|
|
- CAP_PERFMON # Access to perf_events (vs. overloaded CAP_SYS_ADMIN)
|
|
- CAP_SYS_PTRACE # PTRACE_MODE_READ_REALCREDS ptrace access mode check
|
|
|
|
backstory-prod:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: backstory
|
|
image: backstory
|
|
container_name: backstory-prod
|
|
restart: "always"
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- PRODUCTION=1
|
|
- MODEL_NAME=${MODEL_NAME:-qwen2.5:7b}
|
|
devices:
|
|
- /dev/dri:/dev/dri
|
|
depends_on:
|
|
- ollama
|
|
networks:
|
|
- internal
|
|
ports:
|
|
- 8911:8911 # FastAPI React server
|
|
volumes:
|
|
- ./cache:/root/.cache # Persist all models and GPU kernel cache
|
|
- ./chromadb-prod:/opt/backstory/chromadb:rw # Persist ChromaDB
|
|
- ./sessions-prod:/opt/backstory/sessions:rw # Persist sessions
|
|
- ./docs-prod:/opt/backstory/docs:rw # Live mount of RAG content
|
|
- ./users-prod:/opt/backstory/users:rw # Live mount of user data
|
|
- ./frontend/deployed:/opt/backstory/frontend/deployed:ro # Live mount built frontend
|
|
cap_add: # used for running ze-monitor within container
|
|
- CAP_DAC_READ_SEARCH # Bypass all filesystem read access checks
|
|
- CAP_PERFMON # Access to perf_events (vs. overloaded CAP_SYS_ADMIN)
|
|
- CAP_SYS_PTRACE # PTRACE_MODE_READ_REALCREDS ptrace access mode check
|
|
|
|
frontend:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: frontend
|
|
container_name: frontend
|
|
image: frontend
|
|
restart: "always"
|
|
env_file:
|
|
- .env
|
|
ports:
|
|
- 3000:3000 # REACT expo while developing frontend
|
|
volumes:
|
|
- ./frontend:/opt/backstory/frontend:rw # Live mount frontend src
|
|
networks:
|
|
- internal
|
|
|
|
ollama:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: ollama
|
|
image: ollama
|
|
container_name: ollama
|
|
restart: "always"
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- OLLAMA_HOST=0.0.0.0
|
|
- ONEAPI_DEVICE_SELECTOR=level_zero:0
|
|
devices:
|
|
- /dev/dri:/dev/dri
|
|
ports:
|
|
- 11434:11434 # ollama serve port
|
|
networks:
|
|
- internal
|
|
volumes:
|
|
- ./cache:/root/.cache # Cache hub models and neo_compiler_cache
|
|
- ./ollama:/root/.ollama # Cache the ollama models
|
|
cap_add: # used for running ze-monitor within container
|
|
- CAP_DAC_READ_SEARCH # Bypass all filesystem read access checks
|
|
- CAP_PERFMON # Access to perf_events (vs. overloaded CAP_SYS_ADMIN)
|
|
- CAP_SYS_PTRACE # PTRACE_MODE_READ_REALCREDS ptrace access mode check
|
|
|
|
jupyter:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: jupyter
|
|
image: jupyter
|
|
container_name: jupyter
|
|
restart: "always"
|
|
env_file:
|
|
- .env
|
|
devices:
|
|
- /dev/dri:/dev/dri
|
|
depends_on:
|
|
- ollama
|
|
- miniircd
|
|
ports:
|
|
- 8888:8888 # Jupyter Notebook
|
|
- 60673:60673 # Gradio
|
|
networks:
|
|
- internal
|
|
volumes:
|
|
- ./jupyter:/opt/jupyter:rw
|
|
- ./cache:/root/.cache
|
|
|
|
miniircd:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: miniircd
|
|
image: miniircd
|
|
container_name: miniircd
|
|
restart: "no"
|
|
env_file:
|
|
- .env
|
|
ports:
|
|
- 6667:6667 # IRC
|
|
networks:
|
|
- internal
|
|
volumes:
|
|
- ./cache:/root/.cache
|
|
|
|
prometheus:
|
|
image: prom/prometheus
|
|
container_name: prometheus
|
|
restart: "always"
|
|
ports:
|
|
- 9090:9090 # Prometheus
|
|
networks:
|
|
- internal
|
|
volumes:
|
|
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
|
- ./cache/prometheus:/prometheus
|
|
|
|
grafana:
|
|
image: grafana/grafana-oss
|
|
container_name: grafana
|
|
restart: "always"
|
|
env_file:
|
|
- .env.grafana
|
|
ports:
|
|
- 3111:3000 # Grafana
|
|
networks:
|
|
- internal
|
|
volumes:
|
|
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
|
- ./cache/grafana:/var/lib/grafana
|
|
|
|
|
|
# loki:
|
|
# image: grafana/loki
|
|
# container_name: loki
|
|
# restart: "always"
|
|
# # env_file:
|
|
# # - .env.grafana
|
|
# ports:
|
|
# - 3211:3100 # Grafana
|
|
# networks:
|
|
# - internal
|
|
# command:
|
|
# - -config.file=/loki-config.yaml
|
|
# volumes:
|
|
# # - ./prometheus.yml:/etc/prometheus/prometheus.yml
|
|
# - ./loki-config.yaml:/loki-config.yaml
|
|
# - ./cache/loki:/loki
|
|
|
|
|
|
networks:
|
|
internal:
|
|
driver: bridge
|
|
|