Files
Avtex/server/docker-compose.yml
T

122 lines
3.3 KiB
YAML

version: '3.8'
# Nanaxe Server - Mindmap Synchronization
# Run alongside other Docker projects by changing ports
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=a-crm.controlsystem.kz
- GITEA__server__ROOT_URL=https://a-crm.controlsystem.kz/git/
- GITEA__server__SSH_DOMAIN=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
restart: always
networks:
- nanaxe-network
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
restart: always
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
ports:
- "8082:8080" # Changed from 8080 to avoid conflicts
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:
driver: bridge
volumes:
gitea-data:
postgres-data:
mindmap-data: