Skip to content

DAARION MVP — Smoke Test Checklist

Мета: Швидка перевірка що всі критичні компоненти працюють після deployment.
Час виконання: ~15 хвилин


✅ Pre-flight Check

  • [ ] Всі Docker containers запущені: docker ps | grep daarion
  • [ ] HTTPS працює: curl -I https://app.daarion.space
  • [ ] DNS resolution OK: dig app.daarion.space +short

🌐 1. API Health Checks

1.1 Gateway Health

curl -I https://app.daarion.space/health
# Очікуємо: HTTP/2 200

Результат: [ ] ✅ / [ ] ❌


1.2 City Service Health

curl https://app.daarion.space/city/health
# Очікуємо: {"status": "healthy", "service": "city-service"}

Результат: [ ] ✅ / [ ] ❌


1.3 Agents Service Health

curl https://app.daarion.space/agents/health
# Очікуємо: {"status": "healthy", "service": "agents-service", ...}

Результат: [ ] ✅ / [ ] ❌


1.4 Second Me Service Health

curl https://app.daarion.space/secondme/health
# Очікуємо: {"status": "healthy", "service": "secondme-service"}

Результат: [ ] ✅ / [ ] ❌


🏙️ 2. City Rooms API

2.1 Get City Rooms

curl https://app.daarion.space/city/rooms | jq
# Очікуємо: масив з 5 дефолтних кімнат (general, welcome, builders, science, energy)

Очікуваний output:

[
  {
    "id": "room_city_general",
    "slug": "general",
    "name": "General",
    "description": "Головна кімната міста...",
    "members_online": <number>
  },
  ...
]

Результат: [ ] ✅ / [ ] ❌
Members online count: _


2.2 Get Room Details

curl https://app.daarion.space/city/rooms/room_city_general | jq
# Очікуємо: деталі кімнати + messages + online_members

Результат: [ ] ✅ / [ ] ❌
Messages count: _


2.3 City Feed

curl https://app.daarion.space/city/feed | jq
# Очікуємо: масив подій (мінімум 1 system event)

Результат: [ ] ✅ / [ ] ❌


🧬 3. Second Me API

3.1 Second Me Profile (потрібна авторизація)

# Mock user для тестування
curl https://app.daarion.space/secondme/profile
# Очікуємо: профіль з total_interactions, agent_id

Результат: [ ] ✅ / [ ] ❌


3.2 Second Me History

curl https://app.daarion.space/secondme/history
# Очікуємо: [] (порожній масив для нового користувача)

Результат: [ ] ✅ / [ ] ❌


🖥️ 4. Frontend Tests

4.1 Homepage Load

Дія: Відкрити https://app.daarion.space в браузері

Перевірити: - [ ] Сторінка завантажується без помилок - [ ] Немає console errors (F12 → Console) - [ ] Немає mixed content warnings - [ ] CSS та JS завантажуються коректно

Результат: [ ] ✅ / [ ] ❌


4.2 Login/Register Page

Дія: Перейти на сторінку логіну/реєстрації

Перевірити: - [ ] Форма відображається коректно - [ ] Inputs працюють - [ ] Validation працює

Результат: [ ] ✅ / [ ] ❌


4.3 City Rooms Page

Дія: Перейти на /city/rooms

Перевірити: - [ ] Список кімнат завантажується - [ ] Видно 5 дефолтних кімнат - [ ] Online count відображається - [ ] Можна клікнути на кімнату

Результат: [ ] ✅ / [ ] ❌


4.4 Room View

Дія: Відкрити конкретну кімнату /city/rooms/room_city_general

Перевірити: - [ ] Повідомлення завантажуються - [ ] Online members відображаються - [ ] Input для нових повідомлень працює

Результат: [ ] ✅ / [ ] ❌


4.5 Second Me Page

Дія: Перейти на /secondme

Перевірити: - [ ] Сторінка завантажується - [ ] Chat interface відображається - [ ] Input працює - [ ] Profile stats показуються

Результат: [ ] ✅ / [ ] ❌


🔌 5. WebSocket Tests

5.1 City Room WebSocket

Дія: Відкрити DevTools → Network → WS filter, відкрити кімнату

Перевірити: - [ ] WebSocket connection встановлено - [ ] URL: wss://app.daarion.space/ws/city/rooms/{room_id} - [ ] Connection status: Connected (101 Switching Protocols) - [ ] Heartbeat працює (якщо реалізовано)

Результат: [ ] ✅ / [ ] ❌


5.2 Presence WebSocket

Дія: Відкрити будь-яку сторінку з PresenceBar

Перевірити: - [ ] WebSocket connection до /ws/city/presence - [ ] Heartbeat надсилається кожні 20 секунд - [ ] Online count оновлюється

Результат: [ ] ✅ / [ ] ❌


🧪 6. Functional Tests

6.1 Send Message to Room (Mock)

# Потрібна авторизація, або використати mock user_id
curl -X POST https://app.daarion.space/city/rooms/room_city_general/messages \
  -H "Content-Type: application/json" \
  -d '{"body": "Test message from smoke test"}'

# Очікуємо: 200 або 401 (якщо потрібна авторизація)

Результат: [ ] ✅ / [ ] ❌


6.2 Second Me Invoke (Mock)

# Викликати Second Me
curl -X POST https://app.daarion.space/secondme/invoke \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Hello, Second Me!"}'

# Очікуємо: response з reply, tokens_used, latency_ms

Результат: [ ] ✅ / [ ] ❌
Response time: _ ms


📊 7. Monitoring & Logs

7.1 Docker Logs

# Перевірити що немає критичних помилок
docker logs daarion-gateway --tail 50
docker logs daarion-city-service --tail 50
docker logs daarion-agents-service --tail 50

Перевірити: - [ ] Немає ERROR рівня логів (допустимі тільки WARN) - [ ] Сервіси стартували успішно - [ ] З'єднання з БД встановлені

Результат: [ ] ✅ / [ ] ❌


7.2 Database Connection

# Перевірити що БД доступна
docker compose -f docker-compose.all.yml exec postgres \
  psql -U daarion_user -d daarion -c "SELECT COUNT(*) FROM city_rooms;"

# Очікуємо: 5 (дефолтні кімнати)

Результат: [ ] ✅ / [ ] ❌


7.3 Redis Connection

# Перевірити Redis
docker compose -f docker-compose.all.yml exec redis redis-cli PING
# Очікуємо: PONG

# Перевірити presence keys (якщо хтось онлайн)
docker compose -f docker-compose.all.yml exec redis redis-cli KEYS "presence:user:*"

Результат: [ ] ✅ / [ ] ❌


7.4 NATS Connection

# Перевірити NATS
docker compose -f docker-compose.all.yml exec nats nats server info
# Очікуємо: статус server, connections, etc.

Результат: [ ] ✅ / [ ] ❌


🔒 8. Security Checks

8.1 HTTPS Certificate

# Перевірити SSL certificate
echo | openssl s_client -servername app.daarion.space -connect app.daarion.space:443 2>/dev/null | openssl x509 -noout -dates

# Перевірити issuer
echo | openssl s_client -servername app.daarion.space -connect app.daarion.space:443 2>/dev/null | openssl x509 -noout -issuer

Перевірити: - [ ] Certificate валідний - [ ] Expiry date > 30 днів - [ ] Issuer: Let's Encrypt або інший trusted CA

Результат: [ ] ✅ / [ ] ❌


8.2 HTTP to HTTPS Redirect

# Перевірити редірект
curl -I http://app.daarion.space
# Очікуємо: 301 або 308 redirect на https://

Результат: [ ] ✅ / [ ] ❌


8.3 Security Headers

curl -I https://app.daarion.space | grep -E "Strict-Transport-Security|X-Content-Type-Options|X-Frame-Options"

Перевірити наявність: - [ ] Strict-Transport-Security - [ ] X-Content-Type-Options: nosniff - [ ] X-Frame-Options: DENY

Результат: [ ] ✅ / [ ] ❌


8.4 Exposed Services Check

# Перевірити що БД не доступна ззовні
nmap -p 5432 app.daarion.space
# Очікуємо: closed або filtered

# Перевірити Redis
nmap -p 6379 app.daarion.space
# Очікуємо: closed або filtered

Результат: [ ] ✅ / [ ] ❌


🎯 9. Performance Baseline

9.1 Response Times

# Homepage
time curl -o /dev/null -s -w "Total: %{time_total}s\n" https://app.daarion.space/

# API endpoint
time curl -o /dev/null -s -w "Total: %{time_total}s\n" https://app.daarion.space/city/rooms

Записати baseline: - Homepage: _ s - City Rooms API: _ s

Очікувані значення: - < 1s для Homepage - < 0.5s для API

Результат: [ ] ✅ / [ ] ❌


9.2 Resource Usage

# Docker stats
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

Перевірити: - [ ] CPU usage < 50% на всіх контейнерах - [ ] Memory usage в межах allocated limits

Результат: [ ] ✅ / [ ] ❌


🎉 Final Score

Total checks: _ / _
Pass rate: _ %

Status: [ ] ✅ READY FOR PRODUCTION / [ ] ❌ ISSUES FOUND


📝 Notes & Issues

Записати всі знайдені проблеми:





📚 Next Steps

Якщо всі тести пройдені: 1. ➡️ Створити production backup 2. ➡️ Налаштувати моніторинг alerts 3. ➡️ Документувати runbook для operations 4. ➡️ Повідомити команду про готовність

Якщо є проблеми: 1. ➡️ Зафіксувати issues в tracker 2. ➡️ Prioritize critical vs non-critical 3. ➡️ Fix & re-run smoke tests


Виконано: __ (дата/час)
Виконавець: __
(ім'я)
Версія: 1.0.0