Skip to content

Latest commit

 

History

History
89 lines (72 loc) · 4.58 KB

File metadata and controls

89 lines (72 loc) · 4.58 KB

Dokploy — работа с проектом OnePostBot через API

Этот проект задеплоен через Dokploy. У тебя (AI-агент) НЕТ доступа к серверу по SSH. Всё управление — только через Dokploy REST API с личным API-ключом разработчика.

Доступ

  • Base URL: http://138.124.50.27:3000/api
  • Авторизация: заголовок x-api-key: <КЛЮЧ>
  • Ключ: берётся из переменной окружения DOKPLOY_API_KEY (у каждого свой, в репозиторий НЕ коммитить)

Ключ наследует права пользователя: доступ только к проекту OnePostBot. Запросы к другим проектам вернут UNAUTHORIZED — это нормально.

Идентификаторы проекта OnePostBot

Что ID
projectId 2yLgi_AQKzthAS4UrM_Q5
composeId (сервис Stack) W8OF6HcVa_4Fabvzsbacl
environmentId (production) 1VCry8bIwWRKEfYmyVLzr

Частые операции

Прочитать секреты (env-переменные)

Секреты живут в compose.env (собственный env сервиса) — именно он попадает в контейнер через env_file: .env. НЕ используй environment.* (это env уровня окружения, в контейнер не инжектится).

curl -s -X GET "http://138.124.50.27:3000/api/compose.one?composeId=W8OF6HcVa_4Fabvzsbacl" \
  -H "x-api-key: $DOKPLOY_API_KEY" | jq -r '.env'

Изменить секреты

env — это единый текстовый блок в формате .env (KEY=value, переносы строк \n). Обновление ПЕРЕЗАПИСЫВАЕТ весь блок целиком — сначала прочитай, потом меняй нужные строки, потом пиши обратно. После изменения нужен редеплой, иначе контейнер не подхватит.

curl -s -X POST "http://138.124.50.27:3000/api/compose.update" \
  -H "x-api-key: $DOKPLOY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "composeId": "W8OF6HcVa_4Fabvzsbacl",
    "env": "BOT_TOKEN=123\nOPENAI_API_KEY=sk-..."
  }'

Посмотреть список деплойментов (и их логи)

curl -s -X GET "http://138.124.50.27:3000/api/deployment.all?composeId=W8OF6HcVa_4Fabvzsbacl" \
  -H "x-api-key: $DOKPLOY_API_KEY" | jq '.[] | {deploymentId, status, title, createdAt}'

Каждый деплоймент содержит logPath — путь к лог-файлу билда/деплоя на сервере. Прочитать содержимое лога:

curl -s -X GET "http://138.124.50.27:3000/api/deployment.one?deploymentId=<ID>" \
  -H "x-api-key: $DOKPLOY_API_KEY"

Триггернуть редеплой

curl -s -X POST "http://138.124.50.27:3000/api/compose.redeploy" \
  -H "x-api-key: $DOKPLOY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"composeId": "W8OF6HcVa_4Fabvzsbacl"}'

Статус сервиса

curl -s -X GET "http://138.124.50.27:3000/api/compose.one?composeId=W8OF6HcVa_4Fabvzsbacl" \
  -H "x-api-key: $DOKPLOY_API_KEY" | jq '{name, composeStatus, branch, autoDeploy}'

Ограничения (важно)

  • Живые логи контейнера (docker logs) через API в бесплатной версии НЕДОСТУПНЫ обычному member. Доступны только логи деплоя/билда через deployment.all / deployment.one. Для живых логов — смотреть в Dokploy UI (вкладка сервиса → Logs) или просить owner.
  • Секреты возвращаются в открытом виде — не логируй их и не коммить в репозиторий.
  • Автодеплой включён: пуш в ветку main на GitHub автоматически пересобирает сервис.

Рабочий цикл разработчика

  1. Клонируешь репо, делаешь изменения в коде
  2. Пушишь в main (или через PR) на GitHub
  3. Dokploy сам подхватывает пуш и редеплоит
  4. Секреты меняешь через API (compose.update) — они НЕ в git
  5. Смотришь статус деплоя через deployment.all