Документация по восстановлению BookStack + MariaDB (Production)
#
по
## Назначение документа
Данный документ описывает полный процесс восстановления
Документ предназначен для быстрого восстановления системы в случае: -
------------------------------------------------------------------------
# Архитектура
## Компоненты
-
BookStack: lscr.io/linuxserver/bookstack## Пути хранения
BookStack config: /home/med1f/docker/bookstack/data
MariaDB data: /home/med1f/docker/bookstack/data/databases
------------------------------------------------------------------------
# Типовые проблемы и решения
------------------------------------------------------------------------
# 1. Контейнер MariaDB удалён
## Проверка наличия данных
Проверить наличие файлов БД:
ls -la /home/med1f/docker/bookstack/data/databases
Критически важные файлы: - ibdata1 - ib_logfile0 - aria_log
Если файлы присутствуют --- данные НЕ потеряны.
## Восстановление контейнера MariaDB
docker run -d --name sweet_tanthep-main_app-1 -e
------------------------------------------------------------------------
# 2. Ошибка: APP_KEY is missing
Причина: linuxserver/bookstack требует APP_KEY в ENV.
## Генерация ключа
docker run -it --rm --entrypoint /bin/bash
Скопировать сгенерированный ключ формата: base64:XXXXXXXXXXXXXXXX
------------------------------------------------------------------------
# 3. Ошибка 500 Internal Server Error
Чаще всего причина --- неправильные параметры БД.
## Проверка файла .env
Файл расположен:
/home/med1f/docker/bookstack/data/www/.env
Проверить блок БД:
DB_HOST=sweet_tanthep-main_app-1 DB_DATABASE=bookstack
Важно: В .env используется DB_USERNAME, а НЕ DB_USER.
После изменений:
docker restart bookstack
------------------------------------------------------------------------
# 4. Ошибка: Name does not resolve
Причина: Контейнеры находятся в default bridge сети. Default bridge НЕ
## Решение --- создать user-defined сеть
docker network create bookstack-net
Подключить MariaDB:
docker network connect bookstack-net sweet_tanthep-main_app-1
Запускать BookStack в этой сети:
--network bookstack-net
------------------------------------------------------------------------
# 5. Ошибка: Access denied for user
Причина: Пользователь БД создан только для localhost или пароль не
Проверка:
docker exec -it sweet_tanthep-main_app-1 mysql -u root -p
SELECT user, host FROM mysql.user;
Если нет bookstack@%:
CREATE USER 'bookstack'@'%' IDENTIFIED BY 'Passwd55'; GRANT ALL
------------------------------------------------------------------------
# Финальная рабочая команда запуска BookStack
docker run -d --name bookstack --network bookstack-net -e
------------------------------------------------------------------------
# Рекомендации для Production
1.
Использовать docker-compose.------------------------------------------------------------------------
# Бэкап
## Бэкап базы
docker exec sweet_tanthep-main_app-1 mysqldump -u bookstack -p bookstack
## Бэкап config
tar -czf bookstack_config_backup.tar.gz
------------------------------------------------------------------------
# Статус
Система полностью восстановлена. Данные сохранены. Сеть корректна.