Обновление с 1.0.x
Новый образ ставится поверх того же тома: данные, токены и выданные ссылки сохраняются. Но три вещи для тех, кто стоит на 1.0.x, меняются.
Что остаётся как было
- Том — тот же путь
/var/lib/s5wи та же раскладка внутри. - PostgreSQL — та же мажорная версия 18,
pg_upgradeне нужен. - Схема базы — без изменений, новых миграций нет.
WINTER_KEY— читается из того же.runtime_secrets, временные ссылки остаются рабочими.- Токены — хеш считается так же, выпущенные токены продолжают работать.
- Клиентский API и раздача — контракты
/v1,/o,/p,/tне менялись.
Что меняется
Панель — на отдельном порту
Старая панель на :9090/admin удалена, новая работает на 9091. Опубликуйте порт
(-p 9091:9091) или заведите для неё отдельный домен на прокси. Старый адрес отвечает
404.
После обновления в панель нужно войти заново: она на другом адресе, старая кука туда не дойдёт.
Admin API по умолчанию локальный
Раньше /admin/… на 9090 был доступен снаружи. Теперь при включённой панели он
отвечает снаружи 404. Если скрипты обращаются к нему извне, верните прежнее поведение:
-e ADMIN_API=publicКод — в /app
Код приложения в контейнере теперь лежит в /app, а не в /var/www/html. Это касается
только тех, кто монтирует дерево исходников: ./:/var/www/html/ → ./:/app/.
Готового образа это не касается.
Время в ответах — RFC 3339
Все отметки времени теперь в одном формате: 2026-11-08T17:10:44+00:00. Раньше их было три —
2026-11-08 17:10:44 +00:00 у только что созданных объектов и 2026-11-08 17:10:44+00 (иногда с
долями секунды) у прочитанных из базы. Если клиент разбирал время своим шаблоном под формат с
пробелом, его нужно поправить; стандартные функции разбора дат (new Date(),
DateTimeImmutable, datetime.fromisoformat) новый формат понимают сами.
Мелочи
TRUSTED_PROXIESпо умолчаниюprivate. За прокси в частной сети блокировка входа после неудачных попыток теперь считается по реальному адресу клиента, а не по адресу прокси.sha256вместе с опциями обработки картинки. РаньшеPOST /v1/uploadsс хешем находил исходник в бакете и создавал файл без обработки. Теперь такая загрузка идёт обычным путём и возвращает обработанный файл.