Skip to content

Releases: MbinOrg/mbin

v1.10.0

Choose a tag to compare

@blued-gear blued-gear released this 15 Jun 18:51
6ee7918

This is the full release of version 1.10.
It includes new features for users and admins, bug fixes, performance fixes and some breaking changes of the REST API.

Comparison to previous stable version v1.9.0:

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

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

Summary for Users

  • Add support for lists of keyword filters of content; they can be scoped to content, comments and profile-overviews and can have an expiration-date
  • Show the custom title of users and add the option to set one for yourself
  • Add the option to also show content which was boosted by people you follow in the Combined view
  • Pagination is now done by "anchors" (like that date of the last thread on the page) instead of page-numbers, to improve performance
  • Add an indicator when a user has their "cake day"
  • Fix search not returning most of Lemmy users and magazines
  • Fix the search when searching content, users or magazines by their URL
  • The date field of the search form now has a preset value
  • Small UI improvements to make the elements of posts and threads more consistent (the layout for posts in Combined view can be toggled in the UI settings)
  • Prevent opening a thread or post when touching interactive elements (buttons, spoilers, ...) on mobile
  • Suppress notification for added content if it is more than two days old (for example after delayed federation)
  • Fix infinite scrolling of comments
  • Fix reply button for comments on locked threads and posts not being disabled

Summary for Server Admins

  • Introduces monitoring: record a variety of metrics and show statistics what causes performance-issues on your server
  • Uploaded images now get compressed to fit the size limit (see the docs)
  • Cached images can be removed with a command
  • A new command for deleting orphaned media
  • Extend the "check duplicate magazines" command to find and delete duplicate users in the database (which might block DB migrations)
  • Make the language of fulltext-search configurable (see the docs)
  • Fix list of inactive users always being empty

Tip about the Messengers

As the load of deliveries can get high from time to time it is now recommended to run at least one separate messenger process for the Deliver queue.

Summary for developers

Mbin:

  • PHP updated to 8.4
  • Symfony updated to 7.4
  • Some dependencies updated

App:

  • New API endpoints to retrieve content, boosts and list moderated magazines of a user
  • New or extended API endpoints listing who liked and boosted content
  • New API endpoints for managing mod and owner requests of magazines
  • Get Combined feed for magazine (/api/magazine/{magazine_id}/combined[/v2])
  • Get chat messages of specific user (/api/users/{user_id}/messages)
  • Get content for a Tag (/api/tag/{name}/[entries|entryComments|post|postComments])
  • Add filter 'abandoned' for /api/magazines
  • New OAuth permissions
  • Breaking API changes:
    • Schema of the DTO for notifications on user signup
    • /api/combined/{collectionType} changed from PUT to GET
    • Reworked response of the search API

Fediverse:

  • Fix federation issues of some activities by adding the published property to the Instance actor
  • Fix federation of link+image threads to Lemmy
  • Send Delete activities to all known instances (instead of only ones the user interacted with)
  • Honor the "application/ld+json" type in endpoint requests
  • Periodic updates of user actors will also update their username
  • Fix parsing of actors from PeerTube
  • Treat as:Public or just Public correctly
  • Fix support for image property on Page type, add support for string

Upgrade Instructions

For Docker

  1. Get the official image or checkout the code and build it locally
  2. Stop all containers docker compose down
  3. Start all containers docker compose up -d

For Bare Metal

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

Warning

Executing the migrations might fail. If that is the case and the error message says something like "Unique violation: 7 ERROR: could not create unique index [...]", we prepared a command to fix these duplications.
Bare metal (as the mbin/kbin user): php bin/console mbin:check:duplicates-users-magazines
Docker: docker compose exec php php bin/console mbin:check:duplicates-users-magazines
This command will start a guided tour to delete all duplicated users.

What's Changed

Read more

v1.10.0-rc2

Choose a tag to compare

@blued-gear blued-gear released this 07 May 21:27
0fb474f

This is the second release candidate for the upcoming 1.10 release.
It contains mostly bugfixes and small improvements.

