Files
Avtex/DEPLOY_TO_EXISTING_SERVER.md
T
Alexyz 263b0c1b64 fix: Update ports to avoid conflicts with existing Docker projects
- Change Gitea port from 3000 to 3001
- Change API port from 8080 to 8082
- Change Nginx port from 80 to 8083
- Add docker-compose.override.yml for local development
- Add deployment guide for existing servers
2026-04-19 23:00:08 +05:00

195 lines
4.4 KiB
Markdown

# 🚀 Деплой Nanaxe Server на существующий Docker сервер
Если у вас уже работает другой проект на Docker, Nanaxe Server можно развернуть на других портах.
## 📋 Маппинг портов
| Сервис | Внутренний порт | Внешний порт | Описание |
|--------|----------------|--------------|----------|
| Gitea | 3000 | **3001** | Git сервер |
| Gitea SSH | 22 | **2221** | Git SSH |
| PostgreSQL | 5432 | **5433** | База данных |
| Nanaxe API | 8080 | **8082** | REST API |
| Nginx | 80 | **8083** | Web UI |
| Nginx HTTPS | 443 | **8444** | Web UI SSL |
| WebDAV | 80 | **8084** | Файловый доступ |
## 🚀 Быстрый старт
### 1. На сервере создайте директорию
```bash
ssh root@YOUR_SERVER_IP
mkdir -p /opt/nanaxe-server
cd /opt/nanaxe-server
```
### 2. Скопируйте файлы
```bash
# Клонируйте репозиторий
git clone https://github.com/YOUR_USERNAME/NANAXE.git temp
cp -r temp/server/* .
rm -rf temp
```
### 3. Настройте окружение
```bash
cp .env.example .env
nano .env
```
Заполните:
```env
GITEA_DOMAIN=your-domain.com
JWT_SECRET=your-secret-key
POSTGRES_PASSWORD=your-db-password
WEBDAV_USER=admin
WEBDAV_PASSWORD=your-password
```
### 4. Запустите
```bash
docker compose up -d
```
### 5. Проверьте
```bash
# Проверьте статус
docker compose ps
# Проверьте логи
docker compose logs -f
# Проверьте API
curl http://localhost:8082/health
# Откройте Gitea
open http://YOUR_SERVER_IP:3001
```
## 🔧 Настройка Nginx Reverse Proxy (опционально)
Если у вас уже есть Nginx для другого проекта, добавьте:
```nginx
# /etc/nginx/sites-available/nanaxe
server {
listen 80;
server_name nanaxe.yourdomain.com;
location / {
proxy_pass http://localhost:8083;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
server_name git.yourdomain.com;
location / {
proxy_pass http://localhost:3001;
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://localhost:8082;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
```bash
ln -s /etc/nginx/sites-available/nanaxe /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
```
## 🔄 GitHub Actions деплой
### 1. Добавьте Secrets
В GitHub репозитории: **Settings → Secrets → Actions**
```
NANAXE_SSH_KEY=-----BEGIN OPENSSH PRIVATE KEY-----
(приватный ключ)
-----END OPENSSH PRIVATE KEY-----
NANAXE_HOST=YOUR_SERVER_IP
NANAXE_USER=root
NANAXE_PATH=/opt/nanaxe-server
```
### 2. Workflow уже настроен
При push в `master` ветку:
1. Собирается Docker образ
2. Публикуется в GitHub Container Registry
3. Деплоится на ваш сервер
4. Перезапускаются контейнеры
## 🧪 Локальная разработка
Для локального тестирования с стандартными портами:
```bash
cd server
docker compose -f docker-compose.yml -f docker-compose.override.yml up -d
```
## 📱 Доступ к сервисам
После деплоя:
- **Gitea**: http://YOUR_SERVER_IP:3001
- **API**: http://YOUR_SERVER_IP:8082
- **Web UI**: http://YOUR_SERVER_IP:8083
- **WebDAV**: http://YOUR_SERVER_IP:8084
## 🐛 Устранение неполадок
### Порт уже занят
```bash
# Найдите процесс
netstat -tlnp | grep 3001
# Или измените порт в docker-compose.yml
```
### Конфликт имён контейнеров
```bash
# Проверьте запущенные контейнеры
docker ps
# Если есть конфликт, измените имена в docker-compose.yml
```
### Проблемы с сетью
```bash
# Пересоздайте сеть
docker compose down
docker network prune
docker compose up -d
```
## ✅ Готово!
Nanaxe Server работает параллельно с вашим другим проектом!