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

4.4 KiB
Raw Blame History

🚀 Деплой 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. На сервере создайте директорию

ssh root@YOUR_SERVER_IP

mkdir -p /opt/nanaxe-server
cd /opt/nanaxe-server

2. Скопируйте файлы

# Клонируйте репозиторий
git clone https://github.com/YOUR_USERNAME/NANAXE.git temp
cp -r temp/server/* .
rm -rf temp

3. Настройте окружение

cp .env.example .env
nano .env

Заполните:

GITEA_DOMAIN=your-domain.com
JWT_SECRET=your-secret-key
POSTGRES_PASSWORD=your-db-password
WEBDAV_USER=admin
WEBDAV_PASSWORD=your-password

4. Запустите

docker compose up -d

5. Проверьте

# Проверьте статус
docker compose ps

# Проверьте логи
docker compose logs -f

# Проверьте API
curl http://localhost:8082/health

# Откройте Gitea
open http://YOUR_SERVER_IP:3001

🔧 Настройка Nginx Reverse Proxy (опционально)

Если у вас уже есть 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;
    }
}
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. Перезапускаются контейнеры

🧪 Локальная разработка

Для локального тестирования с стандартными портами:

cd server
docker compose -f docker-compose.yml -f docker-compose.override.yml up -d

📱 Доступ к сервисам

После деплоя:

🐛 Устранение неполадок

Порт уже занят

# Найдите процесс
netstat -tlnp | grep 3001

# Или измените порт в docker-compose.yml

Конфликт имён контейнеров

# Проверьте запущенные контейнеры
docker ps

# Если есть конфликт, измените имена в docker-compose.yml

Проблемы с сетью

# Пересоздайте сеть
docker compose down
docker network prune
docker compose up -d

✅ Готово!

Nanaxe Server работает параллельно с вашим другим проектом!