This repository has been archived on 2023-05-27. You can view files and clone it, but cannot push or open issues or pull requests.
BirdsiteLIVE/VARIABLES.md
Sam Therapy 990778dfb3
All checks were successful
continuous-integration/drone/push Build is passing
feat(db): Purge user when no one follows them
Signed-off-by: Sam Therapy <sam@samtherapy.net>
2022-11-15 18:45:02 +01:00

5.9 KiB

Environment variables

You can configure some of BirdsiteLIVE's settings via environment variables (those are optionnals):

Blacklisting & Whitelisting

Fediverse users and instances

Here are the supported patterns to describe Fediverse users and/or instances:

  • @user@instance.ext to describe a Fediverse user
  • instance.ext to describe an instance under a domain name
  • *.instance.ext to describe instances from all subdomains of a domain name (this doesn't include the instance.ext, if you want both you need to add both)

You can whitelist or blacklist fediverses users by settings the followings variables with the above patterns separated by ;:

  • Moderation:FollowersWhiteListing Fediverse Whitelisting
  • Moderation:FollowersBlackListing Fediverse Blacklisting

If the whitelisting is set, only given patterns can follow twitter accounts on the instance. If blacklisted, the given patterns can't follow twitter accounts on the instance. If both whitelisting and blacklisting are set, only the whitelisting will be active.

Twitter users

Here is the supported pattern to describe Twitter users:

  • twitter_handle to describe a Twitter user

You can whitelist or blacklist twitter users by settings the followings variables with the above pattern separated by ;:

  • Moderation:TwitterAccountsWhiteListing Twitter Whitelisting
  • Moderation:TwitterAccountsBlackListing Twitter Blacklisting

If the whitelisting is set, only given patterns can be followed on the instance. If blacklisted, the given patterns can't be followed on the instance. If both whitelisting and blacklisting are set, only the whitelisting will be active.

Logging

  • Logging:Type (default: none) set the type of the logging and monitoring system, currently the only type supported is insights for Azure Application Insights (PR welcome to support other types)
  • Logging:InstrumentationKey the instrumentation key for Azure Application Insights

Instance customization

  • Instance:Name (default: BirdsiteLIVE) the name of the instance
  • Instance:ResolveMentionsInProfiles (default: true) to enable or disable mentions parsing in profile's description. Resolving it will consume more User's API calls since newly discovered account can also contain references to others accounts as well. On a big instance it is recommended to disable it.
  • Instance:PublishReplies (default: false) to enable or disable replies publishing.
  • Instance:UnlistedTwitterAccounts (default: null) to enable unlisted publication for selected twitter accounts, separated by ; (please limit this to brands and other public profiles).
  • Instance:TwitterDomain (default: twitter.com) redirect to a different domain (i.e. a Nitter instance) instead of Twitter in most areas
  • Instance:TwitterDomainLabel (default: "") if TwitterDomain is set, use this label on profile pages instead of the domain itself (i.e. you can set this to "Nitter" to show that on profiles instead of "twiiit.com")
  • Instance:InfoBanner (default: "") text to show in a banner on the front page
  • Instance:ShowAboutInstanceOnProfiles (default: true) show "About [instance name]" on profiles with a link to /About
  • Instance:MaxFollowsPerUser (default: 0 - no limit) limit the number of follows per user - any follow count above this number will be Rejected
  • Instance:DiscloseInstanceRestrictions (default: false) disclose your instance's restrictions on its About page
  • Instance:UnlistedTwitterAccounts (default: null) to enable unlisted publication for selected twitter accounts, separated by ; (please limit this to brands and other public profiles).
  • Instance:SensitiveTwitterAccounts (default: null) mark all media from given accounts as sensitive by default, separated by ;.
  • Instance:FailingTwitterUserCleanUpThreshold (default: 700) set the max allowed errors (due to a banned/deleted/private account) from a Twitter Account retrieval before auto-removal. (by default an account is called every 15 mins)
  • Instance:FailingFollowerCleanUpThreshold (default: 30000) set the max allowed errors from a Follower (Fediverse) Account before auto-removal. (often due to account suppression, instance issues, etc)
  • Instance:MaxStatusFetchAge (default: 0 - no limit) statuses with a Snowflake older than this age in days will not be fetched by the service and will instead return 410 Gone
  • Instance:EnableQuoteRT (default: false) enable Soapbox-style quote-RTs

Docker Compose full example

In order to illustrate above variables, here is an example of an updated docker-compose.yml file:

version: "3"

networks:
    [...]

services:
    server:
        image: pasture/birdsitelive:latest
        [...]
        environment:
            - Instance:Domain=domain.name
            - Instance:AdminEmail=name@domain.ext
            - Db:Type=postgres
            - Db:Host=db
            - Db:Name=birdsitelive
            - Db:User=birdsitelive
            - Db:Password=birdsitelive
            - Twitter:ConsumerKey=twitter.api.key
            - Twitter:ConsumerSecret=twitter.api.key
+           - Moderation:FollowersWhiteListing=@me@my-instance.ca;friend-instance.com;*.friend-instance.com
+           - Moderation:TwitterAccountsBlackListing=douchebag;jerk_88;theRealIdiot
+           - Instance:Name=MyTwitterRelay
+           - Instance:ResolveMentionsInProfiles=false
+           - Instance:PublishReplies=true
+           - Instance:UnlistedTwitterAccounts=cocacola;twitter
+           - Instance:TwitterDomain=twiiit.com
+           - Instance:TwitterDomainLabel=Nitter
+           - Instance:InfoBanner=This is my BirdsiteLIVE instance. There are many like it, but this one is mine.
+           - Instance:ShowAboutInstanceOnProfiles=true
+           - Instance:SensitiveTwitterAccounts=archillect
        networks:
        [...]

    db:
        image: postgres:13
        [...]

Apply the modifications

After the modification of the docker-compose.yml file, you will need to run docker-compose up -d to apply the changes.