feat: prisma schema, groups API, deploy workflow
This commit is contained in:
+72
-96
@@ -1,121 +1,97 @@
|
||||
version: '3.8'
|
||||
|
||||
# Nanaxe Server - Mindmap Synchronization
|
||||
# Run alongside other Docker projects by changing ports
|
||||
# Инфраструктура AVTEX
|
||||
# FastPanel проксирует порты напрямую — nginx контейнер не нужен
|
||||
# Один postgres для всех проектов организации
|
||||
|
||||
services:
|
||||
# Gitea - Self-hosted Git server для хранения markdown-файлов
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: nanaxe-gitea
|
||||
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_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
|
||||
- GITEA__service__REQUIRE_SIGNIN_VIEW=false
|
||||
|
||||
# PostgreSQL — общий для всех проектов
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
container_name: postgres
|
||||
restart: always
|
||||
networks:
|
||||
- nanaxe-network
|
||||
- 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
|
||||
ports:
|
||||
- "3001:3000" # Changed from 3000 to avoid conflicts
|
||||
- "2221:22" # Changed from 222 to avoid conflicts
|
||||
depends_on:
|
||||
- postgres
|
||||
|
||||
# PostgreSQL для Gitea
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
container_name: nanaxe-postgres
|
||||
ports:
|
||||
- "5433:5432" # Expose on different port
|
||||
environment:
|
||||
- POSTGRES_USER=gitea
|
||||
- POSTGRES_PASSWORD=gitea_password
|
||||
- POSTGRES_DB=gitea
|
||||
# XFlow — Mind Map приложение
|
||||
xflow:
|
||||
image: node:20-alpine
|
||||
container_name: xflow
|
||||
restart: always
|
||||
working_dir: /app
|
||||
command: node .output/server/index.mjs
|
||||
networks:
|
||||
- nanaxe-network
|
||||
volumes:
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
|
||||
# Nanaxe API Server - для синхронизации mindmaps
|
||||
nanaxe-api:
|
||||
build:
|
||||
context: ./api
|
||||
dockerfile: Dockerfile
|
||||
container_name: nanaxe-api
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=8080
|
||||
- GITEA_URL=http://gitea:3000
|
||||
- GITEA_TOKEN=${GITEA_TOKEN}
|
||||
- JWT_SECRET=${JWT_SECRET:-your-super-secret-jwt-key-change-in-production}
|
||||
- MINDMAP_STORAGE_PATH=/app/mindmaps
|
||||
restart: always
|
||||
networks:
|
||||
- nanaxe-network
|
||||
volumes:
|
||||
- mindmap-data:/app/mindmaps
|
||||
- ./api/logs:/app/logs
|
||||
- infra-network
|
||||
ports:
|
||||
- "8082:8080" # Changed from 8080 to avoid conflicts
|
||||
- "3000: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:ro
|
||||
depends_on:
|
||||
- gitea
|
||||
- postgres
|
||||
|
||||
# Nginx - Reverse Proxy и статические файлы
|
||||
nginx:
|
||||
image: nginx:alpine
|
||||
container_name: nanaxe-nginx
|
||||
restart: always
|
||||
networks:
|
||||
- nanaxe-network
|
||||
volumes:
|
||||
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||
- ./nginx/html:/usr/share/nginx/html:ro
|
||||
ports:
|
||||
- "8083:80" # Changed from 80 to avoid conflicts
|
||||
- "8444:443" # Changed from 443 to avoid conflicts
|
||||
depends_on:
|
||||
- gitea
|
||||
- nanaxe-api
|
||||
|
||||
# (Опционально) WebDAV сервер для прямого доступа к файлам
|
||||
webdav:
|
||||
image: bytemark/webdav
|
||||
container_name: nanaxe-webdav
|
||||
restart: always
|
||||
networks:
|
||||
- nanaxe-network
|
||||
volumes:
|
||||
- mindmap-data:/var/lib/dav
|
||||
environment:
|
||||
- AUTH_TYPE=Basic
|
||||
- USERNAME=${WEBDAV_USER:-admin}
|
||||
- PASSWORD=${WEBDAV_PASSWORD:-admin}
|
||||
ports:
|
||||
- "8084:80" # Changed from 8081 to avoid conflicts
|
||||
|
||||
networks:
|
||||
nanaxe-network:
|
||||
infra-network:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
gitea-data:
|
||||
postgres-data:
|
||||
mindmap-data:
|
||||
gitea-data:
|
||||
|
||||
Reference in New Issue
Block a user