Files
Avtex/server/docker-compose.yml
T

96 lines
3.0 KiB
YAML

version: '3.8'
# Инфраструктура AVTEX
# FastPanel проксирует порты напрямую — nginx контейнер не нужен
# Один postgres для всех проектов организации
services:
# PostgreSQL — общий для всех проектов
postgres:
image: postgres:16-alpine
container_name: postgres
restart: always
networks:
- infra-network
ports:
- "5432:5432"
environment:
POSTGRES_USER: ${POSTGRES_USER:-admin}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: postgres
volumes:
- postgres-data:/var/lib/postgresql/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
# Gitea — Git сервер организации AVTEX
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: always
networks:
- infra-network
ports:
- "3001:3000"
- "2221:22"
environment:
USER_UID: 1000
USER_GID: 1000
GITEA__database__DB_TYPE: postgres
GITEA__database__HOST: postgres:5432
GITEA__database__NAME: gitea
GITEA__database__USER: gitea
GITEA__database__PASSWD: ${GITEA_DB_PASSWORD:-gitea_password}
GITEA__server__DOMAIN: git.a-crm.controlsystem.kz
GITEA__server__ROOT_URL: http://git.a-crm.controlsystem.kz/
GITEA__server__SSH_DOMAIN: git.a-crm.controlsystem.kz
GITEA__server__SSH_PORT: 2221
GITEA__server__SSH_LISTEN_PORT: 22
GITEA__security__INSTALL_LOCK: "true"
GITEA__service__DISABLE_REGISTRATION: "false"
volumes:
- gitea-data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
depends_on:
- postgres
# XFlow — Mind Map приложение
xflow:
image: node:20-alpine
container_name: xflow
restart: always
working_dir: /app
command: node .output/server/index.mjs
networks:
- infra
ports:
- "3002:3000"
environment:
NODE_ENV: production
PORT: 3000
NUXT_JWT_SECRET: ${NUXT_JWT_SECRET}
GITEA_URL: http://gitea:3000
GITEA_TOKEN: ${GITEA_TOKEN}
GITEA_ORG: ${GITEA_ORG:-AVTEX}
GITEA_MINDMAP_REPO: ${GITEA_MINDMAP_REPO:-MMAVTEX}
GITEA_PROJECT_REPO: ${GITEA_PROJECT_REPO:-XFlow}
DATABASE_URL: postgresql://xflow:${XFLOW_DB_PASSWORD:-xflow_pass}@postgres:5432/xflow
NUXT_PUBLIC_FIREBASE_API_KEY: ${NUXT_PUBLIC_FIREBASE_API_KEY}
NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN}
NUXT_PUBLIC_FIREBASE_PROJECT_ID: ${NUXT_PUBLIC_FIREBASE_PROJECT_ID}
NUXT_PUBLIC_FIREBASE_APP_ID: ${NUXT_PUBLIC_FIREBASE_APP_ID}
NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID}
volumes:
- /opt/xflow/.output:/app/.output
- /opt/xflow/prisma:/app/prisma:ro
- /opt/xflow/prisma.config.ts:/app/prisma.config.ts:ro
networks:
infra:
external: true
volumes:
postgres-data:
gitea-data: