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