Перейти к основному содержимому

Управление проектом и обновлениями 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