165 lines
4.5 KiB
Markdown
165 lines
4.5 KiB
Markdown
# 🔗 Интеграция Nanaxe Server с Consyscab
|
||
|
||
Это руководство по добавлению Nanaxe Server в существующую инфраструктуру Consyscab.
|
||
|
||
## 📁 Структура файлов
|
||
|
||
```
|
||
project-root/
|
||
├── docker-compose.yml # Объединённый файл
|
||
├── docker/
|
||
│ ├── nginx/
|
||
│ │ └── conf.d/
|
||
│ │ ├── default.conf # Существующий конфиг
|
||
│ │ └── nanaxe.conf # Новый: конфиг Nanaxe
|
||
│ ├── php/
|
||
│ └── postgres/
|
||
│ └── init-db.sh
|
||
├── nanaxe/ # Новая папка
|
||
│ ├── api/ # Nanaxe API код
|
||
│ │ ├── Dockerfile
|
||
│ │ ├── package.json
|
||
│ │ └── src/
|
||
│ ├── nginx/
|
||
│ │ └── nanaxe.conf # Nginx конфиг для Nanaxe
|
||
│ ├── html/ # Статические файлы
|
||
│ │ └── index.html
|
||
│ └── postgres-init/
|
||
│ └── init-gitea.sql # Инициализация БД Gitea
|
||
├── backend/ # Symfony
|
||
├── frontend/ # Quasar
|
||
├── moodle/ # Moodle
|
||
└── .env # Переменные окружения
|
||
```
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
### 1. Скопируйте файлы Nanaxe
|
||
|
||
```bash
|
||
# Скопируйте папку nanaxe/ в корень проекта вашего друга
|
||
cp -r /path/to/nanaxe/server/nanaxe ./
|
||
|
||
# Скопируйте объединённый docker-compose.yml
|
||
cp /path/to/nanaxe/server/docker-compose.integrated.yml ./docker-compose.yml
|
||
```
|
||
|
||
### 2. Обновите .env
|
||
|
||
Добавьте в `.env`:
|
||
|
||
```env
|
||
# Nanaxe Configuration
|
||
GITEA_DOMAIN=git.yourdomain.com
|
||
GITEA_SECRET_KEY=$(openssl rand -base64 32)
|
||
GITEA_TOKEN=
|
||
NANAXE_JWT_SECRET=$(openssl rand -base64 32)
|
||
WEBDAV_USER=admin
|
||
WEBDAV_PASSWORD=$(openssl rand -base64 16)
|
||
DB_PASSWORD=your_postgres_password
|
||
```
|
||
|
||
### 3. Настройте DNS
|
||
|
||
Настройте поддомены:
|
||
- `git.yourdomain.com` → IP сервера
|
||
- `api.yourdomain.com` → IP сервера
|
||
- `nanaxe.yourdomain.com` → IP сервера (опционально)
|
||
|
||
### 4. Запустите
|
||
|
||
```bash
|
||
docker compose down
|
||
docker compose up -d --build
|
||
```
|
||
|
||
## 🔧 Ручная интеграция (если не хотите заменять docker-compose.yml)
|
||
|
||
### Добавьте сервисы в существующий docker-compose.yml:
|
||
|
||
```yaml
|
||
# Nanaxe Gitea
|
||
nanaxe_gitea:
|
||
image: gitea/gitea:latest
|
||
container_name: nanaxe_gitea
|
||
environment:
|
||
- GITEA__database__DB_TYPE=postgres
|
||
- GITEA__database__HOST=consyscab_db:5432
|
||
- GITEA__database__NAME=gitea
|
||
- GITEA__database__USER=user
|
||
- GITEA__database__PASSWD=${DB_PASSWORD}
|
||
volumes:
|
||
- gitea_data:/data
|
||
networks:
|
||
- consyscab-network
|
||
|
||
# Nanaxe API
|
||
nanaxe_api:
|
||
build:
|
||
context: ./nanaxe/api
|
||
container_name: nanaxe_api
|
||
environment:
|
||
- NODE_ENV=production
|
||
- PORT=8080
|
||
- GITEA_URL=http://nanaxe_gitea:3000
|
||
- JWT_SECRET=${NANAXE_JWT_SECRET}
|
||
volumes:
|
||
- mindmap_data:/app/mindmaps
|
||
networks:
|
||
- consyscab-network
|
||
|
||
volumes:
|
||
pg_data:
|
||
gitea_data: # Добавьте
|
||
mindmap_data: # Добавьте
|
||
```
|
||
|
||
### Добавьте в nginx конфиг:
|
||
|
||
Создайте файл `docker/nginx/conf.d/nanaxe.conf`:
|
||
|
||
```nginx
|
||
server {
|
||
listen 80;
|
||
server_name git.yourdomain.com;
|
||
|
||
location / {
|
||
proxy_pass http://nanaxe_gitea:3000;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
}
|
||
}
|
||
|
||
server {
|
||
listen 80;
|
||
server_name api.yourdomain.com;
|
||
|
||
location / {
|
||
proxy_pass http://nanaxe_api:8080;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
}
|
||
}
|
||
```
|
||
|
||
## ✅ Проверка
|
||
|
||
```bash
|
||
# Проверьте статус
|
||
docker compose ps
|
||
|
||
# Проверьте API
|
||
curl http://api.yourdomain.com/health
|
||
|
||
# Откройте Gitea
|
||
open http://git.yourdomain.com
|
||
```
|
||
|
||
## 📝 Примечания
|
||
|
||
- Nanaxe использует ту же PostgreSQL базу, что и Consyscab
|
||
- Nginx вашего друга проксирует запросы к Nanaxe
|
||
- Все сервисы в одной Docker сети `consyscab-network`
|
||
- Данные Gitea хранятся в volume `gitea_data`
|
||
- Mindmaps хранятся в volume `mindmap_data`
|