diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..53a5843 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "roles/matrix-bridge-discord"] + path = roles/matrix-bridge-discord + url = ssh://git@gitea.auro.re:2222/Pains-Perdus/matrix-bridge-discord.git diff --git a/roles/matrix-bridge-discord b/roles/matrix-bridge-discord new file mode 160000 index 0000000..5d0e338 --- /dev/null +++ b/roles/matrix-bridge-discord @@ -0,0 +1 @@ +Subproject commit 5d0e338319eb99a0338d32f57dd850a2543a70f1 diff --git a/roles/matrix-bridge-discord/handlers/main.yml b/roles/matrix-bridge-discord/handlers/main.yml deleted file mode 100644 index 8af9f7c..0000000 --- a/roles/matrix-bridge-discord/handlers/main.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -- name: Re-build discord bridge - shell: - cmd: npm run build - chdir: /srv/matrix-appservice-discord - -- name: Restart the discord bridge - systemd: - name: bridge_discord - state: restarted diff --git a/roles/matrix-bridge-discord/tasks/main.yml b/roles/matrix-bridge-discord/tasks/main.yml deleted file mode 100644 index 7971d1f..0000000 --- a/roles/matrix-bridge-discord/tasks/main.yml +++ /dev/null @@ -1,104 +0,0 @@ ---- - -- name: Setup postgres - include_role: - name: postgre - vars: - postgres_users: - - name: bridge_discor_user - password: "{{ matrix_bridge_discord_postgre_user_pwd }}" - databases: - - name: bridge_discord - owner: bridge_discor_user - local: C - template: template0 - no_log: true - -- name: Install dependencies - apt: - name: - - npm - - git - - pgloader - state: latest - update_cache: true - register: apt_result - retries: 3 - until: apt_result is succeeded - -- name: Ensure the /srv folder exist - file: - path: /srv - state: directory - group: root - owner: root - mode: u=rwx,g=rx,o=rx - -- name: Dowload the sources of the bot - git: - repo: 'https://github.com/Half-Shot/matrix-appservice-discord.git' - dest: /srv/matrix-appservice-discord - update: no # because this module is stupid and cannot ignore local changes -# notify: Re-build discord bridge - -- name: Install dependencies - npm: - path: /srv/matrix-appservice-discord - state: latest - executable: /usr/bin/npm --force - retries: 3 - delay: 1 - register: npm_install_result - until: npm_install_result is succeeded - # The dependencies are screwed up... - -- name: Build typescript - shell: - cmd: npm run build - chdir: /srv/matrix-appservice-discord - creates: /srv/matrix-appservice-discord/build - notify: Restart the discord bridge - -- name: Configure the bridge - template: - src: config.yaml - dest: /srv/matrix-appservice-discord/config.yaml - owner: root - group: root - mode: '0660' - notify: Restart the discord bridge - no_log: true - -- name: Generate discord-registration.yaml - shell: - cmd: "node build/src/discordas.js -r -u 'http://localhost:9005' -c config.yaml" - chdir: /srv/matrix-appservice-discord - creates: /srv/matrix-appservice-discord/discord-registration.yaml - notify: Restart synapse - no_log: true - -- name: Copy config for synapse - file: - src: /srv/matrix-appservice-discord/discord-registration.yaml - dest: /etc/matrix-synapse/discord-registration.yaml - state: link - -- name: Copy the daemon configuration - template: - src: bridge_discord.service - dest: /etc/systemd/system/bridge_discord.service - notify: Restart the discord bridge - -- name: Ensure the log directory exists - file: - path: /var/log/bridge_discord - state: directory - group: root - owner: root - mode: u=rwx,g=rx,o= - -- name: Enable the daemon - systemd: - name: bridge_discord - state: started - enabled: yes diff --git a/roles/matrix-bridge-discord/templates/bridge_discord.service b/roles/matrix-bridge-discord/templates/bridge_discord.service deleted file mode 100644 index 867eef4..0000000 --- a/roles/matrix-bridge-discord/templates/bridge_discord.service +++ /dev/null @@ -1,15 +0,0 @@ -{{ ansible_managed | comment }} - -[Unit] -Description = Discord Bridge - -[Service] -Environment=NODE_PORT=3000 -Type=simple -User=root -Restart=on-failure -WorkingDirectory=/srv/matrix-appservice-discord -ExecStart=npm start - -[Install] -WantedBy=multi-user.target diff --git a/roles/matrix-bridge-discord/templates/config.yaml b/roles/matrix-bridge-discord/templates/config.yaml deleted file mode 100644 index 5c5d2eb..0000000 --- a/roles/matrix-bridge-discord/templates/config.yaml +++ /dev/null @@ -1,114 +0,0 @@ -{{ ansible_managed | comment }} - -bridge: - # Domain part of the bridge, e.g. matrix.org - domain: "{{ matrix_server_name }}" - # This should be your publicly-facing URL because Discord may use it to - # fetch media from the media store. - homeserverUrl: "https://{{ matrix_server_name }}" - # The TCP port on which the appservice runs on. - port: 9005 - # Interval at which to process users in the 'presence queue'. If you have - # 5 users, one user will be processed every 500 milliseconds according to the - # value below. This has a minimum value of 250. - # WARNING: This has a high chance of spamming the homeserver with presence - # updates since it will send one each time somebody changes state or is online. - presenceInterval: 500 - # Disable setting presence for 'ghost users' which means Discord users on Matrix - # will not be shown as away or online. - disablePresence: false - # Disable sending typing notifications when somebody on Discord types. - disableTypingNotifications: false - # Disable deleting messages on Discord if a message is redacted on Matrix. - disableDeletionForwarding: false - # Disable portal bridging, where Matrix users can search for unbridged Discord - # rooms on their Matrix server. - disablePortalBridging: false - # Enable users to bridge rooms using !discord commands. See - # https://t2bot.io/discord for instructions. - enableSelfServiceBridging: false - # Disable sending of read receipts for Matrix events which have been - # successfully bridged to Discord. - disableReadReceipts: false - # Disable Join Leave echos from matrix - disableJoinLeaveNotifications: true - # Disable Invite echos from matrix - disableInviteNotifications: true - # Auto-determine the language of code blocks (this can be CPU-intensive) - determineCodeLanguage: false -# Authentication configuration for the discord bot. -auth: - # This MUST be a string (wrapped in quotes) - clientID: "{{ matrix_bridge_discord_client_ID }}" - botToken: "{{ matrix_bridge_discord_botToken }}" - # You must enable "Privileged Gateway Intents" in your bot settings on discord.com (e.g. https://discord.com/developers/applications/12345/bot) - # for this to work - usePrivilegedIntents: true -logging: - # What level should the logger output to the console at. - console: "warn" #silly, verbose, info, http, warn, error, silent - lineDateFormat: "MMM-D HH:mm:ss.SSS" # This is in moment.js format - files: - - file: "/var/log/bridge_discord/debug.log" - disable: - - "PresenceHandler" # Will not capture presence logging - - file: "/var/log/bridge_discord/warn.log" # Will capture warnings - level: "warn" - - file: "/var/log/bridge_discord/botlogs.log" # Will capture logs from DiscordBot - level: "info" - enable: - - "DiscordBot" -database: - # You may either use SQLite or Postgresql for the bridge database, which contains - # important mappings for events and user puppeting configurations. - # Use the filename option for SQLite, or connString for Postgresql. - # If you are migrating, see https://github.com/Half-Shot/matrix-appservice-discord/blob/master/docs/howto.md#migrate-to-postgres-from-sqlite - # WARNING: You will almost certainly be fine with sqlite unless your bridge - # is in heavy demand and you suffer from IO slowness. - # filename: "discord.db" - connString: "postgresql://bridge_discor_user:{{ matrix_bridge_discord_postgre_user_pwd }}@localhost/bridge_discord" -room: - # Set the default visibility of alias rooms, defaults to "public". - # One of: "public", "private" - defaultVisibility: "private" -channel: - # Pattern of the name given to bridged rooms. - # Can use :guild for the guild name and :name for the channel name. - namePattern: "[Discord] :guild :name" - # Changes made to rooms when a channel is deleted. - deleteOptions: - # Prefix the room name with a string. - #namePrefix: "[Deleted]" - # Prefix the room topic with a string. - #topicPrefix: "This room has been deleted" - # Disable people from talking in the room by raising the event PL to 50 - disableMessaging: false - # Remove the discord alias from the room. - unsetRoomAlias: true - # Remove the room from the directory. - unlistFromDirectory: true - # Set the room to be unavailable for joining without an invite. - setInviteOnly: true - # Make all the discord users leave the room. - ghostsLeave: true -limits: - # Delay in milliseconds between discord users joining a room. - roomGhostJoinDelay: 6000 - # Lock timeout in milliseconds before sending messages to discord to avoid - # echos. Default is rather high as the lock will most likely time out - # before anyways. - # echos = (Copies of a sent message may arrive from discord before we've - # fininished handling it, causing us to echo it back to the room) - discordSendDelay: 1500 - # Set a maximum of rooms to be bridged. - # roomCount: 20 -ghosts: - # Pattern for the ghosts nick, available is :nick, :username, :tag and :id - nickPattern: ":nick" - # Pattern for the ghosts username, available is :username, :tag and :id - usernamePattern: ":username#:tag" -# Prometheus-compatible metrics endpoint -metrics: - enable: false - port: 9001 - host: "127.0.0.1"