Files
NaliiaPro/docker-compose.yaml

151 lines
4.2 KiB
YAML

x-common-env: &common-env
NALIIA: ${NALIIA:-gitea.onecluster.org/oneteam/naliia:1.0.0_pro}
EMAIL: ${EMAIL:-admin@admin.org}
POSTGRES_HOST: ${POSTGRES_HOST:-db}
POSTGRES_DB: ${POSTGRES_DB:-naliia}
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-SUp3r-pass*DB}
TRYTOND_DATABASE_URI: ${TRYTOND_DATABASE_URI:-postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-SUp3r-pass*DB}@${POSTGRES_HOST:-db}:5432/}
SMTP: ${SMTP:-"True"}
SMTP_TYPE: ${SMTP_TYPE:-"smtps+ssl"}
SMTP_USER: ${SMTP_USER:-"user"}
SMTP_PASSWORD: ${SMTP_PASSWORD:-"passsword"}
SMTP_DOMAIN: ${SMTP_DOMAIN:-"domain.com"}
SMTP_PORT: ${SMTP_PORT:-465}
SMTP_FROM: ${SMTP_FROM:-"Company CO"}
SMTP_EMAIL: ${SMTP_EMAIL:-"domain@domain.com"}
services:
db:
image: postgres
hostname: ${POSTGRES_HOST:-db}
volumes:
- postgres:/var/lib/postgresql
environment:
POSTGRES_HOST: ${POSTGRES_HOST:-db}
POSTGRES_DB: ${POSTGRES_DB:-naliia}
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-SUp3r-pass*DB}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-naliia}"]
interval: 10s
timeout: 5s
retries: 5
tryton:
image: ${NALIIA}
working_dir: /app
command: /bin/bash /opt/start.sh
volumes:
- var:/var
- attachment:/mnt/attachment
environment:
<<: *common-env
depends_on:
db:
condition: service_healthy
healthcheck:
test: curl --fail localhost:8000 || exit 1
interval: 30s
retries: 5
start_period: 30s
timeout: 20s
worker:
image: ${NALIIA}
working_dir: /app
environment:
<<: *common-env
entrypoint:
[
"bash",
"-c",
"/entrypoint.sh trytond-worker -c /etc/trytond_worker.conf -d ${POSTGRES_DB} --logconf /etc/trytond_worker_logging.conf",
]
volumes:
- .:/app
depends_on:
tryton:
condition: service_healthy
db:
condition: service_healthy
cron:
image: ${NALIIA}
working_dir: /app
environment:
<<: *common-env
entrypoint:
[
"bash",
"-c",
"/entrypoint.sh trytond-cron -c /etc/trytond.conf -d ${POSTGRES_DB} --logconf /etc/trytond_cron_logging.conf",
]
volumes:
- .:/app
depends_on:
tryton:
condition: service_healthy
db:
condition: service_healthy
nginx:
image: nginx:1.23.3
volumes:
- ./nginx.conf:/etc/nginx/conf.d/nginx.conf.template
ports:
- "${NGINX_PORT:-10000}:10000"
depends_on:
tryton:
condition: service_healthy
environment:
SERVER_NAME: ${SERVER_NAME:-tryton.domain.com}
NGINX_PORT: ${NGINX_PORT:-10000}
VARIABLE: ${VARIABLE:-'$'}
command: /bin/bash -c "envsubst < /etc/nginx/conf.d/nginx.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
bot:
image: ${NALIIA_BOT:-gitea.onecluster.org/oneteam/naliia_bot:v1.0.0_pro}
ports:
- "8010:8010"
depends_on:
db:
condition: service_healthy
environment:
<<: *common-env
NALIIA_BOT: ${NALIIA_BOT:-gitea.onecluster.org/oneteam/naliia_bot:v1.0.0_pro}
DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-"sk-...."}
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-"sk-ant...."}
LLM_MODEL: ${LLM_MODEL:-deepseek}
POSTGRES_DB: ${POSTGRES_DB:-messages}
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:8010/health || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
tryton_mcp:
image: ${NALIIA_TRYTON_MCP:-gitea.onecluster.org/oneteam/naliia_tryton_mcp:v1.0.0_pro}
depends_on:
tryton:
condition: service_healthy
environment:
<<: *common-env
NALIIA_TRYTON_MCP: ${NALIIA_TRYTON_MCP:-gitea.onecluster.org/oneteam/naliia_tryton_mcp:v1.0.0_pro}
TRYTON_HOSTNAME: ${TRYTON_HOSTNAME:-tryton}
TRYTON_DATABASE: ${TRYTON_DATABASE:-naliia}
TRYTON_USERNAME: ${TRYTON_USERNAME:-admin}
TRYTON_PASSWORD: ${TRYTON_PASSWORD:-S0p0rt3f1n4l*}
TRYTON_PORT: ${TRYTON_PORT:-8000}
FASTMCP_HOST: 0.0.0.0
FASTMCP_TRANSPORT: http
FASTMCP_PORT: 3001
volumes:
postgres:
var:
attachment:
bot:
mcp: