mirvmon/docker
mirivlad 3255bfae29 feat: auto-cleanup metrics older than 60 days
- MariaDB event scheduler: daily cleanup at 03:00
- Production: event created, event_scheduler=ON, config in /etc/mysql/mariadb.conf.d/
- Docker: --event-scheduler=ON in db service command
- Migration 008: creates event on fresh installs
- 20 servers x 1 month ≈ 1GB (vs unlimited growth)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-14 19:21:40 +08:00
..
migrations fix: correct PHP-native bcrypt hash for admin password mirvmon2026 2026-04-14 16:34:40 +08:00
.env.example unify config: single .env.example, default password mirvmon2026, docker in README 2026-04-14 16:20:01 +08:00
Dockerfile Docker: production-ready setup with immutable images, versioned migrations, env vars 2026-04-14 15:51:14 +08:00
README.md Docker: production-ready setup with immutable images, versioned migrations, env vars 2026-04-14 15:51:14 +08:00
deploy.sh unify config: single .env.example, default password mirvmon2026, docker in README 2026-04-14 16:20:01 +08:00
docker-compose.yml feat: auto-cleanup metrics older than 60 days 2026-04-14 19:21:40 +08:00
init.sh Docker: production-ready setup with immutable images, versioned migrations, env vars 2026-04-14 15:51:14 +08:00
migrate.sh Docker: production-ready setup with immutable images, versioned migrations, env vars 2026-04-14 15:51:14 +08:00
nginx.conf Docker: production-ready setup with immutable images, versioned migrations, env vars 2026-04-14 15:51:14 +08:00

README.md

MirvMon — Docker Setup

Быстрый старт

# 1. Копируем конфиг
cp .env.example .env

# 2. Меняем пароли в .env
nano .env

# 3. Запускаем
docker compose up -d --build

# 4. Открываем http://localhost:8080
# Логин: admin, Пароль: admin (сменить сразу!)

Обновление

# Обновить код и пересобрать
git pull
docker compose up -d --build

# Или если образы в registry:
docker compose pull
docker compose up -d

Структура

docker/
├── Dockerfile              # PHP 8.3 FPM + приложение
├── docker-compose.yml      # app + nginx + db
├── nginx.conf              # конфиг nginx
├── init.sh                 # entrypoint (ждёт БД + миграции)
├── migrate.sh              # скрипт миграций
├── migrations/             # SQL миграции с версионированием
│   ├── 001_create_base_schema.sql
│   ├── 002_add_encrypted_token.sql
│   ├── ...
├── .env.example            # шаблон конфига
└── README.md               # этот файл

Миграции

Каждая миграция — SQL файл с номером в имени. Система отслеживает применённые в таблице schema_migrations.

Добавить новую:

echo "ALTER TABLE servers ADD COLUMN foo VARCHAR(50);" > docker/migrations/009_add_foo.sql
docker compose up -d --build

Переменные окружения (.env)

Переменная Описание По умолчанию
APP_PORT Порт веб-интерфейса 8080
DB_HOST Хост БД db
DB_NAME Имя базы monitoring_system
DB_USERNAME Пользователь БД mon_user
DB_PASSWORD Пароль БД mon_password_123
DB_ROOT_PASSWORD Root пароль БД (обязательно сменить!)

Тома (persistent data)

Volume Что хранит
db_data База данных MariaDB
app_var Кэш Twig и логи PHP

Код приложения не монтируется — он внутри образа. Обновление = новый образ.