[SOLVED] Lemmy "server error" when pict-rs is not running
[SOLVED] Lemmy "server error" when pict-rs is not running
There are a few reasons why pict-rs might not be running, upgrades being one of them. At the moment the whole of lemmy UI will crash and burn if it cannot load a site icon. Yes, that little thing. Here's the github issue.
To work around this I have set the icon and banner (might as well since we're working on this) to be loaded from a local file rather than nginx.
Here's a snippet of nginx
config from the server
block:
undefined
location /static-img/ { alias /srv/lemmy/lemmy.cafe/static-img/; # Rate limit limit_req zone=lemmy.cafe_ratelimit burst=30 nodelay; # Asset cache defined in /etc/nginx/conf.d/static-asset-cache.conf proxy_cache lemmy_cache; }
I have also included the rate limitting and cache config, but it is not, strictly speaking, necessary.
The somewhat important bit here is the location
- I've tried using static
, but that is already used by lemmy itself, and as such breaks the UI. Hence the static-img
.
I have downloaded the icon and banner from the URLs saved in the database (assuming your instance id in site
is, in fact, 1):
undefined
SELECT id, icon, banner FROM site WHERE id = 1; id | icon | banner ----+----------------------------------------------+------------------------------------------------ 1 | https://lemmy.cafe/pictrs/image/43256175-2cc1-4598-a4b8-2575430ab253.webp | https://lemmy.cafe/pictrs/image/c982358f-6a51-4eb6-bf0e-7a07a756e600.webp (1 row)
I have then saved those files in /srv/lemmy/lemmy.cafe/static-img/
as site-icon.webp
and site-banner.webp
.
Changed the ownership to that of nginx (www-data
in debian universe, http
and httpd
in others.
I have then updated the site table to point to the new location for icon
and banner
:
undefined
UPDATE site SET icon = 'https://lemmy.cafe/static-img/site-icon.webp' WHERE id = 1; UPDATE site SET banner = 'https://lemmy.cafe/static-img/site-banner.webp' WHERE id = 1;
Confirm it got applied:
undefined
SELECT id, icon, banner FROM site WHERE id = 1; id | icon | banner ----+----------------------------------------------+------------------------------------------------ 1 | https://lemmy.cafe/static-img/site-icon.webp | https://lemmy.cafe/static-img/site-banner.webp (1 row)
That's it! You can now reload your nginx server (nginx -s reload
) to apply the new path!