Comparison to previous stable version v1.10.0-rc1:

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

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

Summary for Users

  • added an option to use the old layout for posts in Combined view
  • boosted content in Combined feed will only be included if sorted by newest
  • user titles will ignore special Unicode characters
  • fix infinite scrolling of comments
  • disable reply button for comments on locked threads and posts
  • better layout for thread comments in Combined view

Summary for Server Admins

  • fix mbin:images:remove-remote command

Summary for developers

Mbin:

  • updated some dependencies

App:

  • new API endpoints for
    • get Combined feed for magazine (/api/magazine/{magazine_id}/combined[/v2])
    • get chat messages of specific user (/api/users/{user_id}/messages)
    • get content for a Tag (/api/tag/{name}/[entries|entryComments|post|postComments])

Fediverse:

  • Treat as:Public or just Public correctly
  • Fix support for image property on Page type, add support for string

Upgrade Instructions

For Docker

  1. Get the official image or checkout the code and build it locally
  2. Stop all containers docker compose down
  3. Start all containers docker compose up -d

For Bare Metal

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

Warning

Executing the migrations might fail. If that is the case and the error message says something like "Unique violation: 7 ERROR: could not create unique index [...]", we prepared a command to fix these duplications.
Bare metal (as the mbin/kbin user): php bin/console mbin:check:duplicates-users-magazines
Docker: docker compose exec php php bin/console mbin:check:duplicates-users-magazines
This command will start a guided tour to delete all duplicated users.

What's Changed

Full Changelog: v1.10.0-rc1...v1.10.0-rc2

v1.10.0-rc1

Choose a tag to compare

@blued-gear blued-gear released this 16 Apr 07:43
479c643

This is the first release candidate for the upcoming 1.10 release.
As some parts of the UI/UX and admin features were notably changed, we decided for the RC to get more widespread feedback.
It includes new features for users and admins, bug fixes, performance fixes and some breaking changes of the REST API.

Comparison to previous stable version v1.9.0:

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

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

Summary for Users

  • Add support for lists of keyword filters of content; they can be scoped to content, comments and profile-overviews and can have an expiration-date
  • Show the custom title of users and add the option to set one for yourself
  • Add the option to also show content which was boosted by people you follow in the Combined view (still needs polishing)
  • Pagination is now done by "anchors" (like that date of the last thread on the page) instead of page-numbers, to improve performance
  • Add an indicator when a user has their "cake day"
  • Fix search not returning most of Lemmy users and magazines
  • Fix the search when searching content, users or magazines by their URL
  • The date field of the search form now has a preset value
  • Small UI improvements to make the elements of posts and threads more consistent
  • Prevent opening a thread or post when touching interactive elements (buttons, spoilers, ...) on mobile
  • Suppress notification for added content if it is more than two days old (for example after delayed federation)

Summary for Server Admins

  • Introduces monitoring: record a variety of metrics and show statistics what causes performance-issues on your server
  • Uploaded images now get compressed to fit the size limit (see the docs)
  • Cached images can be removed with a command
  • A new command for deleting orphaned media
  • Extend the "check duplicate magazines" command to find and delete duplicate users in the database (which might block DB migrations)
  • Fix list of inactive users always being empty

Summary for developers

Mbin:

  • PHP updated to 8.4
  • Symfony updated to 7.4

App:

  • New API endpoints to retrieve content, boosts and list moderated magazines of a user
  • New or extended API endpoints listing who liked and boosted content
  • New API endpoints for managing mod and owner requests of magazines
  • Add filter 'abandoned' for /api/magazines
  • New OAuth permissions
  • Breaking API changes:
    • Schema of the DTO for notifications on user signup
    • /api/combined/{collectionType} changed from PUT to GET
    • Reworked response of the search API

Fediverse:

  • Fix federation issues of some activities by adding the published property to the Instance actor
  • Fix federation of link+image threads to Lemmy
  • Send Delete activities to all known instances (instead of only ones the user interacted with)
  • Honor the "application/ld+json" type in endpoint requests
  • Periodic updates of user actors will also update their username
  • Fix parsing of actors from PeerTube

