Using Pixelfed with S3-compatible storage

Hello, is anyone using Pixelfed with S3-compatible storage who could share their config? I’m using iDrive S3 but an example using anything similar (Minio etc) would be appreciated.

1 Like

What kind of example do you seek ?
How to configure it ?
Working examples with some specific software ?

It’s a Pixelfed issue rather than a Yunohost one, but it seems to be common to a lot of Fediverse apps. I should try it with Minio for increased relevance :slight_smile:

I got it working last night based on this issue at Pixelfed: No Preview Available using S3 storage · Issue #3802 · pixelfed/pixelfed · GitHub

This my working config:

## S3 Configuration (Post-Installer)
PF_ENABLE_CLOUD=true
FILESYSTEM_CLOUD=s3
AWS_ACCESS_KEY_ID=xxxx
AWS_SECRET_ACCESS_KEY=xxxxx
AWS_DEFAULT_REGION=LDN
AWS_BUCKET=bucket-name
AWS_URL=https://t0l6.c13.e2-4.dev/bucket-name
AWS_ENDPOINT=https://t0l6.c13.e2-4.dev
#AWS_USE_PATH_STYLE_ENDPOINT=false

I think iDrive is based on Minio. My bucket is set to Public and Read Only but ideally it would be Private, so I need to experiment with that. The thing that I struggled with was the URL and the endpoint. iDrive provides different endpoints for Public and Private buckets and I think the URLs are region based. The Horizon dashboard was very helpful in finding the problems.

1 Like

Could you elaborate ? I don’t really know how to use it ?

In the Admin Dashboard, it’s an entry towards the bottom. Horizon is the job manager and is a Laravel component. Horizon is the only thing I can see that logs to /var/log and that’s not very informative, but the dashboard is very useful. It shows job statuses and I looked at the Failed Jobs page, which shows the output of the code when a job (a new post in this case) doesn’t work properly. Tracking the errors in that pinned down where the problems were. Failed jobs can also be retried.

I’m impressed by how the application works as it doesn’t break if cloud storage is unavailable or misconfigured, but stores the images locally and still publishes the post, but there’s not a lot of documentation on that area, and that seems to apply to Mastodon and Calckey as well.

I’m experimenting with iDrive as they had a very cheap introductory offer and have decent bandwidth pricing, and it’s working out pretty well now I’ve worked out how it works.

Very interesting. We might document that somewhere.

1 Like

So I guess that’s your blog post ? Adding S3-compatible cloud storage to Pixelfed – Simon Greenwood :slight_smile:

1 Like

Did you enable cloud storage in the Admin UI ?
In my case the diagnosis tells me that PF_ENABLE_CLOUD is false, except if I tick that option in the Admin UI :thinking:

Yep, that’s me :slight_smile:

Could you give me an URL of any image storage from Pixelfed in that S3 service ? (remove the unique identifier :wink: )

I want to know if this is set up correctly in my case.

Yes, I set it in the .env but I assume it’s the same option in the control panel.

What’s strange is that it doesn’t work for me from the .env file.
I filed an issue : PF_ENABLE_CLOUD=true doesn't do anything : admin need to enable cloud storage from admin UI · Issue #4899 · pixelfed/pixelfed · GitHub

So it works for you. Very strange… What version are you using (the ynh package one) ?

Actually, I’ve since taken down the instance I set up, although I’m going to set one up again shortly. It was from the ynh package.

Dan seems to move pretty quickly with Pixelfed and I think he was talking about making improvements to the cloud storage code recently