Friendica на власному сервері
Придбав дешевий VPS за 9 доларів на рік. Останні дні розбирався з його налаштуваннями, я все таки розробник, а не девопс чи сисадмін, тому доводьтеся багато часу витрачати на мануали та вирішувати базові помилки, котрі сам же і зробив :)
Зате, переніс мій сервер Friendica whitelion.me з Москви до Атланти. Ще менше зв'язків з РФ, а то взагалі неспокійно було зберігати копію моїх повідомлень з соцмереж там...
Хоча с оновленнями Friendica довелося повозитися також, але тепер процес налагодив.
Деплой з GitHub
Легко та швидко тепер можу модифікувати потрібне мені в коді на GitHub й одразу відправляти на сервер.
Згодом можливо деякі мої виправлення запропоную в основний репозиторій. Поки не має досвіду в контрибуції до опенсорсних проектів.
Оновлення інстансу
Оновив мій інстанс Friendica - як завжди, не без проблем. Спочатку оновлення зависло, бо падало через те що намагалося оновити контакт з ID 0, а оновляти контакти с нульовим ID заборонено в коді. Перевірку на 0 в коді прибрав. В минулому системний контакт створювався з айді 0, але можливо в міграції якогось оновлення його прибрали, але вона напевно у мене провалилася на інстансі. Потім зображення припинили вантажитися, бо плагін, що працює зі сховищем AWS, почав вимагати щоб регіон обов'язково був заданий. А у мене регіон за замовчуванням був - після оновлення це стало порожнім рядком. Весело з опенсорсом - прокачує навички. Тому і обрав хостити інстанс децентралізиваної соцмережі на мові програмування котру знаю.
Боти й автопостинг
Після оновлення Friendica ще виявилося, що автоматичний постинг в інстанс припинив працювати. У логах був лише код помилки 403 - довелося міняти код логування щоб окрім коду був текст. Виявилося, що боти забанені, бо після оновлення плагіна, що блокує ботів, він почав блокувати HTTP-бібліотеки, що шлють запити. А я чесно таку бібліотеку використовую та не підміняю user-agent. В налаштуваннях плагіна вимкнув блокування бібліотек - допомогло. Це було б швидше якби в логах від початку писався текст помилки.
Перенесення сховища на Cloudflare R2
Перевів сховище Friendica з Amazon S3 на Cloudflare R2 - і тут не без пригод. Бібліотека від Akeeba, що працює з сумісними з S3 сховищами, використовує підписи версії 2 для всього окрім Amazon, а Cloudflare підтримує лише версію 4. Довелося в коді виправити 2 на 4 для не амазонівського - запрацювало. Дивно, ща автори бібліотеки в коментарях пишуть, що їх реалізація підписів версії 4 сумісна лише з Amazon, хоча зараз на практиці перевірив, що з Cloudflare працює. Створити Issue в GitHub бібліотеки?
Сховище Cloudflare R2 створилося у Східній Європі, коли інстанс Friendica живе у VPS на сході США - треба спробувати ще раз перенести Friendica на шаред-хостинг у Німеччині.
Категорії та визначення мови
Зарився чому після торічного оновлення Friendica категорія до повідомлень припинила додаватися, коли раніше достатньо було параметру category. Причину не знайшов, але знайшов у коді, що для додавання категорії вона повинна бути задана в кутових дужках в параметрі file. Не очевидно та не звертав увагу на таке в документації.
Заодно наткнувся на код, що детектить мову повідомлення. Виявляється, якщо повідомлення коротке, то до нього додається опис профіля та тоді визначається мова повідомлення. Ось чому у мене всі короткі повідомлення у властивостях мають англійську мову - у мене біо у Friendica англійською написане. Оригінальний метод визначення мови коротких повідомлень)