Upgrade Instructions

For Docker

  1. Get the official image or checkout the code and build it locally
  2. Stop all containers docker compose down
  3. Start all containers docker compose up -d

For Bare Metal

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

Warning

Executing the migrations might fail. If that is the case and the error message says something like "Unique violation: 7 ERROR: could not create unique index [...]", we prepared a command to fix these duplications.
Bare metal (as the mbin/kbin user): php bin/console mbin:check:duplicates-users-magazines
Docker: docker compose exec php php bin/console mbin:check:duplicates-users-magazines
This command will start a guided tour to delete all duplicated users.

What's Changed

Read more

v1.9.1

Choose a tag to compare

@BentiGorlich BentiGorlich released this 09 Feb 14:47
82e65d1

This is our v1.9.1 stable release of Mbin. This release includes bug fixes, performance improvements, ActivityPub compatibility improvements, thread and microblog locking, usability improvements and more...

Comparison to previous stable version v1.9.0:

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

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

Summary for Users

  • Improve the RSS feeds: they should be faster, you can also get a combined feed of threads and microblogs now
  • The search should be a lot faster now and you can also search for magazines and users by their URL again (previously you could only search for their handle)
  • Likes, dislikes and boosts of Mastodon posts can now be extracted, however Mastodon does not sent us updates if these values change
  • We added a discoverability setting for users and magazines. This setting is activated by default. If disabled you and your content cannot be found by searching and do not appear on /all
  • Fix comments from Mastodon posts not appearing
  • Threads and microblogs can now be locked
  • The combined view should look more coherent. We adjusted the way microblog posts are displayed in this view
  • The notification switches now have a tooltip
  • We added an indexable setting for users and magazines. This setting is also activated by default. If disabled, search engines are advised to not index the corresponding threads and microblogs. Because you can only set this on a page to page basis and your comments appear on the page of threads or microblogs, the indexability of comments is dependent on the thread or microblog you're commenting on
  • The random magazine is now pre-selected when creating a microblog
  • Each magazine has a Tags page in which moderators of the magazine can set the hashtags by which microblogs are put in this magazine. Previously we used the name as a tag as well, without telling the user and without a way to disable it. We now add the name of each magazine to its tags page to make this behavior clear and to provide a way to disable it. When creating a magazine, we added a checkbox to add the name as a hashtag
  • Infinite scroll is now working on the search page and the profile pages
  • The magazine rules field is now officially deprecated. If a magazine currently has this field populated, it will still be editable, otherwise this field is removed. It will be removed in the future, as there is not a good way to federate this field to other servers. At the moment we just append it to the description with a ### Rules in front of it

Summary for Server Admins

  • Signup notifications should be created correctly again. We previously introduced a bug preventing these notifications from being sent
  • Add some problematic paths to the robots.txt, which should result in fewer hits by crawlers (like, dislike, boost, search, ...)
  • We removed some indexes from the DB which should result in some size savings
  • We also added some missing indexes, which resulted in some performance hits. If you run in any conflicts, we created a command to fix errors for duplicate users or magazines (see documentation)
  • We reduced the amount of requests to other instances in the background jobs -> should run faster

Summary for developers

Mbin:

  • Improve CI by just doing nothing in some actions if there are no relevant files changes -> the required actions still run, they just don't do anything

App:

  • The subject of the magazine log API is now correctly set in case of a pinned, unpinned, banned, unbanned, moderator add and moderator removed "events". The documentation should reflect that now. See #1951
  • When supplying a rules value in the MagazineUpdateApi, but the magazine did not already have rules defined, the API will throw an error, because this field is now deprecated
  • There are new endpoints to lock a thread and a microblog post
  • There also are new OAuth scopes for locking and we added a missing one for pinning microblog posts

