96 lines
3.0 KiB
YAML
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:
|