# Автоматический запуск микросервисов после перезагрузки сервера ## Debuan OS server version ## Обзор системы Данная система состоит из нескольких микросервисов, развернутых через 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 ``` Система спроектирована для полного самовосстановления после перезагрузки сервера без необходимости ручного вмешательства.