e4dcfc49aa
Tests / Lint and Format (push) Waiting to run
Tests / Web Node Tests (push) Waiting to run
Tests / Import Check (Python 3.11) (push) Waiting to run
Tests / Import Check (Python 3.12) (push) Waiting to run
Tests / Import Check (Python 3.13) (push) Waiting to run
Tests / Import Check (Python 3.14) (push) Waiting to run
Tests / Python Tests (Python 3.11) (push) Blocked by required conditions
Tests / Python Tests (Python 3.12) (push) Blocked by required conditions
Tests / Python Tests (Python 3.13) (push) Blocked by required conditions
Tests / Python Tests (Python 3.14) (push) Blocked by required conditions
Tests / Test Summary (push) Blocked by required conditions
68 lines
2.7 KiB
YAML
68 lines
2.7 KiB
YAML
# ============================================
|
|
# DeepTutor Docker Compose — Pre-built GHCR Image
|
|
# ============================================
|
|
# Run DeepTutor using the official pre-built image from GitHub Container Registry.
|
|
# No local build required — the image is pulled automatically.
|
|
#
|
|
# Usage:
|
|
# python scripts/docker_compose.py -f docker-compose.ghcr.yml up -d
|
|
#
|
|
# To pin a specific version:
|
|
# Edit the image tag below, e.g. ghcr.io/hkuds/deeptutor:1.0.0
|
|
#
|
|
# Prerequisites:
|
|
# 1. Configure providers in data/user/settings/model_catalog.json or the UI
|
|
# 2. Use scripts/docker_compose.py so port mappings are rendered from system.json
|
|
# 3. Read the API URL note below before starting
|
|
#
|
|
# Local LLM (LM Studio / Ollama / vLLM):
|
|
# Use "host.docker.internal" instead of "localhost" in provider base_url fields.
|
|
# Configure provider endpoints in data/user/settings/model_catalog.json or the UI.
|
|
#
|
|
# ============================================
|
|
# IMPORTANT: Frontend-to-Backend API URL
|
|
# ============================================
|
|
# The frontend (Next.js) runs entirely in the user's browser — not in the container.
|
|
# This means "localhost" in the browser refers to the USER'S MACHINE, not the Docker host.
|
|
#
|
|
# LOCAL deployment (Docker on the same machine you browse from):
|
|
# Leave system.next_public_api_base_external blank. The default http://localhost:8001 works
|
|
# because Docker maps port 8001 from the container to your local machine.
|
|
#
|
|
# REMOTE SERVER deployment (Docker on a server, accessed from another machine):
|
|
# Set system.next_public_api_base_external to your server's public IP or hostname, e.g.:
|
|
# "next_public_api_base_external": "http://203.0.113.10:8001"
|
|
# Without this, the browser will try to reach localhost:8001 on the USER'S laptop
|
|
# (not the server), and all API calls will fail.
|
|
# ============================================
|
|
|
|
services:
|
|
deeptutor:
|
|
image: ghcr.io/hkuds/deeptutor:latest
|
|
pull_policy: always
|
|
container_name: deeptutor
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${DEEPTUTOR_DOCKER_BACKEND_PORT:-8001}:${DEEPTUTOR_DOCKER_BACKEND_PORT:-8001}"
|
|
- "${DEEPTUTOR_DOCKER_FRONTEND_PORT:-3782}:${DEEPTUTOR_DOCKER_FRONTEND_PORT:-3782}"
|
|
|
|
volumes:
|
|
# Persistent data (created automatically on first start)
|
|
- ./data/user:/app/data/user
|
|
- ./data/memory:/app/data/memory
|
|
- ./data/knowledge_bases:/app/data/knowledge_bases
|
|
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:${DEEPTUTOR_DOCKER_BACKEND_PORT:-8001}/"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
|
|
networks:
|
|
- deeptutor-network
|
|
|
|
networks:
|
|
deeptutor-network:
|
|
driver: bridge
|