Заметки ITшника обо всём

Миграция Lychee 6 -> 7 в Docker (LXC)

Развлекался намедни обновлением 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-stats

Reverse proxy

После миграции при работе через Nginx возникала плавающая 502, причём выглядела она интересно — на одном и том же ПК веб-морда могла открывать в одном браузере, и не открывать в другом. В логах:

upstream sent too big header while reading response header from upstream

Проблема решилась увеличением proxy buffers:

Отправить
Поделиться
Твитнуть