Docker Compose конфигурация для запуска EasyDesk на production-сервере. Образы сервисов загружаются из GitHub Container Registry.
| Сервис | Образ | Назначение |
|---|---|---|
postgres |
postgres:17-alpine |
База данных |
backend |
ghcr.io/easydeskt/backend |
Ktor-приложение: REST API, каналы, боты |
mini-app |
ghcr.io/easydeskt/mini-app |
Telegram Mini App (React SPA) |
caddy |
caddy:2-alpine |
Обратный прокси, TLS-терминация |
Все сервисы изолированы в общей Docker-сети. Внешний трафик принимают только порты 80 и 443.
git clone https://github.com/easydeskt/easydesk.git
cd easydeskcp .env.example .envЗаполните переменные в .env согласно разделу Переменные окружения.
docker compose up -dПеред запуском домен должен быть направлен на IP-адрес сервера. TLS-сертификат Caddy получит от Let's Encrypt при первом старте.
docker compose pull && docker compose up -dСкопируйте .env.example в .env и укажите актуальные значения.
| Переменная | Описание | Пример |
|---|---|---|
DOMAIN |
Домен для выпуска TLS-сертификата | easydesk.example.com |
BACKEND_VERSION |
Тег образа backend | latest, 1.2.0 |
MINI_APP_VERSION |
Тег образа mini-app | latest, 1.2.0 |
| Переменная | Описание | По умолчанию |
|---|---|---|
KTOR_SERVER_HOST |
Адрес, на котором Ktor принимает соединения | 0.0.0.0 |
KTOR_SERVER_PORT |
Порт HTTP-сервера | 8080 |
WORKSPACE_NAME |
Отображаемое название рабочего пространства | — |
| Переменная | Описание | По умолчанию |
|---|---|---|
DATABASE_USERNAME |
Пользователь PostgreSQL | — |
DATABASE_PASSWORD |
Пароль PostgreSQL | — |
DATABASE_MAX_POOL_SIZE |
Максимальный размер пула соединений | 10 |
DATABASE_MIN_IDLE |
Минимальное число простаивающих соединений | 2 |
URL подключения к базе данных (jdbc:postgresql://postgres:5432/easydesk) задан в docker-compose.yml и не требует настройки.
Бот создаёт топик в Telegram-супергруппе для каждого тикета и ведёт переписку с клиентами от имени поддержки.
| Переменная | Описание |
|---|---|
TELEGRAM_SUPERVISOR_BOT_TOKEN |
Токен бота-оператора |
TELEGRAM_SUPERVISOR_GROUP_ID |
ID супергруппы с форум-топиками |
TELEGRAM_SUPERVISOR_SUPERADMIN_ID |
Telegram ID первого администратора |
| Переменная | Описание |
|---|---|
VAULT_ENCRYPTION_KEY |
Base64-ключ (32 байта) для шифрования чувствительных данных. Генерация: openssl rand -base64 32 |