github MbinOrg/mbin v1.9.0-rc1
v1.9.0 Release Candidate 1

pre-release12 hours ago

This is our v1.9.0 Release Candidate 1 (also known as a pre-release) of Mbin. This release includes security patches of upstream dependencies, documentation improvements, new features, bug fixes, design improvements, Docker improvements and so much more...

Comparison to previous stable version v1.8.4:

DB migrations New ENV vars Admin guide changes Suggest cache clearing New dependencies
☑️ ☑️ ☑️ ☑️ ☑️

I have 3 different summaries below. One for end-users, one for server admins, and finally a summary for Mbin developers.

Below the summaries you will find the upgrade instructions.

Summary for Users

This release contains numerous improvements and changes that we can't list everything here, so we'll stick to the highlights (in random order).

We enhanced security so that after a user changes their password or 2FA, all the current sessions of that user will be invalid and the user will need to log in again.

New combined frontpage, which means you see both microblogs and threads combined on the homepage.

We also introduced a new feature under general settings, where you can select "Who can send you a direct message" (defaults to everybody).

We added support for magazine banners in Mbin (which is also compatible with Lemmy Communities).

Mbin combines the thread form into just one form (instead of having article, link, and photo having a separate form). Mbin now also federates bans correctly (both incoming and outgoing bans).

Global mods can now manage (view, approve and/or deny) account signups. Global mods can now also receive signup notifications, which will also come with a new menu item in the drop-down menu.

Plus various other bug fixes and CSS layout improvements, too many to mention here.

Summary for Admins

Multiple Docker setup enhancements, we upgraded to Debian Trixie images. We also upgraded to use Node v24 (current LTS release) within our Mbin Docker images. Plus we added a new amqproxy service to the docker compose file. See upgrade instructions for Docker below for more info.

Mbin now comes with new moderation log filter capabilities.

We also documented Anubis setup for Mbin, setup is optional. However, Anubis could protect your server from DDoS attacks or other unwanted traffic towards your server.

Mbin now also has a command to rotate the private keys for one user or all the local users.

New environment variable is added: MBIN_USE_FEDERATION_ALLOW_LIST (default value: false) for in the .env file. We also added MBIN_NEW_USERS_NEED_APPROVAL (also default value: false) several months ago, in case you didn't added that variable yet. Although both variables are optional to add.

Finally, we upgraded several Composer dependency packages plus Symfony recipe updates as well as NPM package updates. So like always be sure to run: ./bin/post-upgrade to install all the updated Composer packages (on bare metal). Which should fix security vulnerabilities in our composer & npm depedency packages. And clear all caches.

Summary for developers

We extended and improved the getting started guide, documenting how to leverage dev containers to get started. Please follow the full "Docker as a dev server" guide if you wish to help with development.

We also created a new Fediverse developer page that lists all our ActivityPub messages.

Upgrade Instructions

For Docker

Changes to Docker compose.yaml file (ATTENTION!)

Take a look at the latest compose.yaml file and compare it with your local version:

  1. We added a new amqproxy service, do not forget to add depends_on amqproxy. AMQProxy will improve performance and reduce TCP overhead of the AMQ protocol, used by RabbitMQ.
  2. After that, you will need to update your .env file to use the host amqproxy:5673 (instead of rabbitmq:5672) in your MESSENGER_TRANSPORT_DSN variable.
  3. We upgraded the Debian version used in the Docker images from bookworm to trixie.

Docker Instructions

  1. Get the official image or check out the code and build it locally
  2. Stop all containers docker compose down
  3. Start all containers docker compose up -d
  4. Since the Debian version of the PostgreSQL Docker image was upgraded, you will need to run the command below to get rid of the "collation version mismatch" warning. Note that re-indexing your entire database could take a very long time, depending on the size of your database.
docker compose exec -it postgres psql mbin mbin -c \
'REINDEX DATABASE mbin; ALTER DATABASE mbin REFRESH COLLATION VERSION;'

For Bare Metal

Admin guide changes (ATTENTION!)

  1. For Bare Metal admins, we advise you to look into the RabbitMQ APT sources, since the RabbitMQ team changed their APT repositories recently. Be sure to update your rabbitmq.list file accordingly.
    If you applied the latest change by running the commands mentioned in the guide, be sure to run the APT update command as well as the APT install/upgrade command for the rabbitmq-server package.
    In case of an upgrade, you will need to enable all feature flags after the rabbitmq-server upgrade by executing the following command: sudo rabbitmqctl enable_feature_flag all.
  2. We now documented AMQProxy (in case you are not yet using AMQProxy). We strongly advise to install & run AMQProxy (follow this guide) after that you will also need to update the .env file by changing the MESSENGER_TRANSPORT_DSN.
    You will need to update the default RabbitMQ port (5672) to the AMQProxy port of 5673 (keep the rest of the MESSENGER_TRANSPORT_DSN the same, only change the port number).
    In case you have AMQProxy configured and made your changes to the .env file, always remember to run: ./bin/post-upgrade command (which will also execute composer dump-env prod for you).
  3. The set_permission command was not correctly documented, please run the following command: sudo rabbitmqctl set_permissions -p / mbin ".*" ".*" ".*" (change mbin to kbin user in case you your rabbitmq user is called kbin).
    Then monitor your messenger logs and if you still experience "channel error: 404" or "message: NOT_FOUND" errors on one or more queues (you will see errors messages if that is the case every ~10 minutes), we recommend removing that queue manually (eg. via the RabbitMQ Web interface). Mbin will then automatically recreate the missing queue with the correct permissions again.
  4. Finally, we also changed some php.ini configurations, by mainly increasing the memory_limit to 512MB. If you have sufficient RAM available, you can decide to increase the memory limit if you wish (this limit is per child). Again, this is optional but can be part of better fine-tuning of your server, which heavily depends on your server resources.

Bare metal Instructions

  1. Login as the mbin/kbin user: su mbin
  2. Go to your repo cd /var/www/mbin
  3. Get the new release: git fetch && git checkout v1.9.0-rc1
  4. Run the update script: bash bin/post-upgrade.
  5. Run exit so we are back at the root user (or put a sudo in front of every command)
  6. Clear your opcache by reloading php fpm systemctl restart php8.4-fpm (or for PHP 8.3: systemctl restart php8.3-fpm)
  7. Restart the messengers: supervisorctl restart messenger:*

What's Changed

New Contributors

Full Changelog: v1.8.4...v1.9.0-rc1

Don't miss a new mbin release

NewReleases is sending notifications on new releases.