RouterOS handleiding

Container - Matrix (Synapse)

Matrix is een gedecentraliseerd communicatieprotocol. Elke Matrix-server werkt onafhankelijk, beheert zijn eigen gebruikersbestand en bepaalt zijn eigen regels en beleid.

Uw eigen Matrix-server hosten

Je kunt je eigen Matrix-server rechtstreeks op een RouterOS-apparaat hosten met behulp van Containers. Hiermee behoud je volledige controle over je communicatie-infrastructuur.

Federation

Matrix-servers kunnen via federatie verbinding maken om een verenigd communicatienetwerk te vormen. Hierdoor kunnen gebruikers op verschillende Matrix-servers veilig met elkaar communiceren, zonder dat een centrale autoriteit nodig is.

Bridging naar andere platformen

Matrix ondersteunt bridging om berichten van andere chatplatforms door te geven, waaronder:

  • WhatsApp
  • Discord
  • Signal
  • Telegram
  • En veel andere platformen

Met Matrix-bridges kunt u communicatie van meerdere platformen samenbrengen in één applicatie, zoals Element. Zo kunt u via één uniforme interface communiceren met gebruikers op verschillende platformen.

Een Synapse Matrix Server opzetten op RouterOS

Deze gids legt uit hoe u Synapse, een van de beschikbare Matrix-servers, met behulp van containers op uw MikroTik RouterOS-apparaat opzet.

Info

Zorg ervoor dat u een Container-netwerk hebt aangemaakt voordat u verdergaat. Raadpleeg voor instructies de documentatie over Container-netwerken.


Prerequisites

  • Een RouterOS-apparaat met containerondersteuning
  • Een bestaand containernetwerk geconfigureerd
  • Voldoende opslagruimte voor de database en de Synapse-gegevens

Stap 1: Maak de omgevingsvariabelen voor de PostgreSQL-container aan

Configureer de lijst met omgevingsvariabelen voor de PostgreSQL-container:

/container/envs/add list=postgres_synapse_envs key=POSTGRES_DB value="synapse"
/container/envs/add list=postgres_synapse_envs key=POSTGRES_PASSWORD value="<POSTGRES_PASSWORD_HERE>"
/container/envs/add list=postgres_synapse_envs key=POSTGRES_USER value="synapse_user"
/container/envs/add list=postgres_synapse_envs key=PGDATA value="/var/lib/postgresql/data/pgdata"
/container/envs/add list=postgres_synapse_envs key=POSTGRES_INITDB_ARGS value="--encoding='UTF8' --lc-collate='C' --lc-ctype='C'"
/container/envs/add list=postgres_synapse_envs key=PGPORT value=5433

Note

Vervang <POSTGRES_PASSWORD_HERE> door het gewenste PostgreSQL-wachtwoord.


Stap 2: Maak de mount voor de PostgreSQL-container aan

Maak een mount point om de PostgreSQL-data permanent op te slaan op uw RouterOS-apparaat:

/container/mounts/add list=synapse_postgres_data src=disk1/synapse-postgres-data dst=/var/lib/postgresql/data

Stap 3: Maak de PostgreSQL-container aan

Start de PostgreSQL-container met de configuratie uit de vorige stappen:

/container/add remote-image=postgres:17.2-alpine interface=veth1 root-dir=disk1/postgres-17.2-synapse mountlists=synapse_postgres_data envlists=postgres_synapse_envs name=postgresql_synapse

Stap 4: Omgevingsvariabelen voor de Synapse-container aanmaken

Configureer de omgevingsvariabelen voor de Synapse-container:

/container/envs/add list=synapse_envs key=SYNAPSE_CONFIG_DIR value="/data"
/container/envs/add list=synapse_envs key=SYNAPSE_CONFIG_PATH value="/data/homeserver.yaml"
/container/envs/add list=synapse_envs key=SYNAPSE_SERVER_NAME value="test.mt.lv"
/container/envs/add list=synapse_envs key=SYNAPSE_REPORT_STATS value="yes"

Note

Vervang test.mt.lv door de werkelijke domeinnaam van uw server.


Stap 5: Synapse-container mount aanmaken

Maak een mount point om Synapse-data permanent op te slaan op uw RouterOS-apparaat:

/container/mounts/add list=synapse_data src=disk1/synapse-data dst=/data

Stap 6: Initiële Synapse-configuratie genereren

Maak een Synapse-container aan en start deze om de vereiste configuratiebestanden te genereren. De container draait met het commando generate om de initiële configuratie aan te maken:

/container/add remote-image=matrixdotorg/synapse:latest interface=veth1 cmd="generate" root-dir=disk1/synapse mountlists=synapse_data envlists=synapse_envs name=synapse

Stap 7: Configuratiebestanden initialiseren

Start de Synapse-container en stop hem daarna, zodat hij de benodigde configuratiebestanden kan genereren:

/container/start [find where name=synapse]
/container/stop [find where name=synapse]

Stap 8: Het Generate-commando verwijderen

Wis de parameter command uit de Synapse-container zodat deze in normale modus draait:

/container/set [find where name=synapse] cmd=""

Stap 9: Databaseverbinding configureren

Maak verbinding met uw RouterOS-apparaat via een SFTP-client (zoals WinSCP op Windows) en bewerk het gegenereerde configuratiebestand op disk1/synapse-data/homeserver.yaml. Werk de databasesectie bij met de volgende instellingen:

database:
  name: psycopg2
  args:
    user: synapse_user
    password: <POSTGRES_PASSWORD_HERE>
    dbname: synapse
    host: 172.17.0.2
    port: 5433
    cp_min: 5
    cp_max: 10
    keepalives_idle: 10  # optional
    keepalives_interval: 10  # optional
    keepalives_count: 3     # optional

Info

Vervang <POSTGRES_PASSWORD_HERE> door het wachtwoord dat u in stap 1 hebt ingesteld.


Stap 10: Start de PostgreSQL-container

Start de PostgreSQL-container om de database voor te bereiden:

/container/start [find where name=postgresql_synapse]

Stap 11: Start de Synapse-container

Start de Synapse-container om uw Matrix-server te draaien:

/container/start [find where name=synapse]

Stap 12: Registreer een Matrix-gebruiker

Ga naar de shell van de Synapse-container en registreer een nieuwe gebruiker:

/container/shell [find where name=synapse]

Voer, eenmaal in de container, het volgende uit:

register_new_matrix_user -c /data/homeserver.yaml

Volg de aanwijzingen om uw admin-gebruikersaccount aan te maken.


Stap 13: Toegang tot uw Matrix-server

Je Synapse Matrix-server draait nu. Benader deze via het IP-adres of de domeinnaam van je RouterOS-apparaat.


Warning

Raadpleeg altijd de officiële Synapse-documentatie voor de meest recente configuratieopties en best practices, aangezien configuratieprocedures met nieuwere versies kunnen veranderen.

Discord-bridge

Tip

Het onderstaande voorbeeld is voor het configureren van een Discord-bridge, maar de procedure voor andere soorten bridges is zeer vergelijkbaar. Raadpleeg de officiële documentatie van de gewenste bridge voor meer informatie.

  1. Maak omgevingsvariabelen aan voor de PostgreSQL Discord bridge-Container:

    /container/envs/add list=postgres_discord_envs key=POSTGRES_DB value="synapse-discord"
    /container/envs/add list=postgres_discord_envs key=POSTGRES_PASSWORD value="<POSTGRE_BRIDGE_PASSWORD_HERE>"
    /container/envs/add list=postgres_discord_envs key=POSTGRES_USER value="synapse_discord"
    /container/envs/add list=postgres_discord_envs key=PGDATA value="/var/lib/postgresql/data/pgdata"
    /container/envs/add list=postgres_discord_envs key=POSTGRES_INITDB_ARGS value="--encoding='UTF8' --lc-collate='C' --lc-ctype='C'"
     /container/envs/add list=postgres_discord_envs key=PGPORT value=5434
    
  2. Maak mounts aan voor de PostgreSQL Discord bridge-Container:

    /container/mounts/add list=discord_postgres_data src=disk1/discord-postgres-data dst=/var/lib/postgresql/data
    
  3. Maak een PostgreSQL-Container aan voor de Discord bridge:

    /container/add remote-image=postgres:17.2-alpine interface=veth1 root-dir=disk1/postgres-17.2-discord mountlists=discord_postgres_data envlists=postgres_discord_envs name=postgresql_discord
    
  4. Volg de handleiding voor de HAProxy-container en stel een reverse proxy in voor poort 8080

  5. Maak mountpunten aan voor de Discord bridge-Container:

    /container/mounts/add list=synapse_discord_data src=disk1/synapse-discord-data dst=/data
    
  6. Maak een Discord Bridge-Container aan:

    /container/add remote-image=litetex/mau.mautrix.discord:latest interface=veth1 root-dir=disk1/synapse-discord mountlists=synapse_discord_data name=synapse_discord
    
  7. Start en stop de Discord-bridge-container om bestanden te genereren:

    /container/start [find where name=synapse_discord]
    /container/stop [find where name=synapse_discord]
    
  8. Maak verbinding met uw RouterOS-apparaat via een SFTP-client (bijvoorbeeld WinSCP wanneer u Microsoft Windows gebruikt) en pas het bestand disk1/synapse-discord/config.yaml aan:

     homeserver
         address: http://172.17.0.2:8008
         domain: test.mt.lv
        software: standard
        async_media: true
        
    appservice
        address: leave default
        hostname: leave default
        port: leave default
        database:
            type: postgres
            uri: postgres://synapse_discord:<POSTGRE_DISCORD_PASSWORD_HERE>@172.17.0.2:5434/synapse-discord?sslmode=disable
    bridge:
        encryption:
            allow: true
        permissions:
            "*": relay
            "@your_admin_user1:test.mt.lv": admin
            "@your_admin_user2:test.mt.lv": admin
    
  9. Start en stop de Discord-bridge-container opnieuw:

    /container/start [find where name=synapse_discord]
    /container/stop [find where name=synapse_discord]
    
  10. Download het bestand disk1/synapse-discord/registration.yaml en upload het als bestand disk1/synapse-data/mautrix-discord-registration.yaml

  11. Maak verbinding met uw RouterOS-apparaat via een SFTP-client (bijvoorbeeld WinSCP wanneer u Microsoft Windows gebruikt) en voeg de volgende regels toe aan disk1/synapse-data/homeserver.yaml:

    ...
    app_service_config_files:
    - /data/mautrix-discord-registration.yaml
    
  12. Start de Synapse- en Discord-bridge-containers:

    /container/start [find where name=postgresql_discord]
    /container/start [find where name=synapse_discord]
    /container/start [find where name=postgresql_synapse]
    /container/start [find where name=synapse]
    
  13. Je Matrix-server zou nu een nieuwe gebruiker met de naam "Discord bridge bot" moeten hebben. Volg de officiële documentatie om gekoppelde ruimtes aan te maken.

Bron

Bijgewerkt op 2026-08-22.