MeshChatX/docker-compose.coolify.yml

53 lines
1.7 KiB
YAML

# Coolify Docker Compose deployment for MeshChatX.
# https://coolify.io/docs/knowledge-base/docker/compose
#
# Assign a domain in Coolify with container port 8000, for example:
# https://meshchatx.example.com:8000
# The :8000 suffix is the container port for the proxy, not the public URL port.
#
# Coolify terminates TLS at the proxy. Plain HTTP inside the container
# (MESHCHAT_NO_HTTPS=1) avoids a self-signed HTTPS backend. Do not add host
# ports unless you intend to bypass the proxy.
services:
meshchatx:
image: ${MESHCHAT_IMAGE:-quad4io/meshchatx:latest}
restart: unless-stopped
init: true
user: "1000:1000"
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
read_only: true
tmpfs:
- /tmp:noexec,nosuid,size=256m
- /home/meshchat:nosuid,size=64m
environment:
- SERVICE_URL_MESHCHATX_8000
- MESHCHAT_HOST=${MESHCHAT_HOST:-0.0.0.0}
- MESHCHAT_PORT=${MESHCHAT_PORT:-8000}
- MESHCHAT_NO_HTTPS=${MESHCHAT_NO_HTTPS:-1}
- MESHCHAT_AUTH=${MESHCHAT_AUTH:-1}
- MESHCHAT_HEADLESS=${MESHCHAT_HEADLESS:-1}
volumes:
- meshchatx-config:/config
healthcheck:
test:
[
"CMD",
"python",
"-c",
"import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/api/v1/status')",
]
interval: 30s
timeout: 5s
retries: 3
start_period: 90s
cpus: 2.0
mem_limit: 1g
mem_reservation: 256m
pids_limit: 512
volumes:
meshchatx-config: