Этот проект задеплоен через Dokploy. У тебя (AI-агент) НЕТ доступа к серверу по SSH. Всё управление — только через Dokploy REST API с личным API-ключом разработчика.
- Base URL:
http://138.124.50.27:3000/api - Авторизация: заголовок
x-api-key: <КЛЮЧ> - Ключ: берётся из переменной окружения
DOKPLOY_API_KEY(у каждого свой, в репозиторий НЕ коммитить)
Ключ наследует права пользователя: доступ только к проекту OnePostBot. Запросы к другим проектам вернут
UNAUTHORIZED— это нормально.
| Что | ID |
|---|---|
| projectId | 2yLgi_AQKzthAS4UrM_Q5 |
| composeId (сервис Stack) | W8OF6HcVa_4Fabvzsbacl |
| environmentId (production) | 1VCry8bIwWRKEfYmyVLzr |
Секреты живут в 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 автоматически пересобирает сервис.
- Клонируешь репо, делаешь изменения в коде
- Пушишь в
main(или через PR) на GitHub - Dokploy сам подхватывает пуш и редеплоит
- Секреты меняешь через API (
compose.update) — они НЕ в git - Смотришь статус деплоя через
deployment.all