services: db: image: mariadb:10.6 container_name: osticket-db environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_DATABASE: osticket MYSQL_USER: osticket MYSQL_PASSWORD: osticketpass volumes: - ./osticket/db_data:/var/lib/mysql restart: unless-stopped osticket: image: devinsolutions/osticket:latest container_name: osticket expose: - "80" environment: MYSQL_HOST: db MYSQL_DATABASE: osticket MYSQL_USER: osticket MYSQL_PASSWORD: osticketpass depends_on: - db restart: unless-stopped ai-extractor: build: context: ./automation/ai image: ai-extractor container_name: ai-extractor expose: - "8000" volumes: - ./automation/ai:/app environment: OPENAI_API_KEY: ${OPENAI_API_KEY} restart: unless-stopped gradio-ui: build: context: ./gradio-ui image: tradon-gradio-ui container_name: gradio-ui expose: - "3333" volumes: - ./gradio-ui:/app restart: unless-stopped llm-api: build: context: ./llm-api image: tradon-llm-api container_name: llm-api expose: - "8000" volumes: - ./llm-api/app:/app - ./llm-api/requirements.txt:/app/requirements.txt environment: OPENAI_API_KEY: ${OPENAI_API_KEY} restart: unless-stopped hugo: image: nginx:alpine container_name: hugo-site restart: unless-stopped volumes: - /var/www/os-site:/usr/share/nginx/html:ro expose: - "80" vaultwarden: image: vaultwarden/server:latest container_name: vaultwarden restart: unless-stopped expose: - "80" volumes: - ./vaultwarden-data:/data environment: DOMAIN: "https://vw.open-squared.tech" ADMIN_TOKEN: "ONPEUTSELASSERDETOUTSAUFDECOMPRENDRE" SIGNUPS_ALLOWED: "true" WEBSOCKET_ENABLED: "true" tradon-metabase: image: metabase/metabase:latest container_name: tradon-metabase depends_on: - metabase-db expose: - "3000" environment: MB_DB_TYPE: postgres MB_DB_DBNAME: metabase MB_DB_PORT: 5432 MB_DB_USER: metabase MB_DB_PASS: dsproject MB_DB_HOST: metabase-db restart: unless-stopped metabase-db: image: postgres:16 container_name: metabase-postgres restart: unless-stopped environment: POSTGRES_DB: metabase POSTGRES_USER: metabase POSTGRES_PASSWORD: dsproject volumes: - /root/tradon/metabase:/var/lib/postgresql/data ports: - "5434:5432" gitea: image: gitea/gitea:latest container_name: gitea restart: always environment: - USER_UID=1000 - USER_GID=1000 - GITEA__server__ROOT_URL=https://gitea.open-squared.tech/ - GITEA__server__SSH_PORT=2222 volumes: - gitea-data:/data expose: - "3000" ports: - "2222:22" postgres: image: tradon/postgres container_name: tradon-postgres environment: POSTGRES_DB: tradon POSTGRES_PASSWORD: dsproject PGDATA: /var/lib/postgresql/data/pgdata volumes: - tradon-database:/var/lib/postgresql/data ports: - "5432:5432" postgres-dev: image: tradon/postgres container_name: tradon-postgres-dev environment: POSTGRES_DB: tradon POSTGRES_PASSWORD: dsproject PGDATA: /var/lib/postgresql/data/pgdata volumes: - tradon-database-dev:/var/lib/postgresql/data ports: - "5433:5432" tradon: image: tradon/tradon container_name: tradon depends_on: - postgres environment: DB_HOSTNAME: postgres DB_PASSWORD: dsproject volumes: - /root/tradon/source/sao:/var/lib/trytond - /root/tradon/source/prod:/usr/local/lib/python3.11/dist-packages/trytond - ./tryton/trytond.conf:/etc/trytond.conf expose: - "8000" cron: image: tradon/tradon container_name: tradon-cron depends_on: - postgres environment: DB_HOSTNAME: postgres DB_PASSWORD: dsproject volumes: - /root/tradon/source/prod:/usr/local/lib/python3.11/dist-packages/trytond command: ["trytond-cron", "-d", "tradon"] tradon-dev: image: tradon/tradon container_name: tradon-dev depends_on: - postgres-dev environment: DB_HOSTNAME: postgres-dev DB_PASSWORD: dsproject volumes: - /root/tradon/source/sao:/var/lib/trytond - /root/tradon/source/dev:/usr/local/lib/python3.11/dist-packages/trytond - ./tryton/trytond-dev.conf:/etc/trytond.conf expose: - "8008" automation-service: build: ./automation container_name: automation-service depends_on: - tradon expose: - "8006" volumes: - ./automation:/app metabase: image: metabase/metabase:latest container_name: metabase expose: - "3000" volumes: - ./metabase-data:/metabase.db nginx: image: nginx:latest container_name: tradon-nginx depends_on: - tradon - tradon-dev - metabase - gitea - vaultwarden - hugo volumes: - ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro - ./nginx/letsencrypt:/var/www/letsencrypt - ./nginx/certs:/etc/letsencrypt - ./tryton_test_react/dist:/var/www/dashboard - /var/www/os-site:/var/www/os-site ports: - "80:80" - "443:443" certbot: image: certbot/certbot depends_on: - nginx volumes: - ./nginx/letsencrypt:/var/www/letsencrypt - ./nginx/certs:/etc/letsencrypt entrypoint: > sh -c "while ! nc -z tradon-nginx 80; do sleep 1; done; certbot certonly --webroot -w /var/www/letsencrypt --email admin@tondomaine.com --agree-tos --no-eff-email -d open-squared.tech -d dev.open-squared.tech -d prod.open-squared.tech -d vw.open-squared -d gitea.open-squared.tech -d ai.open-squared.tech" volumes: tradon-database: external: true tradon-sao: external: true tradon-modules: external: true tradon-database-dev: external: true tradon-sao-dev: external: true tradon-modules-dev: external: true metabase-data: gitea-data: