# 🛠 Reset and Cleanup Infrastructure of Jambotron

Этот протокол описывает процесс экстренного восстановления системы **Jambotron** при критическом заполнении диска и аномальной нагрузке на CPU, вызванной штормом контейнеров.

---

## 1. Фаза Остановки (Purge)

Когда система «захлебывается», необходимо прервать циклы бесконечных перезагрузок, которые блокируют ресурсы процессора.

```bash
# Остановить процессы, пожирающие ресурсы
docker stop jambotron-staging jambotron-app
```

---

## 2. Фаза Глубокой Очистки (Space Recovery)

Освобождение диска от «темной материи» — кэша сборок и неиспользуемых слоев.

| Тип данных   | Команда очистки                     | Эффект                                             |
|--------------|------------------------------------|----------------------------------------------------|
| Build Cache  | `docker builder prune -a -f`        | Удаление промежуточных слоев (~44 ГБ)              |
| Images       | `docker image prune -a -f`          | Удаление неиспользуемых и старых образов           |
| Containers   | `docker rm jambotron-staging test-app1 whoami` | Удаление лишних или битых контейнеров |

---

## 3. Фаза Оживления (Resurrection)

Последовательный запуск компонентов системы. Начинаем с фундамента (баз данных).

```bash
# Шаг 1: Запуск баз данных и хранилища кода
docker start jambo-postgres jambo-mongo gitea-db-1 gitea

# Шаг 2: Запуск сетевого шлюза и мониторинга
docker start caddy jambo-loki prometheus grafana portainer

# Шаг 3: Запуск основного приложения (Production)
docker start jambotron-app
```

---

## 4. Контроль Инженерной Системы

После ресета необходимо убедиться, что параметры системы вернулись в норму:

- `df -h` — Проверка свободного места на диске
- `docker system df` — Проверка очистки Build Cache
- `docker ps` — Проверка, что все критические контейнеры в статусе **Up**

---

## 5. Предотвращение Деградации

Чтобы система оставалась стабильной, придерживайся правил в CI/CD:

- **Network Logic:** всегда используй имя контейнера базы (`jambo-mongo`), а не `localhost`
- **Clean Build:** периодически очищай образы, чтобы старые версии не накапливались
- **Мониторинг:** следи за ресурсами и состоянием контейнеров

---

## Итог

- **Статус системы:** Очищена
- **Направление:** Задано
- **Цель:** Созидание  
