---
deploy_status: SUCCESS   # SUCCESS | FAILED — машинный вердикт, читается оркестратором
version: v0.0.7
---
# Deploy Log — ET-015

- **Version:** v0.0.7
- **Date:** 2026-06-05 15:39 UTC
- **PR:** #30
- **Branch:** feature/ET-015-healthcheck-enduro-trails-app-
- **Environment:** test (https://openclaw.mva154.duckdns.org/enduro/)
- **Merge:** OK (Gitea API, HTTP 200)
- **Tag:** v0.0.7 (pushed to origin)
- **Deploy hook:** OK (RC=0, SSH slin@127.0.0.1)
- **Healthcheck:** PASS (HTTP 200 on `/enduro/`, 1-я попытка)
- **Smoke:** PASS
  - `GET /enduro/` → 200
  - `GET /enduro/style.json` → 200
  - `GET /enduro/app.js` → 200
  - `GET /enduro/app.css` → 200
  - Примечание: шаблонные URL в инструкции деплоера используют префикс
    `/enduro/static/...`, но это приложение раздаёт статику плоско из
    `/enduro/` (см. `src/web/index.html` — `<link href="app.css">`).
    Использованы фактические URL раздачи; контракт `/api/health` также
    отвечает 200 (см. healthcheck выше).
- **Status:** SUCCESS

## Что задеплоено
ET-015 — фикс контейнерного healthcheck сервиса `app`:
- `docker-compose.yml` `healthcheck.test` переведён с `curl -f` (не
  установлен в `python:3.12-slim`) на python one-liner через
  `urllib.request` из stdlib.
- Без изменений `Dockerfile` и `src/api/main.py`, без ребилда образа.
- `start_period: 20s` смягчает окно холодного старта uvicorn; внутренний
  `urlopen(timeout=3)` < внешнего `healthcheck.timeout: 5s` (AC-07).
- Покрытие: 12 static-тестов + 6 unit-тестов. ADR-020.

## Артефакты
- PR: http://localhost:3000/admin/enduro-trails/pulls/30
- Tag: v0.0.7
- Commit: e8a8335 (merge в main)
