# Развёртывание на сервере ## Текущее правило эксплуатации — 13 октября 2026 Пользователь завершил настройку сервера; база содержит рабочие данные. Описанные ниже параметры первоначального развёртывания — историческая справка, а не подтверждение текущей конфигурации. Без согласованной задачи сервер не изменять. Перед миграцией проверить SQL на потерю данных, создать резервную копию, проверить её восстановление и выполнение миграции в отдельной тестовой БД. Сохранность текущих данных обязательна. Не пересоздавать базу, не удалять тома и не подменять рабочие данные локальными. Учитывать миграции, автоматически выполняемые при старте приложения. При обнаружении проблемы остановиться и согласовать дальнейшие действия. ## Первоначальное развёртывание — 30 сентября 2026 - Подключение: `ssh trainplan` (алиас из локальной SSH-конфигурации). - Каталог развёртывания: `/home/dimass/training-planner`. - Исходники: подкаталог `repository`, ветка `main`, коммит `ad3cd6f`. - Compose-проект: `trainingplanner`, отдельные сеть и тома. - Приложение: `127.0.0.1:8001`, только через локальный reverse proxy. - PostgreSQL не публикует порт на хосте. При первоначальном развёртывании была создана пустая база; сейчас она содержит рабочие данные. - `compose.yaml`, `.env`, `app.env` и `access.txt` находятся вне Git-репозитория. - Логин тренера: `trainer`; сгенерированный пароль находится в `access.txt`, доступном только владельцу. ## Управление ```sh cd /home/dimass/training-planner docker compose ps docker compose logs --tail 100 app ``` Не выполнять `docker system prune`, `docker volume prune` или `docker compose down -v`: на сервере есть другие проекты, а тома этого приложения содержат базу и ключи авторизации. ## HTTPS — исторические результаты проверки При проверке 30 сентября 2026 года Nginx для `trainplan.samsonium.ru` слушает только порт 80 и проксирует на `http://127.0.0.1:8001`. На порту 443 выдаётся сертификат `search.samsonium.ru`, истёкший 19 ноября 2025 года. Конфигурация Nginx и сертификаты при развёртывании приложения не изменяются. На момент первоначальной проверки требовалась настройка HTTPS администратором. 13 октября пользователь сообщил, что завершил настройку сервера; повторная проверка не выполнялась. Прежнюю проблему сертификата не считать актуальной без новой проверки в рамках согласованной задачи. ## Обновление — 13 октября 2026 - Образ приложения: `training-planner:9877052`, код ветки `master`. Исходники сборки: `/home/dimass/training-planner/releases/9877052`. Старый checkout не перезаписан. - Обновлён только app через `docker compose up -d --no-deps app`; контейнер БД остался прежним. Новых миграций нет. - `.env`, `app.env` и существующие учётные записи, включая хеши паролей, не изменились: проверено контрольными суммами. Количество клиентов, программ, библиотечных упражнений и миграций осталось прежним. - HTTPS страницы входа отвечает 200, новый контейнер работает без перезапусков. Вход под рабочей учётной записью и тестовые изменения рабочей БД не выполнялись. - Резервная копия находится на компьютере пользователя: `~/Documents/TrainingPlannerBackups/before-9877052-20261013-225214/database.dump`. Проверены читаемость каталога архива и совпадение SHA-256 после переноса. Восстановление не выполнялось, миграций в обновлении нет. - После проверки переноса временный серверный дамп удалён. На сервере остались резервный Compose и контрольные суммы для проверки обновления; env-файлы не изменялись.