initial commit

master
n0emis 5 years ago
commit 6f2818b769
Signed by: n0emis
GPG Key ID: 00FAF748B777CF10

@ -0,0 +1,15 @@
---
matrix_appservice_irc_user: "matrix-appservice-irc"
matrix_appservice_irc_group: "matrix-appservice-irc"
matrix_appservice_irc_install_path: "/opt/matrix-appservice-irc"
matrix_appservice_irc_config_path: "/etc/matrix-appservice-irc"
matrix_appservice_irc_database_path: "/var/lib/matrix-appservice-irc"
matrix_appservice_irc_log_path: "/var/log/matrix-appservice-irc"
matrix_appservice_irc_repository: "https://github.com/matrix-org/matrix-appservice-irc"
matrix_appservice_irc_version: "0.17.0"
matrix_appservice_irc_port: "9999"
matrix_appservice_irc_listen: "127.0.0.1"
matrix_appservice_irc_id: "matrix-appservice-irc"

@ -0,0 +1,91 @@
---
- name: Create group
group:
name: "{{ matrix_appservice_irc_group }}"
state: present
- name: Create user
user:
name: "{{ matrix_appservice_irc_user }}"
group: "{{ matrix_appservice_irc_group }}"
create_home: no
system: yes
- name: Create matrix-appservice-irc installation directory
file:
path: "{{ matrix_appservice_irc_install_path }}"
recurse: yes
state: directory
owner: "{{ matrix_appservice_irc_user }}"
group: "{{ matrix_appservice_irc_group }}"
- name: Create matrix-appservice-irc config directory
file:
path: "{{ matrix_appservice_irc_config_path }}"
recurse: yes
state: directory
owner: "{{ matrix_appservice_irc_user }}"
group: "{{ matrix_appservice_irc_group }}"
- name: Create matrix-appservice-irc database directory
file:
path: "{{ matrix_appservice_irc_database_path }}"
recurse: yes
state: directory
owner: "{{ matrix_appservice_irc_user }}"
group: "{{ matrix_appservice_irc_group }}"
- name: Create matrix-appservice-irc log directory
file:
path: "{{ matrix_appservice_irc_log_path }}"
recurse: yes
state: directory
owner: "{{ matrix_appservice_irc_user }}"
group: "{{ matrix_appservice_irc_group }}"
- name: Add matrix-appservice-irc config to host
template:
src: "config.yaml"
dest: "{{ matrix_appservice_irc_config_path }}/config.yaml"
owner: "{{ matrix_appservice_irc_user }}"
group: "{{ matrix_appservice_irc_group }}"
- name: Add matrix-appservice-irc registration config to host
template:
src: "registration.yaml"
dest: "{{ matrix_appservice_irc_config_path }}/registration.yaml"
owner: "{{ matrix_appservice_irc_user }}"
group: "{{ matrix_appservice_irc_group }}"
- name: Clone matrix-appservice-irc source
git:
dest: "{{ matrix_appservice_irc_install_path }}"
repo: "{{ matrix_appservice_irc_repository }}"
version: "{{ matrix_appservice_irc_version }}"
force: yes
- name: Install matrix-appservice-ircs dependencies
npm:
path: "{{ matrix_appservice_irc_install_path }}"
state: present
become_user: "{{ matrix_appservice_irc_user }}"
become: yes
- name: Build the source with NPM
command: "npm run build"
args:
chdir: "{{ matrix_appservice_irc_install_path }}"
become_user: "{{ matrix_appservice_irc_user }}"
become: yes
- name: Add systemd service file for matrix-appservice-irc
template:
src: "matrix-appservice-irc.service"
dest: "/etc/systemd/system/matrix-appservice-irc.service"
- name: Ensure matrix-appservice-irc systemd service is enabled and running
systemd:
name: "matrix-appservice-irc"
daemon_reload: yes
enabled: yes
state: started

