Развлекался намедни обновлением Lychee с миграцией с базового LXC-контейнера Debian 12 -> Debian 13
Исходно: Lychee 6.10.3 в Debian 12 LXC. База — MariaDB 10.
Данные приложения находились в:
/lychee/conf
/lychee/uploads
/lychee/sym
/lychee/pictures
/lychee/dbЦель: обновить приложение и MariaDB 10->11
В Lychee 7 изменилась структура каталогов внутри контейнера (см. Update Guide))
Новая схема:
volumes:
- ./lychee/uploads:/app/public/uploads
- ./lychee/logs:/app/storage/logs
- ./lychee/tmp:/app/storage/tmp
- ./lychee/storage/app:/app/storage/appБаза смонтирована в локальную директорию, но т. к. хочу поднять версию базы, делаем миграцию через дамп.
docker exec lychee_db \
mysqldump \
-u root \
-p'PASSWORD' \
--single-transaction \
lychee > /lychee/lychee.sqlПереносим всё другой сервер, восстанавливаем.
APP_KEY
В Lychee 7 обязателен `APP_KEY`. Без него контейнер завершается с ошибкой:
ERROR: APP_KEY is not setКлюч можно сгенерировать:
echo "base64:$(openssl rand -base64 32)"и передать контейнеру:
environment:
APP_KEY: "base64:..."Восстановление базы
docker compose up -d lychee_dbВосстанавливаем дамм.
docker exec -i lychee_db \
mariadb \
-u root \
-p'PASSWORD' \
lychee <lychee.sqlВ MariaDB 11 используется клиент `mariadb`, а не старое имя `mysql`.
Пересчёт статистики
После успешного запуска Lychee 7 стоит пересчитать размеры альбомов и thumbnails
docker exec -it lychee php artisan lychee:recompute-album-sizesи статистику альбомов:
docker exec -it lychee php artisan lychee:recompute-album-statsReverse proxy
После миграции при работе через Nginx возникала плавающая 502, причём выглядела она интересно — на одном и том же ПК веб-морда могла открывать в одном браузере, и не открывать в другом. В логах:
upstream sent too big header while reading response header from upstreamПроблема решилась увеличением proxy buffers: