initial commit
commit
6f2818b769
@ -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…
Reference in New Issue