diff --git a/matrix.yml b/matrix.yml index 11e63e8..939486e 100644 --- a/matrix.yml +++ b/matrix.yml @@ -9,7 +9,6 @@ - nodejs - matrix-synapse - matrix-mxisd - - matrix-appservice-discord - matrix-appservice-irc - matrix-appservice-webhooks diff --git a/roles/matrix-appservice-discord/defaults/main.yml b/roles/matrix-appservice-discord/defaults/main.yml deleted file mode 100644 index 6ad40a4..0000000 --- a/roles/matrix-appservice-discord/defaults/main.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# service_name is the name of the project on GitHub -service_name: matrix-appservice-discord - -# URL to clone -service_repo: https://github.com/Half-Shot/matrix-appservice-discord.git - -# name of the service user -# It means that you will have to `sudo -u THISUSER zsh` to debug -service_user: "{{ service_name }}" -service_homedir: "/var/local/{{ service_name }}" - -# service_path is where the project is cloned -# It can't be the home directory because of user hidden files. -service_path: "{{ service_homedir }}/{{ service_name }}" diff --git a/roles/matrix-appservice-discord/tasks/main.yml b/roles/matrix-appservice-discord/tasks/main.yml deleted file mode 100644 index 01fc45b..0000000 --- a/roles/matrix-appservice-discord/tasks/main.yml +++ /dev/null @@ -1,69 +0,0 @@ ---- -# Create service user -- include_tasks: service_user.yml - -- name: "Clone {{ service_name }} project" - git: - repo: "{{ service_repo }}" - dest: "{{ service_path }}" - version: 14cf2829510e8b7b99b3238e2deaddf296ab4b76 - become: true - become_user: "{{ service_user }}" - -# Setup dependencies -# May create issues with package-lock.json not in gitignore -- name: "Install {{ service_name }} dependencies" - npm: - path: "{{ service_path }}" - production: true - become: true - become_user: "{{ service_user }}" - register: npm_result - retries: 3 - until: npm_result is succeeded - -# Typescript into javascript -- name: Compile matrix-appservice-discord - command: ./node_modules/.bin/tsc - args: - chdir: "{{ service_path }}" - register: npm_build_result - changed_when: npm_build_result - become: true - become_user: "{{ service_user }}" - -- name: "Configure {{ service_name }}" - template: - src: config.yaml.j2 - dest: "{{ service_path }}/config.yaml" - owner: "{{ service_user }}" - group: nogroup - mode: 0600 - -# Service file -- name: "Install {{ service_name }} systemd unit" - template: - src: systemd/appservice.service.j2 - dest: "/etc/systemd/system/{{ service_name }}.service" - owner: root - group: root - mode: 0644 - -# TODO generate registration - -- name: Copy appservice registration file - copy: - src: "{{ service_path }}/discord-registration.yaml" - dest: "/etc/matrix-synapse/{{ service_name }}-registration.yaml" - owner: matrix-synapse - group: nogroup - mode: 0600 - remote_src: true - -# Run -- name: "Ensure that {{ service_name }} is started" - systemd: - name: "{{ service_name }}" - state: started - enabled: true - daemon_reload: true diff --git a/roles/matrix-appservice-discord/tasks/service_user.yml b/roles/matrix-appservice-discord/tasks/service_user.yml deleted file mode 100644 index 0818676..0000000 --- a/roles/matrix-appservice-discord/tasks/service_user.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# Having a custom group is useless so use nogroup -- name: "Create {{ service_user }} user" - user: - name: "{{ service_user }}" - group: nogroup - home: "{{ service_homedir }}" - system: true - shell: /bin/false - state: present - -# Only service user should be able to go there -- name: "Secure {{ service_user }} home directory" - file: - path: "{{ service_homedir }}" - state: directory - owner: "{{ service_user }}" - group: nogroup - mode: 0700 diff --git a/roles/matrix-appservice-discord/templates/config.yaml.j2 b/roles/matrix-appservice-discord/templates/config.yaml.j2 deleted file mode 100644 index 028cb99..0000000 --- a/roles/matrix-appservice-discord/templates/config.yaml.j2 +++ /dev/null @@ -1,87 +0,0 @@ -# {{ ansible_managed }} - -bridge: - # Domain part of the bridge, e.g. matrix.org - domain: "auro.re" - # This should be your publically facing URL because Discord may use it to - # fetch media from the media store. - homeserverUrl: "http://auro.re" - # 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 - # Enable users to bridge rooms using !discord commands. See - # https://t2bot.io/discord for instructions. - enableSelfServiceBridging: true - # 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 -# Authentication configuration for the discord bot. -auth: - clientID: "{{ matrix_discord_client_id }}" - botToken: "{{ matrix_discord_bot_token }}" -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: "warn.log" # Will capture warnings - level: "warn" - - file: "botlogs.log" # Will capture logs from DiscordBot - level: "info" - enable: - - "DiscordBot" -database: - userStorePath: "user-store.db" - roomStorePath: "room-store.db" - # 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://user:password@localhost/database_name" -room: - # Set the default visibility of alias rooms, defaults to "public". - # One of: "public", "private" - defaultVisibility: "public" -channel: - # Pattern of the name given to bridged rooms. - # Can use :guild for the guild name and :name for the channel name. - namePattern: ":name :guild" - # 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: false - # Remove the room from the directory. - unlistFromDirectory: false - # Set the room to be unavaliable for joining without an invite. - setInviteOnly: false - # Make all the discord users leave the room. - ghostsLeave: true -limits: - # Delay in milliseconds between discord users joining a room. - roomGhostJoinDelay: 6000 - # Delay in milliseconds before sending messages to discord to avoid 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: 750 - diff --git a/roles/matrix-appservice-discord/templates/systemd/appservice.service.j2 b/roles/matrix-appservice-discord/templates/systemd/appservice.service.j2 deleted file mode 100644 index 29ebdb6..0000000 --- a/roles/matrix-appservice-discord/templates/systemd/appservice.service.j2 +++ /dev/null @@ -1,18 +0,0 @@ -# {{ ansible_managed }} - -[Unit] -Description=A bridge between Matrix and Discord -After=syslog.target network-online.target mysql.service postgresql.service -Conflicts=shutdown.target - -[Service] -Type=simple -User={{ service_user }} -WorkingDirectory={{ service_path }} -Environment="NODE_ENV=production" -ExecStart=/usr/bin/nodejs ./build/src/discordas.js -p 9005 -c config.yaml -Restart=always -RestartSec=3 - -[Install] -WantedBy=multi-user.target