-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
124 lines (119 loc) · 4.17 KB
/
Copy pathdocker-compose.yml
File metadata and controls
124 lines (119 loc) · 4.17 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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
services:
synth:
# image: xargonwan/synthetic_heart:${IMAGE_VERSION:-latest-develop}
build: . # If you want to build from source, uncomment this and comment out the image line
container_name: synth
hostname: synthetic-heart
env_file:
- .env
ports:
- "${SYNTH_WEBUI_HTTPS_PORT:-8000}:${SYNTH_WEBUI_HTTPS_PORT:-8000}"
- "${OPENAI_API_SERVER_PORT:-11435}:11435" # SyntH can be seen as an OpenAPI endpoint itself. This is the original Ollama port+1 to avoid conflicts, but you can change it as needed.
volumes:
- synth_data:/config
- synth_skins:/app/skins
- synth_logs:/app/logs
- ./backups:/app/backups
environment:
- TZ=${TZ}
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- DB_HOST=${DB_HOST:-synth-db}
- DB_PORT=${DB_PORT:-5432}
- DB_USER=${DB_USER:-synth}
- DB_PASS=${DB_PASS:-synth}
- DB_NAME=${DB_NAME:-synth}
- SOUL_POSTGRES_DSN=${SOUL_POSTGRES_DSN:-}
- SOURCE_DB_TYPE=${SOURCE_DB_TYPE:-mariadb}
- SOURCE_DB_HOST=${SOURCE_DB_HOST:-synth-legacy-db}
- SOURCE_DB_PORT=${SOURCE_DB_PORT:-3306}
- SOURCE_DB_USER=${SOURCE_DB_USER:-synth}
- SOURCE_DB_PASSWORD=${SOURCE_DB_PASSWORD:-synth}
- SOURCE_DB_NAME=${SOURCE_DB_NAME:-synth}
- ROOT_PASSWORD=${ROOT_PASSWORD:-"password"}
- SYNTH_WEBUI_HTTPS_PORT=${SYNTH_WEBUI_HTTPS_PORT:-8000}
- SYNTH_WEBUI_HTTP_PORT=${SYNTH_WEBUI_HTTP_PORT:-8080}
# Persistent storage under the synth_data volume (/config) so downloaded
# models, HuggingFace cache, generated TTS audio and received media survive
# container rebuilds/recreates instead of living on the ephemeral layer.
- SYNTH_MODELS_DIR=${SYNTH_MODELS_DIR:-/config/models}
- HF_HOME=${HF_HOME:-/config/hf-cache}
- VOX_OUTPUT_DIR=${VOX_OUTPUT_DIR:-/config/media/tts}
- TMPDIR=${TMPDIR:-/config/media/tmp}
restart: unless-stopped
stdin_open: true
tty: true
depends_on:
- synth-db
networks:
- synth_network
synth-db:
container_name: synth-db
hostname: synth-db
image: pgvector/pgvector:pg16
ports:
- "${EXT_DB_PORT:-5432}:5432"
environment:
POSTGRES_DB: ${DB_NAME:-synth}
POSTGRES_USER: ${DB_USER:-synth}
POSTGRES_PASSWORD: ${DB_PASS:-synth}
volumes:
- synth_pg_data:/var/lib/postgresql/data
- ./scripts/sql/app_main_postgres.sql:/docker-entrypoint-initdb.d/10-app-main.sql:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-synth} -d ${DB_NAME:-synth}"]
interval: 10s
timeout: 5s
retries: 10
restart: unless-stopped
networks:
- synth_network
# Enable this only if you want to migrate from a legacy MariaDB database. Otherwise, you can disable it to save resources.
# synth-legacy-db:
# container_name: synth-legacy-db
# hostname: synth-legacy-db
# image: mariadb:11
# environment:
# MYSQL_ROOT_PASSWORD: ${SOURCE_DB_ROOT_PASS:-root}
# MYSQL_DATABASE: ${SOURCE_DB_NAME:-synth}
# MYSQL_USER: ${SOURCE_DB_USER:-synth}
# MYSQL_PASSWORD: ${SOURCE_DB_PASSWORD:-synth}
# MARIADB_AUTO_UPGRADE: 1
# command: --max-connections=100
# volumes:
# - synth_db_data:/var/lib/mysql
# - ./init-db.sql:/docker-entrypoint-initdb.d/init-db.sql:ro
# restart: unless-stopped
# networks:
# - synth_network
# Selenium‑LLM Engine, you can disable this if you want to use a different endpoint
# such as an API provider or a local LLM running in another container
synth-selenium-llm-engine:
image: xargonwan/selenium-llm-engine:latest
# build: ../selenium-llm-engine
container_name: synth-selenium-llm-engine
hostname: synth-selenium-llm-engine
env_file:
- .env
environment:
- TZ=${TZ:-Asia/Tokyo}
ports:
- "14848:8000" # API port
- "3001:3001" # webtop interface
volumes:
- synth_selenium_data:/app/data
- synth_selenium_config:/config
networks:
- synth_network
volumes:
synth_db_data:
synth_pg_data:
synth_data:
synth_logs:
synth_skins:
synth_selenium_data:
synth_selenium_config:
networks:
synth_network:
driver: bridge
name: synth_network