122 lines
3.4 KiB
YAML
122 lines
3.4 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=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
|
|
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:
|