Fediverse:

  • Having a single URL instead of an array of URLs in the to and cc field are now supported. JSON-LD allows this for array fields
  • Like Activities use the magazine id instead of followers collection in the to field
  • We no longer include the activity streams namespace twice (once in the @context and once in the /context.json)

Upgrade Instructions

For Docker

  1. Get the official image or checkout the code and build it locally
  2. Stop all containers docker compose down
  3. Start all containers docker compose up -d

For Bare Metal

  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.1
  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:*

Warning

Executing the migrations might fail. If that is the case and the error message says something like "Unique violation: 7 ERROR: could not create unique index [...]", we prepared a command to fix these duplications.
Bare metal (as the mbin/kbin user): php bin/console mbin:check:duplicates-users-magazines
Docker: docker compose exec php php bin/console mbin:check:duplicates-users-magazines
This command will start a guided tour to delete all duplicated users or magazines. If you are unsure, you can just run it twice: once for magazines and once for users

What's Changed

Read more

v1.9.0

Choose a tag to compare

@melroy89 melroy89 released this 14 Dec 15:58
4fb5fb7

This is our v1.9.0 stable release of Mbin. This release includes security patches of upstream dependencies, documentation improvements, various performance improvements, new features, bug fixes, design improvements, Docker improvements and so much more...

Comparison to previous stable version v1.8.4 (ignoring the previous RC releases):

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

We 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. Please read the instructions very carefully, since we did introduce backwards incomparable changes.

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.

A new combined front page. You could make the combined front page the default in your profile settings. Which means you see both threads and microblogs 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, ban notification fixes, and too many other fixes to mention here.

Summary for Server 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.

We now added two different server settings:

  • Restrict "Random Threads/Posts" sidebar sections to local only
  • Restrict "Active people" sidebar section to local only

The first option has been known to cause SQL performance issues (we recommended NOT enabling this first option), hence we gave you the two options. The second option shows local only active users, which does NOT impact performance (so feel free to enable that option if you wish).

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.

We renamed an existing environment variable: MAX_IMAGE_BYTES to: MBIN_MAX_IMAGE_BYTES, please rename the variable if you have set it. On top of that we also added a new environment variable: 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. See the latest .env.example file.

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.
  4. We renamed MAX_IMAGE_BYTES to MBIN_MAX_IMAGE_BYTES in the .env file. Please change this variable in case you are using it.

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 commands 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;'
docker compose exec -it postgres psql mbin mbin -c '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. 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.
  5. We also updated the Setup Supervisor section of the documentation. You can save storage and reduce disk I/O by adding stdout_logfile=NONE and redirect_stderr=true to your supervisor messenger-worker.conf file. Because most of the messages will be logged to the Mbin production log as well.
  6. Finally, we renamed MAX_IMAGE_BYTES to MBIN_MAX_IMAGE_BYTES in the .env configuration. Please rename the variable as well in case you use it.

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
  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 restar...
Read more

v1.9.0 Release Candidate 3

Pre-release

Choose a tag to compare

@melroy89 melroy89 released this 07 Dec 22:34
769ce19

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

Comparison to previous stable version v1.8.4 (ignoring the previous RC1 and RC2 releases):

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

We 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. Please read the instructions very carefully, since we did introduce backwards incomparable changes.

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.

A new combined front page. You could make the combined front page the default in your profile settings. Which means you see both threads and microblogs 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, ban notification fixes, and too many other fixes to mention here.

Summary for Server 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.

We now added two different server settings:

  • Restrict "Random Threads/Posts" sidebar sections to local only
  • Restrict "Active people" sidebar section to local only

The first option has been known to cause SQL performance issues (we recommended NOT enabling this first option), hence we gave you the two options. The second option shows local only active users, which does NOT impact performance (so feel free to enable that option if you wish).

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.

