diff --git a/docker-compose.yaml b/docker-compose.yaml index 1769f07..259e82b 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,31 +1,46 @@ +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: ${DB_HOSTNAME} + 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 - env_file: - - .env tryton: - image: ${NALIIA:-gitea.onecluster.org/oneteam/naliia:1.0.0_pro} + image: ${NALIIA} working_dir: /app command: /bin/bash /opt/start.sh volumes: - var:/var - attachment:/mnt/attachment environment: - TRYTOND_DATABASE_URI: ${TRYTOND_DATABASE_URI:-postgresql://${POSTGRES_USER:-naliia}:${POSTGRES_PASSWORD:-SUp3r-pass*DB}@${DB_HOSTNAME:-db}:5432/} - NALIIA_IMAGE: ${NALIIA:-gitea.onecluster.org/aserrador/naliia:latest} - EMAIL: ${EMAIL:-admin@admin.org} + <<: *common-env depends_on: db: condition: service_healthy @@ -35,101 +50,74 @@ services: retries: 5 start_period: 30s timeout: 20s - env_file: - - .env worker: - image: ${NALIIA:-gitea.onecluster.org/oneteam/naliia:1.0.0_pro} + 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 - entrypoint: - [ - "bash", - "-c", - "/entrypoint.sh trytond-worker -c /etc/trytond_worker.conf -d ${POSTGRES_DB} --logconf /etc/trytond_worker_logging.conf", - ] - volumes: - - .:/app - environment: - TRYTOND_DATABASE_URI: ${TRYTOND_DATABASE_URI:-postgresql://${POSTGRES_USER:-naliia}:${POSTGRES_PASSWORD:-SUp3r-pass*DB}@${DB_HOSTNAME:-db}:5432/} - env_file: - - .env cron: - image: ${NALIIA:-gitea.onecluster.org/oneteam/naliia:1.0.0_pro} + 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 - entrypoint: - [ - "bash", - "-c", - "/entrypoint.sh trytond-cron -c /etc/trytond.conf -d ${POSTGRES_DB} --logconf /etc/trytond_cron_logging.conf", - ] - volumes: - - .:/app - environment: - TRYTOND_DATABASE_URI: ${TRYTOND_DATABASE_URI:-postgresql://${POSTGRES_USER:-naliia}:${POSTGRES_PASSWORD:-SUp3r-pass*DB}@${DB_HOSTNAME:-db}:5432/} - env_file: - - .env + nginx: image: nginx:1.23.3 volumes: - ./nginx.conf:/etc/nginx/conf.d/nginx.conf.template ports: - "${NGINX_PORT:-10000}:${NGINX_PORT:-10000}" - env_file: - - .env - depends_on: - - tryton - - db + 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 - volumes: - - bot:/app/src - env_file: - - .env environment: - - LLM_MODEL=${LLM_MODEL:-deepseek} - - POSTGRES_HOST=${POSTGRES_HOST:-db} - - POSTGRES_USER=${POSTGRES_USER:-postgres} - - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres} - - POSTGRES_DB=${POSTGRES_DB:-messages} + <<: *common-env + 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} - volumes: - - mcp:/app/src environment: - - 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 - env_file: - - .env + <<: *common-env + 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: