Session Community Operator Handbook

In short: Appoint mods, restrict permissions, limit spam, keep in touch, tag your room right (#nsfw and #test), and follow rules.

Contents

Communication channels

If you operate a Session Group Server, it is recommended that:

Moderating abuse

Communities listed on our site must take care to follow our policy, which includes the Session Terms of Service.

Abuse is a very real problem on Session. Make sure to appoint sufficient moderators to your Communities.

The following mitigations may also help prevent abuse in your Community.

Disabling attachments

The following command will allow only staff to send attachments in a given Community:

sogs --rooms "MY_ROOM_ID" --remove-perms u

Replace MY_ROOM_ID with * (asterisk) to apply this change to all Communities on your server.

If you do not have access to the server command line, see Additional Moderator Tools instead.

Side effects:

The PySOGS SQL Triggers are a set of database modifications compiled by gravel for the Session Open Group Server.

The SQL triggers provide additional features to Communities, such as anti-abuse measures and other utilities.

Features of the SQL triggers include:

The SQL triggers are both customizable and reversible by design, and were developed for use with the PySOGS SQL Manager. For installation instructions, see pysogs-sql-triggers#Installation. Note that the PostgreSQL database is not supported at this time.

Limiting Direct Messages

The following command-line script will prevent your Community server from propagating message requests when both participants are "untrusted"; that is, when neither participant is a moderator, nor has explicit permissions to upload attachments:

https://github.com/slrslr/misc/blob/main/session-sogs-prevent-disable-pm-dm-for-regular-users.sh

To grant the attachment upload permission to a regular user, see Disabling Attachments or Additional Moderator Tools.

Filtering abusive language

You can use the built-in profanity list feature of your SOGS to block messages containing certain words. To edit this profanity list, see the /var/lib/session-open-group-server/profanity-block-list.txt file. You may also modify the behavior of the profanity blocker, such as adding a custom reply; see your sogs.ini configuration file.

Existing lists created by the community may serve as a basis for your profanity list:

Side effects:

Additional moderator tools

Customization

First steps

Make your Community look more legitimate by setting a name and description.

Don't know how to set up a room with a name and description? Check the official documentation.

Forgot to set a description? Update it like so:

sogs --rooms MY_ROOM_ID --description "New description goes here #lang:en #privacy"

Forgot to set a name? The following command might just save you (just replace the bits in uppercase):

sqlite3 /var/lib/session-open-group-server/sogs.db 'update rooms set name="MY_ROOM_NAME" where token="MY_ROOM_ID";'

Community tags

You may insert tags at the end of your room description like so:

This is a cool chatroom. #cool #chat #free

The obvious benefit is searchability. However, tags such #nsfw or #test also help us automatically hide parts of the Community display:

The #nsfw tag hides the Community avatar and ensures visitors know your Community is not safe for work, while the #test tag marks a Community as "intended for testing" and hides it from our index. The #unlisted tag can be used for the same purpose, such as when archiving Communities.

Language tags

Mark your Community with a language flag emoji by adding a tag of the form #lang:CODE at the end of your Community description.

You can use any two-letter country code, or any of these prepared language codes:

Server-wide icons

You may notice the Host column groups Communities by their host SOGS, and some SOGS are easily recognizable by a unified icon. If you also want your Communities to be linked by a recognizable icon, the requirements are easy:

Once you've chosen which of your existing Communities will share an avatar with your whole server, contact us.

Diagnosing listing issues

If your Community does not appear on our list:

If your Community still does not appear on our list, please contact us. Note that poor connectivity may affect our ability to list Communities in regions affected by internet censorship.

De-listing requests

We occasionally accept requests from server operators to de-list whole Community servers.

If you feel our listing would be detrimental to your Communities — such as in cases where your Communities reveal sensitive information about your users — you may contact us to request to de-list a Community server. Please note that Session Communities are not designed with private communication in mind.

De-listing requests only apply for servers we've listed manually (not when polled from our sources). To de-list individual Communities, use the #unlisted tag; see Community tags.