mirvmon/docker
mirivlad e4588f7044 fix: correct PHP-native bcrypt hash for admin password mirvmon2026
- Migration 007: PHP-native $2y$ hash (not Python $2b$)
- docker/.env excluded from git
- APP_PORT set to 8082 (avoid conflicts with existing nginx)
- Verified: login with admin/mirvmon2026 works correctly

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-14 16:34: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 unify config: single .env.example, default password mirvmon2026, docker in README 2026-04-14 16:20:01 +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

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