Clean up: move docs to Obsidian vault, remove outdated md files
This commit is contained in:
@@ -1,369 +0,0 @@
|
||||
# 🚀 Развёртывание Nanaxe Server на Proxmox VPS
|
||||
|
||||
## 📋 Содержание
|
||||
1. [Подготовка VPS](#подготовка-vps)
|
||||
2. [Установка Docker](#установка-docker)
|
||||
3. [Настройка сервера](#настройка-сервера)
|
||||
4. [Запуск](#запуск)
|
||||
5. [Настройка домена и SSL](#настройка-домена-и-ssl)
|
||||
6. [Подключение Flutter-приложения](#подключение-flutter-приложения)
|
||||
|
||||
---
|
||||
|
||||
## Подготовка VPS
|
||||
|
||||
### 1. Создание LXC контейнера в Proxmox
|
||||
|
||||
```bash
|
||||
# На хосте Proxmox создайте контейнер
|
||||
pct create 100 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst \
|
||||
--hostname nanaxe-server \
|
||||
--memory 2048 \
|
||||
--cores 2 \
|
||||
--rootfs local-lvm:10 \
|
||||
--net0 name=eth0,bridge=vmbr0,ip=dhcp
|
||||
|
||||
# Запустите контейнер
|
||||
pct start 100
|
||||
|
||||
# Войдите в контейнер
|
||||
pct enter 100
|
||||
```
|
||||
|
||||
### 2. Обновление системы
|
||||
|
||||
```bash
|
||||
apt update && apt upgrade -y
|
||||
apt install -y curl wget git nano htop
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Установка Docker
|
||||
|
||||
```bash
|
||||
# Установка Docker
|
||||
curl -fsSL https://get.docker.com -o get-docker.sh
|
||||
sh get-docker.sh
|
||||
|
||||
# Добавление пользователя в группу docker
|
||||
usermod -aG docker $USER
|
||||
|
||||
# Установка Docker Compose
|
||||
apt install -y docker-compose-plugin
|
||||
|
||||
# Проверка
|
||||
docker --version
|
||||
docker compose version
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Настройка сервера
|
||||
|
||||
### 1. Клонирование репозитория
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
git clone <your-repo-url> nanaxe-server
|
||||
cd nanaxe-server/server
|
||||
```
|
||||
|
||||
### 2. Настройка переменных окружения
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
nano .env
|
||||
```
|
||||
|
||||
Заполните файл:
|
||||
|
||||
```env
|
||||
# Domain configuration
|
||||
GITEA_DOMAIN=your-domain.com
|
||||
|
||||
# Gitea Configuration
|
||||
GITEA_TOKEN=your_gitea_api_token_here
|
||||
|
||||
# Security (сгенерируйте случайный ключ)
|
||||
JWT_SECRET=$(openssl rand -base64 32)
|
||||
|
||||
# WebDAV (optional)
|
||||
WEBDAV_USER=admin
|
||||
WEBDAV_PASSWORD=your_secure_password
|
||||
|
||||
# Database (обязательно измените!)
|
||||
POSTGRES_PASSWORD=$(openssl rand -base64 24)
|
||||
```
|
||||
|
||||
### 3. Создание директорий
|
||||
|
||||
```bash
|
||||
mkdir -p api/logs
|
||||
mkdir -p nginx/html
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Запуск
|
||||
|
||||
### 1. Первый запуск
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### 2. Проверка статуса
|
||||
|
||||
```bash
|
||||
docker compose ps
|
||||
docker compose logs -f
|
||||
```
|
||||
|
||||
### 3. Инициализация Gitea
|
||||
|
||||
Откройте `http://your-server-ip:3000` и выполните первоначальную настройку:
|
||||
|
||||
1. Установите базу данных (уже настроена PostgreSQL)
|
||||
2. Создайте администратора
|
||||
3. Создайте API токен в Settings → Applications
|
||||
4. Добавьте токен в `.env` файл
|
||||
|
||||
```bash
|
||||
# Перезапустите сервисы
|
||||
docker compose restart
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Настройка домена и SSL
|
||||
|
||||
### 1. Настройка DNS
|
||||
|
||||
Укажите A-записи:
|
||||
- `your-domain.com` → IP сервера
|
||||
- `git.your-domain.com` → IP сервера
|
||||
- `api.your-domain.com` → IP сервера
|
||||
|
||||
### 2. Установка Certbot
|
||||
|
||||
```bash
|
||||
apt install -y certbot
|
||||
|
||||
# Получение сертификатов
|
||||
certbot certonly --standalone -d your-domain.com -d git.your-domain.com -d api.your-domain.com
|
||||
```
|
||||
|
||||
### 3. Настройка Nginx
|
||||
|
||||
Отредактируйте `nginx/nginx.conf`:
|
||||
|
||||
```nginx
|
||||
# Раскомментируйте HTTPS server section
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name your-domain.com;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
|
||||
|
||||
# ... rest of config
|
||||
}
|
||||
```
|
||||
|
||||
### 4. Обновление docker-compose.yml
|
||||
|
||||
Добавьте volume для SSL сертификатов:
|
||||
|
||||
```yaml
|
||||
nginx:
|
||||
volumes:
|
||||
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||
- ./nginx/html:/usr/share/nginx/html:ro
|
||||
- /etc/letsencrypt:/etc/letsencrypt:ro # Добавьте это
|
||||
```
|
||||
|
||||
### 5. Перезапуск
|
||||
|
||||
```bash
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Подключение Flutter-приложения
|
||||
|
||||
### 1. Настройка сервера в приложении
|
||||
|
||||
```dart
|
||||
import 'package:nanaxe_crm/core/nanaxe_server_service.dart';
|
||||
|
||||
final serverService = NanaxeServerService();
|
||||
|
||||
// При инициализации
|
||||
await serverService.initialize();
|
||||
|
||||
// Если не настроен - настройте
|
||||
if (!serverService.isConfigured) {
|
||||
await serverService.configure(
|
||||
'https://api.your-domain.com',
|
||||
);
|
||||
}
|
||||
|
||||
// Проверка соединения
|
||||
final isConnected = await serverService.checkConnection();
|
||||
```
|
||||
|
||||
### 2. Авторизация
|
||||
|
||||
```dart
|
||||
// Регистрация
|
||||
await serverService.register(
|
||||
'user@example.com',
|
||||
'password',
|
||||
'username',
|
||||
);
|
||||
|
||||
// Или вход
|
||||
await serverService.login(
|
||||
'user@example.com',
|
||||
'password',
|
||||
);
|
||||
```
|
||||
|
||||
### 3. Работа с mindmaps
|
||||
|
||||
```dart
|
||||
// Получение списка
|
||||
final mindmaps = await serverService.getMindMaps();
|
||||
|
||||
// Создание
|
||||
final newMap = await serverService.createMindMap(
|
||||
title: 'My Project',
|
||||
description: 'Project planning',
|
||||
nodes: [
|
||||
{'id': '1', 'title': 'Root', 'level': 0, 'parentId': null},
|
||||
{'id': '2', 'title': 'Task 1', 'level': 1, 'parentId': '1'},
|
||||
],
|
||||
);
|
||||
|
||||
// Синхронизация с Gitea
|
||||
await serverService.pushToGitea(commitMessage: 'Updated project plan');
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Обслуживание
|
||||
|
||||
### Обновление
|
||||
|
||||
```bash
|
||||
cd /opt/nanaxe-server/server
|
||||
git pull
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### Бэкап
|
||||
|
||||
```bash
|
||||
# Бэкап данных
|
||||
tar -czf backup-$(date +%Y%m%d).tar.gz /opt/nanaxe-server/server
|
||||
|
||||
# Или бэкап volumes
|
||||
docker run --rm -v nanaxe-server_mindmap-data:/data -v $(pwd):/backup alpine tar czf /backup/mindmaps-backup.tar.gz -C /data .
|
||||
```
|
||||
|
||||
### Мониторинг
|
||||
|
||||
```bash
|
||||
# Логи
|
||||
docker compose logs -f
|
||||
|
||||
# Статистика
|
||||
docker stats
|
||||
|
||||
# Дисковое пространство
|
||||
df -h
|
||||
docker system df
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Доступ к сервисам
|
||||
|
||||
После развёртывания:
|
||||
|
||||
| Сервис | URL | Описание |
|
||||
|--------|-----|----------|
|
||||
| Web UI | `http://your-domain.com` | Главная страница |
|
||||
| Gitea | `http://your-domain.com:3000` | Git репозиторий |
|
||||
| API | `http://your-domain.com:8080` | REST API |
|
||||
| WebDAV | `http://your-domain.com:8081` | Прямой доступ к файлам |
|
||||
|
||||
---
|
||||
|
||||
## 📱 Obsidian Интеграция
|
||||
|
||||
### 1. Git Sync плагин
|
||||
|
||||
Установите плагин **Obsidian Git** и настройте:
|
||||
|
||||
```bash
|
||||
# В настройках плагина
|
||||
Remote URL: http://your-domain.com:3000/username/mindmaps.git
|
||||
```
|
||||
|
||||
### 2. Прямой доступ через WebDAV
|
||||
|
||||
Установите плагин **Remote Save** и настройте WebDAV:
|
||||
|
||||
```
|
||||
URL: http://your-domain.com:8081
|
||||
Username: admin
|
||||
Password: your_secure_password
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Устранение неполадок
|
||||
|
||||
### Проблема: Порты заняты
|
||||
|
||||
```bash
|
||||
# Проверка занятых портов
|
||||
netstat -tlnp | grep -E '3000|8080|80'
|
||||
|
||||
# Измените порты в docker-compose.yml
|
||||
```
|
||||
|
||||
### Проблема: Permission denied
|
||||
|
||||
```bash
|
||||
# Проверьте права
|
||||
ls -la /opt/nanaxe-server/server
|
||||
|
||||
# Исправьте
|
||||
chown -R $USER:$USER /opt/nanaxe-server/server
|
||||
```
|
||||
|
||||
### Проблема: Контейнеры не запускаются
|
||||
|
||||
```bash
|
||||
# Проверьте логи
|
||||
docker compose logs
|
||||
|
||||
# Пересоберите
|
||||
docker compose down
|
||||
docker compose build --no-cache
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 Дополнительно
|
||||
|
||||
- [Gitea Documentation](https://docs.gitea.io/)
|
||||
- [Docker Documentation](https://docs.docker.com/)
|
||||
- [Nginx Documentation](https://nginx.org/en/docs/)
|
||||
@@ -1,164 +0,0 @@
|
||||
# 🔗 Интеграция 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`
|
||||
Reference in New Issue
Block a user