We renamed an existing environment variable: MAX_IMAGE_BYTES to: MBIN_MAX_IMAGE_BYTES, please rename the variable if you have set it. On top of that we also added a new environment variable: 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. See the latest .env.example file.

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.
  4. We renamed MAX_IMAGE_BYTES to MBIN_MAX_IMAGE_BYTES in the .env file. Please change this variable in case you are using it.

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. 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.
  5. We also updated the Setup Supervisor section of the documentation. You can save storage and reduce disk I/O by adding stdout_logfile=NONE and redirect_stderr=true to your supervisor messenger-worker.conf file. Because most of the messages will be logged to the Mbin production log as well.
  6. Finally, we renamed MAX_IMAGE_BYTES to MBIN_MAX_IMAGE_BYTES in the .env configuration. Please rename the variable as well in case you use it.

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-rc3
  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 res...
Read more

v1.9.0 Release Candidate 2

Pre-release

Choose a tag to compare

@melroy89 melroy89 released this 30 Nov 15:31
c9bdbfa

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

Comparison to previous stable version v1.8.4 (ignoring the previous RC1):

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

We 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. Please read the instructions very carefully, since we did introduce backwards incomparable changes.

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.

A new combined front page. You could make the combined front page the default in your profile settings. Which means you see both threads and microblogs 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, ban notification fixes, and too many other fixes 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.

We now added two different server settings:

  • Restrict "Random Threads/Posts" sidebar sections to local only
  • Restrict "Active people" sidebar section to local only

The first option has been known to cause SQL performance issues (we recommended NOT enabling this first option), hence we gave you the two options. The second option shows local only active users, which does NOT impact performance (so feel free to enable that option if you wish).

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.

We renamed an existing environment variable: MAX_IMAGE_BYTES to: MBIN_MAX_IMAGE_BYTES, please rename the variable if you have set it. On top of that we also added a new environment variable: 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. See the latest .env.example file.

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.
  4. We renamed MAX_IMAGE_BYTES to MBIN_MAX_IMAGE_BYTES in the .env file. Please change this variable in case you are using it.

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. 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.
  5. We also updated the Setup Supervisor section of the documentation. You can save storage and reduce disk I/O by adding stdout_logfile=NONE and redirect_stderr=true to your supervisor messenger-worker.conf file. Because most of the messages will be logged to the Mbin production log as well.
  6. Finally, we renamed MAX_IMAGE_BYTES to MBIN_MAX_IMAGE_BYTES in the .env configuration. Please rename the variable as well in case you use it.

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-rc2
  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

  • Fix A logged in user is required to resolve the authorization requ...
Read more

v1.9.0 Release Candidate 1

Pre-release

Choose a tag to compare

@melroy89 melroy89 released this 16 Nov 17:14
9d7434e

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

Read more

v1.8.4

Choose a tag to compare

@BentiGorlich BentiGorlich released this 07 Sep 12:55
d6f8a74

This is our v1.8.4 release of Mbin. It includes one very important security patch and some improvements to the API and the handling of dead instances.

Comparison to previous stable version v1.8.3:

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

Upgrade Instructions

For Docker

  1. Get the official image or checkout the code and build it locally
  2. Stop all containers docker compose down
  3. Start all containers docker compose up -d

For Bare Metal

  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.8.4
  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

Full Changelog: v1.8.3...v1.8.4

v1.8.3

Choose a tag to compare

@BentiGorlich BentiGorlich released this 28 Jul 12:19
aab5bb6

This is our release v1.8.3. We did a lot of changes to our activity pub code and started to add testing of it. We did a lot of improvements on the UI and added more options for the user. Finally, we also improved the search and added an emoji picker. But we did even more, which you can check out down below.

Comparison to previous stable version v1.8.2:

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

Upgrade Instructions

For Docker

  1. Get the official image or checkout the code and build it locally
  2. Stop all containers docker compose down
  3. Start all containers docker compose up -d

For Bare Metal

  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.8.3
  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. flush your redis db by running redis-cli, type in AUTH [YOUR PASSWORD] and then FLUSHDB
  7. clear your opcache by reloading php fpm systemctl restart php8.4-fpm (or for PHP 8.3: systemctl restart php8.3-fpm)
  8. Restart the messengers: supervisorctl restart messenger:*

What's Changed

Read more