Pixelfed - Critical Community Update

Pixelfed - Critical Community Update

TLDR

We have removed our Pixelfed builds from our Docker registry and will no longer be maintaining builds of Pixelfed. The Pixelfed dependencies are such that we cannot provide a good deployment path for our users. Espeically not a path that's low friction or officially supported by upstream projects.

Background

A few months ago a few of our community members asked if Pixelfed could be added to the list of Docker containers we build. After quickly reviewing the requirements for running Pixelfed (at that time) we setup builds. Pixelfed is a PHP app and we've had good success with PHP applications in the past.

The builds were active for a couple months but we did not receive any feedback until this week.

This week we were helping a user prep a Pixelfed deployment and discovered the following:

  • Pixelfed only officially supports MySQL as a database
  • MySQL only supports x86-64 CPUs (e.g. Intel/AMD)
  • MariaDB may work per the Pixelfed GitHub issue tracker (it's an alternative to MySQL that's usually 1:1 compatible)
  • MariaDB does not support arm7l / armhf / arm32v7 per the official MariaDB website
  • Raspbian (for Raspberry Pi) is still 32bit only
  • Ubuntu has a very early beta 64bit release available for Raspberry Pi 3b and 3b+ models but it is not recommended for production deployments

This puts us in a difficult position...

The Conundrum

We have a growing community of Raspberry Pi 3b and 3b+ users. These users are running Rasbian which is a 32bit Debian distribution (arm32) at its core. Our more technical users are somewhat inclined to try new things even if it means mild breaks in their setup but it's not preferred. A 64bit beta Ubuntu would be OK for some of our more technical users, but it's not something we'd want to broadly recommend at this time.

šŸ¤”

We can ask our Raspberry Pi users to deploy a beta Ubuntu release that's 64bit so they can deploy MariaDB but at the same time MariaDB isn't officially supported by Pixelfed. It should work but we'd prefer not to be triage for Pixelfed MariaDB compatibility bugs that may surface.

We also do not like recommending our users deploy a beta operating system in order to only half resolve the dependency Pixelfed has on MySQL. It'd only be half solved because MariaDB should work but it's not guaranteed.

That's A Lot of Should and Beta

As developers and community managers we don't like to tell our users "it should work" while also giving them a stack of things to try that aren't fully supported, aren't known-stable and similar. Software is rarely stable to begin with and adding entropy to a software stack isn't generally a good choice.

We also have a number of users who prefer to avoid technical minutae. Getting Pixelfed deployed on a Lollipop Cloud device, especially a Raspberry Pi, is going to be full of technical minutae at this time. We also have users with devices that have 32bit CPUs. These boards cannot run Pixelfed's database options in any supported form at present, beta or otherwise.

As such, we cannot recommend deploying Pixelfed to our users and community.

Going Forward

We have archived our build processes, code and existing containers. Our build scripts will remain in our code repository under the lollipop-archive organization for those who may want to remix our existing work. The existing containers have been saved to non-public storage and our build jobs have been archived within Jenkins.

We will keep an eye on Pixelfed going forward. If the database dependency problem is properly resolved, we are willing to re-visit adding it to our offerings. However, until the dependency tree works with official support for our users we will not be offering Pixelfed or recommending it to our community and users.