Просыпаюсь утром, хочу поботанить математику, а утро встречает в телеге сообщением Андрея Дмитриева (это совладелец JUG Ru Group, мы раньше вместе работали, а теперь делаем подкаст Битовая Каска) о том, что наш NextCloud не работает, и он не может залить свежий выпуск подкаста. Найс утречко началось.
Традиционный постмортем.
Я всё починил, конечно. Похоже, нужно писать гайд о том, как содержать сайт подкаста 🙂 Как минимум чтобы самому его перечитывать, потому что все эти факты улетучиваются из памяти через 10 минут после решения проблемы.
Уточню: при этом сам сайт подкаста работает, ибо файлы раздаются через nginx и от админки никак не зависят. Я не совсем сумасшедший 🙂 ). Проблема только с админкой.
Итак, у меня включен автоматический апгрейд докеров до самой свежей версии (nextcloud:latest, wordpress:latest, итп в Докере). Они там обновляются по Крону раз во сколько-то времени, потому что руками я постоянно забываю это сделать. “Вы не можете обновиться через несколько мажорных версий NextCloud” говорит админка. Докерный образ проапгрейдился, но процедуру завершить не смог.
Первым делом я написал в телегу Паше Финкельштейну (он раньше был моим девелопер адвокатом), который тоже любит NextCloud, но он ничего доброго не подсказал.
Похоже, это какой-то баг – апгрейд идет с 22 версии на 23, это не “через версию”, как утверждает админка. Возможно, проблема в том, что это “23.0.0”, и эта нулевая версия 23-ей ветки еще не успела настояться и избавиться от багов 🙂
Я так и не смог проапгрейдиться. Хорошая новость в том, что NextCloud мы используем, по сути, для менеджмента всего нескольких директорий на диске. Я не обломлюсь создать эти директории заново вручную!
Оказалось, что это отличный момент для переноса всех файлов в отдельную директорию на отдельном виртуальном диске! К сожалению, свежие версии NextCloud не умеют в симлинки, поэтому старую директорию просто так не перенести. Свежую директорию пришлось прописывать в /etc/fstab и биндить хардлинком.
Забавно, что б-гомерзкий кэш в докере не подхватывает эту свежую диреткорию внутри внешнего волюма, поэтому пришлось докер с NextCloud полностью рестартнуть сразу после mount –bind.
Дальше я залогинился в интерфейс NextCloud и заресканил директории по их гайду о ручном переносе данных. К сожалению, OwnCloud хоть и увидел их в утилите рескана, но почему-то не добавил в индекс и соответственно, не обновил в интерфейсе.
Решается это так: заходим в интерфейс NextCloud и создаем директории с тем же путём, что уже существует на диске. Интерфейс ругается: “ой, директория уже существует!” и отменяет действие. Но добавляет в индекс и директория появляется в веб-интерфейсе – что и требовалось.
Но файлы в директориях всё равно не видно 🙂 Нужно еще раз залогиниться в контейнер и запустить утилиту для рескана. Вот тогда появляются и файлы.
Справедливости ради, NextCloud с командой из трёх с половиной землекопов, за последнюю пару лет добавил столько фич, сколько OneDrive со всем блядским штатом лучших в мире высокооплачиваемых погромистов Майкрософт – добавили за последние десять.
Вполне возможно, за это стоит немного пострадать пользователям. Само решение не тянуть за собой хвост совместимости в пользу быстрого каденса релизов с новыми фичами – имхо, очень круто. У разрабов NextCloud хватает смелости и твердости так делать, не обращая внимания на бесполезные вопли убитых и раненых 🙂
Add comment