Удалённый сервер
Развёртывание headless cradle-server на Linux-машине в закрытом контуре через jump-хост.
В закрытых контурах доступ к серверам идёт через jump-хосты, поэтому Cradle не пушит деплой по SSH из клиента. Развёртывание всегда оператор-driven на самом сервере.
Быстрый старт
1. Скачайте cradle-cli
Последний релиз на странице загрузок сервера:
curl -fsSL \
https://download.opencradle.ai/cradle-cli/latest/cradle-cli-install.sh \
| sudo sh
sudo ln -sf /opt/cradle/dist/cli/index.js /usr/local/bin/cradleРучная установка из архива (версию и ссылку отдаёт манифест):
VERSION=$(curl -fsSL https://download.opencradle.ai/cradle-cli/latest/manifest.json \
| grep -o '"version": *"[^"]*"' | cut -d'"' -f4)
curl -fsSL -o cradle-cli-${VERSION}-linux-x64.zip \
https://download.opencradle.ai/cradle-cli/${VERSION}/cradle-cli-${VERSION}-linux-x64.zip
sudo mkdir -p /opt/cradle
sudo unzip -o cradle-cli-${VERSION}-linux-x64.zip -d /opt/cradle
cd /opt/cradle
sudo ./install.sh2. Инициализируйте сервер
sudo cradle server init \
--data-dir /var/lib/cradle \
--port 31416 \
--bind 0.0.0.0 \
--user cradleЭто создаёт:
- пользователя
cradle; - директорию данных
/var/lib/cradle; - SQLite +
sqlite-vec; - первый
admin:*API-ключ; - systemd-unit
cradle-server.
3. Заберите credentials
sudo cat /var/lib/cradle/client-credentials.json4. Подключите Client или CLI
cradle login --url https://gpu-1.local:31416 --key ck_live_...Управление сервисом
sudo systemctl start cradle-server
sudo systemctl enable cradle-server
sudo systemctl status cradle-server
sudo journalctl -u cradle-server -fОбновление
# 1. Остановите сервис
sudo systemctl stop cradle-server
# 2. Переустановите пакет поверх (installer перезапишет /opt/cradle)
curl -fsSL \
https://download.opencradle.ai/cradle-cli/latest/cradle-cli-install.sh \
| sudo sh
# 3. Примените миграции (сервер делает это автоматически при старте)
sudo systemctl start cradle-serverРезервное копирование
Всё состояние — в --data-dir:
sudo tar czf cradle-backup-$(date +%Y%m%d).tar.gz /var/lib/cradleОстановите сервер перед резервной копией, чтобы БД была консистентна.
Мониторинг
cradle health проверяет /admin/health. Для автоматического мониторинга
проверяйте тот же endpoint с вашего инструмента:
curl -H "Authorization: Bearer ck_live_..." \
https://gpu-1.local:31416/api/v1/admin/healthБезопасность
- Ограничьте доступ на порт 31416 файрволом до доверенных сетей.
- Используйте scoped API keys для интеграций.
- Регулярно ротируйте ключи через
cradle keys revoke. - Credentials-файл имеет права
0600и содержит plaintext admin-ключ — храните его в секрет-хранилище.
Troubleshooting
Сервер не стартует
sudo journalctl -u cradle-server -n 100 --no-pagerЧастые причины: отсутствует Node.js, не хватает прав на data-dir, нативный модуль
better-sqlite3 не пересобран под платформу.
Нет звука от Telegram / widget
Проверьте channels_config в БД и убедитесь, что канал enabled и токен/ключ
валидны.
Модель не помещается в RAM
cradle models check qwen3-14b-q4Уменьшите модель или добавьте swap.