Установка через мастер
Мастер подготовки (provisioning wizard) — рекомендуемый способ установки self-hosted Copula. Он находится в приложении Copula и запускается до появления любого Space — мастер готовит чистый сервер от начала до конца и возвращает готовый URL Space.
Предварительные условия: сервер, соответствующий требованиям, и лицензионный токен.
Шаги мастера
- SSH — укажите хост, SSH-порт (по умолчанию
22), SSH-пользователя и метод аутентификации (пароль или приватный ключ). - License — вставьте
LICENSE_TOKEN, скопированный из кабинета. - Env — настройте окружение бэкенда:
- сначала учётные данные администратора:
ADMIN_USERиADMIN_PASS; - затем блок провайдера моделей;
- затем секреты:
JWT_SECRET(ровно 128 hex-символов) иENCRYPTION_KEY(32 символа) — мастер может предзаполнить и перегенерировать оба; - расширенные поля опциональны.
- сначала учётные данные администратора:
- Domain — выберите автоматически сгенерированный поддомен
inst-<slug>.copul4.comили укажите собственный FQDN (его записьAуже должна указывать на сервер). - Pre-flight — мастер выполняет SSH-проверки целевого хоста.
- Progress — запускается деплой.
Что делает деплой
Пайплайн деплоя выполняет шаги в следующем порядке:
install_docker → dns_setup → render_compose → upload_files → pull_images
→ start_postgres → run_migrations → start_backend → start_proxy → await_healthШаг start_postgres пропускается, если настроена внешняя база данных.
Что появляется на хосте
Стек разворачивается в /root/copula:
/root/copula/docker-compose.yml/root/copula/.env(права файла0600)/root/copula/Caddyfile
Сервисы:
| Сервис | Образ / роль |
|---|---|
copula-postgres | postgres:16-alpine — только в режиме с подготовленной БД; данные в /root/copula/data; наружу хоста не публикуется |
copula-migrate | Одноразовая init-задача, собранная из образа самого copula-api (migrate CLI в /usr/local/bin/migrate, файлы миграций в /migrations); запускается перед бэкендом через depends_on: service_completed_successfully |
copula-back | Опубликованный образ бэкенда; порт хоста 8901 → ${BACKEND_PORT}; тома /root/copula/workspace → /workspace, /root/copula/ssh → /root/.ssh, ./.env → /config/.env:ro, /var/run/docker.sock |
copula-cocoindex | cocoindex/cocoindex-code:full — демон поиска по коду |
copula-caddy | caddy:2.11.4-alpine — публикует порты 80/443, автоматически получает сертификат Let's Encrypt для домена инстанса, проксирует запросы на copula-back |
После деплоя
Мастер завершается URL space вида https://<domain>. Добавьте этот URL как Space в приложении Copula, чтобы начать работу.
Конфигурация моделей по умолчанию для новых установок — MODEL_PROVIDER=copula с MODEL_NAME=copula-base: LLM-роутер кабинета, которому не нужен API-ключ (учётные данные — лицензионный токен). Провайдеры openrouter и custom выбираются на шаге Env; см. справочник переменных окружения.