263b0c1b64
- 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
195 lines
4.4 KiB
Markdown
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 работает параллельно с вашим другим проектом!
|