@ -0,0 +1,84 @@
homeserver:
url: "https://matrix.noemis.me"
domain: "noemis.me"
ircService:
servers:
irc.hackint.org:
name: "Hackint"
port: 6697
ssl: true
sslselfsign: false
botConfig:
enabled: true
nick: "n0emisBOT"
joinChannelsIfNoUsers: false
privateMessages:
enabled: true
federate: false
dynamicChannels:
enabled: true
createAlias: true
published: false
joinRule: invite
federate: true
aliasTemplate: "#irc_hackint_$CHANNEL"
whitelist:
- "@n0emis:noemis.me"
ircClients:
# The template to apply to every IRC client nick. This MUST have either
# $DISPLAY or $USERID or $LOCALPART somewhere in it.
# Optional. Default: "M-$DISPLAY". Example: "M-Alice".
nickTemplate: "$DISPLAY[m]"
# True to allow virtual IRC clients to change their nick on this server
# by issuing !nick <server> <nick> commands to the IRC AS bot.
# This is completely freeform: it will NOT follow the nickTemplate.
allowNickChanges: true
matrixClients:
# The user ID template to use when creating virtual matrix users. This
# MUST have $NICK somewhere in it.
# Optional. Default: "@$SERVER_$NICK".
# Example: "@irc.example.com_Alice:example.com"
userTemplate: "@irc_pm_hackint_$NICK"
# The display name to use for created matrix clients. This should have
# $NICK somewhere in it if it is specified. Can also use $SERVER to
# insert the IRC domain.
# Optional. Default: "$NICK (IRC)". Example: "Alice (IRC)"
displayName: "$NICK (IRC)"
# Number of tries a client can attempt to join a room before the request
# is discarded. You can also use -1 to never retry or 0 to never give up.
# Optional. Default: -1
joinAttempts: -1
# Set information about the bridged channel in the room state, so that client's may
# present relevant UI to the user. MSC2346
bridgeInfoState:
enabled: true
initial: true
# Configuration for logging. Optional. Default: console debug level logging
# only.
logging:
# Level to log on console/logfile. One of error|warn|info|debug
level: "debug"
# The file location to log to. This is relative to the project directory.
logfile: "{{ matrix_appservice_irc_log_path }}/debug.log"
# The file location to log errors to. This is relative to the project
# directory.
errfile: "{{ matrix_appservice_irc_log_path }}/errors.log"
# Whether to log to the console or not.
toConsole: true
# The max number of files to keep. Files will be overwritten eventually due
# to rotations.
maxFiles: 5
passwordEncryptionKeyPath: "{{ matrix_appservice_irc_database_path }}/passkey.pem"
# Use an external database to store bridge state.
database:
# database engine (must be 'postgres' or 'nedb'). Default: nedb
engine: "nedb"
# Either a PostgreSQL connection string, or a path to the NeDB storage directory.
# For postgres, it must start with postgres://
# For NeDB, it must start with nedb://. The path is relative to the project directory.
connectionString: "nedb://{{ matrix_appservice_irc_database_path }}"

@ -0,0 +1,18 @@
[Unit]
Description=matrix-appservice-irc service
After=network.target
[Service]
Type=simple
WorkingDirectory={{ matrix_appservice_irc_install_path }}
ExecStart=/usr/bin/env node {{ matrix_appservice_irc_install_path }}/app.js \
-c {{ matrix_appservice_irc_config_path }}/config.yaml \
-f {{ matrix_appservice_irc_config_path }}/registration.yaml \
-p {{ matrix_appservice_irc_port }}
Restart=always
User={{ matrix_appservice_irc_user }}
Group={{ matrix_appservice_irc_group }}
[Install]
WantedBy=multi-user.target

@ -0,0 +1,16 @@
id: {{ matrix_appservice_irc_id }}
hs_token: {{ matrix_appservice_irc_hs_token }}
as_token: {{ matrix_appservice_irc_as_token }}
namespaces:
users:
- exclusive: true
regex: '@irc_pm_hackint_.*:noemis\.me'
aliases:
- exclusive: true
regex: '#irc_hackint_.*:noemis\.me'
rooms: []
url: 'http://{{ matrix_appservice_irc_listen }}:{{ matrix_appservice_irc_port }}'
sender_localpart: my_b
rate_limited: false
protocols:
- irc
Loading…
Cancel
Save