From 3169dfc96040afcdb865701d68ea08a080059ee5 Mon Sep 17 00:00:00 2001 From: valitovgaziz Date: Sun, 30 Nov 2025 21:39:26 +0500 Subject: [PATCH] renamed: documentation/DockerComposeDocumentation.md -> documentation/DocerComposeYamlDocs.md new file: documentation/RestartDocs.md add docker for restart system on server --- ...cumentation.md => DocerComposeYamlDocs.md} | 0 documentation/RestartDocs.md | 101 ++++++++++++++++++ 2 files changed, 101 insertions(+) rename documentation/{DockerComposeDocumentation.md => DocerComposeYamlDocs.md} (100%) create mode 100644 documentation/RestartDocs.md diff --git a/documentation/DockerComposeDocumentation.md b/documentation/DocerComposeYamlDocs.md similarity index 100% rename from documentation/DockerComposeDocumentation.md rename to documentation/DocerComposeYamlDocs.md diff --git a/documentation/RestartDocs.md b/documentation/RestartDocs.md new file mode 100644 index 0000000..98df525 --- /dev/null +++ b/documentation/RestartDocs.md @@ -0,0 +1,101 @@ +# Автоматический запуск микросервисов после перезагрузки сервера + +## Обзор системы + +Данная система состоит из нескольких микросервисов, развернутых через Docker Compose. Для обеспечения автоматического запуска после перезагрузки сервера настроена интеграция с systemd. + +## Конфигурация автоматического запуска + +### 1. Systemd Service для Docker + +В системе настроен сервис Docker для автоматического запуска при загрузке ОС: + +```bash +sudo systemctl enable docker.service +``` + +Эта команда гарантирует, что Docker демон будет автоматически запускаться при старте системы. + +### 2. Docker Compose и автоматический перезапуск + +В файле `docker-compose.yml` для каждого сервиса настроена политика перезапуска: + +```yaml +restart: unless-stopped +``` + +Эта политика означает: +- Сервисы автоматически перезапускаются при выходе из строя +- Сервисы не перезапускаются, если были остановлены вручную +- При перезагрузке системы все сервисы автоматически запускаются + +## Процесс запуска после перезагрузки + +### Последовательность запуска: + +1. **Загрузка ОС** → systemd запускает Docker демон +2. **Docker** → автоматически восстанавливает контейнеры с политикой `unless-stopped` +3. **Health checks** → система проверяет готовность каждого сервиса +4. **Зависимости** → сервисы запускаются в правильном порядке согласно `depends_on` + +### Health Checks и зависимости + +Система использует health checks для контроля готовности сервисов: + +- **Базы данных**: проверка доступности через `pg_isready` +- **API сервисы**: HTTP health checks на эндпоинты `/health` +- **Nginx**: проверка через `curl http://localhost/health` +- **Certbot**: проверка наличия SSL сертификатов + +## Мониторинг состояния системы + +После перезагрузки проверьте статус системы: + +```bash +# Проверить статус всех контейнеров +docker-compose ps + +# Просмотреть логи запуска +docker-compose logs + +# Проверить health status +docker ps --format "table {{.Names}}\t{{.Status}}" +``` + +## Ручное управление сервисами + +```bash +# Остановить все сервисы +docker-compose down + +# Запустить все сервисы +docker-compose up -d + +# Перезапустить конкретный сервис +docker-compose restart nginx +``` + +## Важные замечания + +1. **Время запуска**: Полный запуск системы может занять 2-5 минут из-за health checks и зависимостей +2. **Порядок запуска**: Критические сервисы (БД) запускаются первыми +3. **Volume данные**: Данные сохраняются между перезагрузками благодаря Docker volumes +4. **Сетевые соединения**: Сети восстанавливаются автоматически + +## Устранение неисправностей + +Если сервисы не запускаются после перезагрузки: + +```bash +# Проверить статус Docker +sudo systemctl status docker + +# Проверить логи Docker +sudo journalctl -u docker.service + +# Принудительно перезапустить композ +docker-compose down +docker-compose up -d +``` + +Система спроектирована для полного самовосстановления после перезагрузки сервера без необходимости ручного вмешательства. \ No newline at end of file