Управление проектом и обновлениями YouGile Podman
Жизненный цикл контейнеров
Запуск в фоновом режиме:
podman compose up -d
Остановка (данные сохраняются):
podman compose down
Прямая остановка контейнеров:
podman stop yougile nginx
Перезапуск:
podman restart yougile nginx
Полная остановка с удалением volumes (УДАЛИТ ВСЕ ДАННЫЕ!):
podman compose down -v
Логи
Логи контейнеров (stdout/stderr):
podman logs -f yougile
podman logs -f nginx
Логи YouGile внутри контейнера (файловые логи в named volume):
podman exec yougile tail -f /opt/yougile/logs/info.log
podman exec yougile tail -f /opt/yougile/logs/error.log
Логи Nginx (bind mount — доступны напрямую с хоста):
tail -f ./nginx/logs/access.log
tail -f ./nginx/logs/error.log
Мониторинг
Статус контейнеров:
podman ps
Использование ресурсов:
podman stats
Подключение к контейнерам
Подключение к контейнеру YouGile:
podman exec -it yougile sh
Подключение к контейнеру Nginx:
podman exec -it nginx sh
Выполнение команд YouGile:
podman exec yougile ./server task
Работа с Volumes
YouGile хранит данные в именованных Podman volumes — они сохраняются при podman compose down и при повторном запуске установщика.
| Volume | Содержимое |
|---|---|
yougile_database | База данных |
yougile_userdata | Пользовательские файлы |
yougile_logs | Логи системы |
yougile_extensions | Расширения |
Просмотр содержимого volume:
podman run --rm -v yougile_database:/data alpine ls -la /data
Копирование данных из volume в локальную директорию:
podman run --rm -v yougile_database:/data -v $(pwd):/backup \
alpine cp -r /data/. /backup/database/
Копирование данных в volume:
podman compose down
podman run --rm -v yougile_database:/data -v $(pwd)/out:/source \
alpine sh -c "rm -rf /data/* && cp -r /source/database/. /data/"
podman run --rm -v yougile_userdata:/data -v $(pwd)/out:/source \
alpine sh -c "rm -rf /data/* && cp -r /source/user-data/. /data/"
podman compose up -d
Обновление YouGile
./yougile-container update
Важно: контейнер
yougileдолжен быть запущен — команда проверяет наличие обновлений черезpodman exec. Если контейнер остановлен, сначала выполнитеpodman compose up -d.
Команда автоматически:
- Проверяет наличие обновлений
- Останавливает контейнеры
- Скачивает новую версию
yougile.tar.gz - Пересобирает и запускает контейнеры
Конфигурационные и Docker-файлы не перезаписываются.
Чтобы дополнительно пересоздать Docker-файлы из шаблонов (например, после изменения .env):
./yougile-container update --regen
Резервное копирование
Остановите контейнеры перед резервным копированием:
podman compose down
Создайте резервные копии volumes:
BACKUP_DIR="backup-$(date +%Y%m%d)"
mkdir "$BACKUP_DIR"
podman run --rm -v yougile_database:/data -v "$(pwd)/$BACKUP_DIR":/backup \
alpine tar czf /backup/database.tar.gz -C /data .
podman run --rm -v yougile_userdata:/data -v "$(pwd)/$BACKUP_DIR":/backup \
alpine tar czf /backup/userdata.tar.gz -C /data .
podman run --rm -v yougile_logs:/data -v "$(pwd)/$BACKUP_DIR":/backup \
alpine tar czf /backup/logs.tar.gz -C /data .
podman run --rm -v yougile_extensions:/data -v "$(pwd)/$BACKUP_DIR":/backup \
alpine tar czf /backup/extensions.tar.gz -C /data .
cp -r yougile nginx certbot "$BACKUP_DIR"/
podman compose up -d
Восстановление из резервной копии
podman compose down -v # ВНИМАНИЕ: удалит текущие данные
podman volume create yougile_database
podman volume create yougile_userdata
podman volume create yougile_logs
podman volume create yougile_extensions
podman run --rm -v yougile_database:/data -v "$(pwd)/backup-YYYYMMDD":/backup \
alpine tar xzf /backup/database.tar.gz -C /data
podman run --rm -v yougile_userdata:/data -v "$(pwd)/backup-YYYYMMDD":/backup \
alpine tar xzf /backup/userdata.tar.gz -C /data
podman run --rm -v yougile_logs:/data -v "$(pwd)/backup-YYYYMMDD":/backup \
alpine tar xzf /backup/logs.tar.gz -C /data
podman run --rm -v yougile_extensions:/data -v "$(pwd)/backup-YYYYMMDD":/backup \
alpine tar xzf /backup/extensions.tar.gz -C /data
cp -r backup-YYYYMMDD/yougile backup-YYYYMMDD/nginx backup-YYYYMMDD/certbot .
podman compose up -d