Files
forkmessager/DOKPLOY.md
Халимов Рустам 1bb28c1ff7 Dokploy
2026-03-10 23:25:42 +03:00

5.4 KiB
Raw Blame History

Развертывание Vortex в Dokploy

Dokploy — это мощная self-hosted PaaS платформа, которая упрощает деплой Docker-приложений. Есть два способа развернуть Vortex в Dokploy.

Способ 1: С использованием Docker Compose (Самый простой)

Этот метод объединяет базу данных и приложения в один стек.

  1. Создайте проект: В панели Dokploy создайте новый "Project".
  2. Добавьте Compose сервис:
    • Нажмите "Add Service" -> "Compose".
    • Подключите ваш GitHub/GitLab репозиторий.
    • Выберите нужную ветку (например, main).
  3. Настройте переменные окружения:
    • Во вкладке "Environment" добавьте следующие переменные:
      • JWT_SECRET: Длинная случайная строка (ключ для авторизации).
      • CORS_ORIGINS: https://vortex.your-domain.com (замените на ваш реальный домен).
      • ENCRYPTION_KEY: 64-символьная HEX-строка (например, 0123...).
  4. Укажите домен:
    • Перейдите во вкладку "Domains".
    • Dokploy автоматически настроит Traefik для основного сервиса web, если вы укажете домен здесь.
  5. Деплой: Нажмите кнопку "Deploy".

Способ 2: Нативный метод Dokploy (Рекомендуется для Production)

Этот метод использует встроенные базы данных Dokploy для лучшего управления бэкапами и производительностью.

1. Создайте базу данных

  • В Dokploy перейдите в "Databases" -> "PostgreSQL".
  • Создайте новую базу данных.
  • После создания перейдите во вкладку "Internal Connection", чтобы получить DATABASE_URL.

2. Создайте приложение для Сервера (Backend)

  • Add Service -> "Application".
  • Подключите репозиторий.
  • Настройки сборки (Build Settings):
    • Docker Context: .
    • Dockerfile Path: Dockerfile.server
  • Переменные окружения (Environment Variables):
    • DATABASE_URL: (Вставьте URL из шага 1)
    • PORT: 3001
    • JWT_SECRET: (Случайная строка)
    • ENCRYPTION_KEY: (64 символа hex)
    • CORS_ORIGINS: https://vortex.your-domain.com
  • Сеть (Networking):
    • Port: 3001

3. Создайте приложение для Веб-интерфейса (Frontend)

  • Add Service -> "Application".
  • Подключите репозиторий.
  • Настройки сборки (Build Settings):
    • Docker Context: .
    • Dockerfile Path: Dockerfile.web
  • Домены:
    • Добавьте ваш домен (например, vortex.example.com).
  • Сеть (Networking):
    • Port: 80

Важные настройки

1. Постоянное хранение файлов (Persistence)

Если вы используете Способ 2, не забудьте настроить Volumes для приложения сервера, чтобы аватарки и файлы не удалялись при каждом обновлении кода:

  • Путь в контейнере: /app/apps/server/uploads
  • Путь на хосте: /var/lib/dokploy/vortex/uploads

Запуск в локальной сети (без домена / по IP)

Если вы хотите пользоваться мессенджером прямо сейчас по IP-адресу или в локальной сети:

  1. Настройка CORS: В переменных окружения CORS_ORIGINS укажите IP вашего сервера:
    • Пример: http://192.168.1.50,http://localhost
  2. Домен в Dokploy:
    • При добавлении домена в Dokploy можно указать локальный IP или временное имя.
    • Если Dokploy требует обязательный домен для SSL, а у вас его нет, вы можете обращаться к сервису по порту напрямую (по умолчанию 80-й порт веб-интерфейса проброшен на хост).
  3. Важное ограничение (WebRTC):
    • Звонки и микрофон в браузерах работают только через https:// или на localhost.
    • При доступе по обычному IP (например, http://192.168.1.50) браузер заблокирует доступ к камере и микрофону из соображений безопасности.
    • Решение: Для полноценной работы звонков в локальной сети рекомендуется использовать самоподписанный сертификат или настроить в браузере флаг unsafely-treat-insecure-origin-as-secure.