Snikket Server - July 2024 release

Posted by The Snikket Team on July 18 2024

We’re happy to introduce the July 2024 Snikket Server release.

This is the core software of the Snikket project - a self-hostable “personal messaging server in a box”. If you wish for something like Messenger, WhatsApp or Signal, but not using their servers, Snikket is for you. Once deployed, you can create invitation links for family, friends, colleagues… any kind of social group is a good fit for Snikket. The invitation links walk people through downloading the Snikket app and joining your private Snikket instance.

What’s new in this release?

Web portal

We’ve made some improvements to the admin dashboard, particularly around the management of invitations.

Role selection

Snikket supports roles, so that you can control who has access to admin functions, but also who you may want to restrict from accessing some functions (guests, kids, etc.).

Previously, all invited users would be assigned the default user role when they created their account. If you wanted the person to be an admin, or more importantly, a limited user, you would have to scramble to the dashboard to update their role after they registered.

Now you can select the desired role when you create the create the invitation:

Comments

Another piece of feedback we had, was that after creating a bunch of invitations, it was sometimes awkward to remember what a particular invitation was meant for. Now you can add a brief note to an invitation when you create it. This is for your information only, the invited user will not see what you write, but you and other admins can see it when you view the list of pending invitations.

Sharing

After you have made your invitation, the next step is almost always to send it to the person you want to invite. Currently we have a feature to help you copy the link to your clipboard, so you can paste it into an email or text message, or whatever. But some platforms offer a built-in “share” functionality:

New setup guidance

We’ve added some hints to nudge people in the right direction when they might need it. For example, if you have no other users on the instance yet, we will show a link to the invitation section so people can get their friends, family and whoever on board.

Relatedly, we now show the number of active user accounts on the instance in the admin dashboard. This will be especially useful as we work towards features to (optionally) allow non-admins to invite people to an instance.

Privacy and security

A couple of tweaks in this release:

Snikket will no longer send a delivery error to someone you have blocked when they send you a message. This makes it harder for them to detect that you have blocked them (vs. just not reading their messages).

We also updated the security headers sent by our web dashboard, and removed the server version header from the web frontend. While not really a privacy/security issue in itself, it’s simply nobody else’s business!

For admins

We now support configuring the primary port used for STUN/TURN communication. This is sometimes necessary if you are using an external TURN service that uses a different port. Even if you are using Snikket’s built-in TURN server, it can be used to avoid port conflicts.

Snikket now supports deployment with International Domain Names (IDN). This means that domains containing certain special characters should now work, while previously some functionality was a bit buggy when using one of these domains. If you encounter any issues, please let us know! Also note that this only works for self-hosted installations right now, IDN is not yet supported by our hosting service.

The “announcement” functionality has been updated in this release. This is mostly invisible, though we plan to expand this functionality in the future. For now you will mostly benefit from the Snikket logo and the server name accompanying the update notification messages you receive, and when an admin sends announcements via the admin dashboard.

Obtaining certificates should be a bit more robust since this release (that is, going from something like 99% reliability to 99.9% reliability). We noticed that occasionally certain temporary errors from Let’s Encrypt were not handled very well. This mostly affects people setting up an instance for the first time.

Translations

Many thanks to people who added or updated the following languages for this release: Chinese (Simplified), French, Italian, Polish, Spanish, Swedish and Russian.

If your language is missing or in need of updates and you think you could help, let us know!

Everything else

We’ve made many other fixes and improvements in this release, many of them coming via our sister project Prosody. Thanks to everyone who contributed with code, testing, documentation and feedback ❤️