You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sessioncommunities.online/for-sogops.md

7.3 KiB

Recommendations for SOGS Operators

TL;DR: Appoint mods; keep in touch; tag your room right (#nsfw and #test); and above all, follow the rules.

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.

Side effects:

  • Link previews and replies to media messages can no longer be sent by regular users.
  • Access to the command line is necessary to grant the upload permission to individual users: sogs --rooms MY_ROOM_ID --add-perms u --users USER_SESSION_ID.

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:

  • ⚠️ Long profanity lists may slow down restarts of your SOGS, consume all available virtual memory and/or lead to crashes. (Issue)

Additional moderator tools

  • Compile and use the AppImage for gravel's fork of Session Desktop.

    • Allow sending attachments and Remove attachment exception options allow moderators to grant or revoke upload permissions for regular users.

    • Ban User from Server and Unban User from Server options allow global moderators to ban a user from all Communities on a given server.

    • Warning: To receive updates, you will need to compile new versions of the fork. The fork is maintained for personal use and may fall behind on security fixes.

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:

  • #lang:any or #lang:all for 🌐,
  • #lang:en for 🇬🇧, and
  • #lang:zh for 🇨🇳.

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:

  • The icon must be the same as an existing Community avatar.
  • The icon must be safe-for-work, i.e., no suggestive or violent material.
  • Your Communities must take care to follow our policy.

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:

  • first, confirm it is listed on an upstream source,
  • verify it can be joined from the app,
  • check in our page footer that the list has been updated recently, and
  • ensure your Community follows our policy.

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.