From db0507f2d5bbea4d9d4d4bbc7e92c8875d1aac6a Mon Sep 17 00:00:00 2001 From: Someone Date: Fri, 4 Oct 2024 13:42:36 +0200 Subject: [PATCH] [roles/server/ircd] install inspircd --- .../ircd/files/default/inspircd.service | 26 + .../files/default/inspircd/global.cjk-utf8 | 8 + .../ircd/files/default/inspircd/global.conf | 490 ++++ .../files/default/inspircd/global.helpop.conf | 1158 ++++++++ .../default/inspircd/global.modules.conf | 2468 +++++++++++++++++ .../default/inspircd/global.opermotd.txt | 2 + .../files/default/inspircd/global.secret.conf | 11 + .../ircd/files/default/inspircd/inspircd.conf | 65 + .../ircd/files/default/inspircd/inspircd.motd | 65 + .../default/inspircd/inspircd.secret.conf | 11 + roles/server/ircd/handlers/main.yml | 21 + roles/server/ircd/tasks/main.yml | 79 + 12 files changed, 4404 insertions(+) create mode 100644 roles/server/ircd/files/default/inspircd.service create mode 100644 roles/server/ircd/files/default/inspircd/global.cjk-utf8 create mode 100644 roles/server/ircd/files/default/inspircd/global.conf create mode 100644 roles/server/ircd/files/default/inspircd/global.helpop.conf create mode 100644 roles/server/ircd/files/default/inspircd/global.modules.conf create mode 100644 roles/server/ircd/files/default/inspircd/global.opermotd.txt create mode 100644 roles/server/ircd/files/default/inspircd/global.secret.conf create mode 100644 roles/server/ircd/files/default/inspircd/inspircd.conf create mode 100644 roles/server/ircd/files/default/inspircd/inspircd.motd create mode 100644 roles/server/ircd/files/default/inspircd/inspircd.secret.conf create mode 100644 roles/server/ircd/handlers/main.yml create mode 100644 roles/server/ircd/tasks/main.yml diff --git a/roles/server/ircd/files/default/inspircd.service b/roles/server/ircd/files/default/inspircd.service new file mode 100644 index 0000000..3894614 --- /dev/null +++ b/roles/server/ircd/files/default/inspircd.service @@ -0,0 +1,26 @@ +# +################################################ +### Managed by someone's ansible provisioner ### +################################################ +# Part of: https://git.somenet.org/root/pub/somesible.git +# 2017-2024 by someone +# + +[Unit] +Description=IRC server +Documentation=man:inspircd(1) +After=network-online.target +Wants=network-online.target + +[Service] +Type=simple +User=irc +Group=irc +ExecStart=/usr/sbin/inspircd --config /etc/inspircd/inspircd.conf --nofork --nolog --nopid +ExecReload=/bin/kill -HUP $MAINPID +Restart=always +RestartSec=30 + + +[Install] +WantedBy=multi-user.target diff --git a/roles/server/ircd/files/default/inspircd/global.cjk-utf8 b/roles/server/ircd/files/default/inspircd/global.cjk-utf8 new file mode 100644 index 0000000..dfc8b4f --- /dev/null +++ b/roles/server/ircd/files/default/inspircd/global.cjk-utf8 @@ -0,0 +1,8 @@ + + + + + + + +0xE0 0xA0 0x80 0xED 0x9F 0xBF 0xEF 0xA4 0x80 0xEF 0xBF 0xBF 0xF0 0x90 0x80 0x80 0xF3 0xAF 0xBF 0xBF diff --git a/roles/server/ircd/files/default/inspircd/global.conf b/roles/server/ircd/files/default/inspircd/global.conf new file mode 100644 index 0000000..7ef20ae --- /dev/null +++ b/roles/server/ircd/files/default/inspircd/global.conf @@ -0,0 +1,490 @@ +# +################################################ +### Managed by someone's ansible provisioner ### +################################################ +# Part of: https://git.somenet.org/root/pub/somesible.git +# 2017-2024 by someone +# +######################################################################## +# # +# ___ ___ ____ ____ _ # +# |_ _|_ __ ___ _ __|_ _| _ \ / ___|__| | # +# | || '_ \/ __| '_ \| || |_) | | / _` | # +# | || | | \__ \ |_) | || _ <| |__| (_| | # +# |___|_| |_|___/ .__/___|_| \_\\____\__,_| # +# |_| # +# ____ __ _ _ _ # +# / ___|___ _ __ / _(_) __ _ _ _ _ __ __ _| |_(_) ___ _ __ # +# | | / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \ # +# | |__| (_) | | | | _| | (_| | |_| | | | (_| | |_| | (_) | | | | # +# \____\___/|_| |_|_| |_|\__, |\__,_|_| \__,_|\__|_|\___/|_| |_| # +# |___/ # +# # +######################################################################## +# # +# Unalphabeticalise the modules list at your own risk # +# # +######################################################################## + +#-#-#-#-#-#-#-#-#-#- CONNECTIONS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# +# # +# This is where you can configure which connections are allowed # +# and denied access onto your server. The password is optional. # +# You may have as many of these as you require. To allow/deny all # +# connections, use a '*' or 0.0.0.0/0. # +# # +# -- It is important to note that connect tags are read from the -- # +# TOP DOWN. This means that you should have more specific deny # +# and allow tags at the top, progressively more general, followed # +# by a # + + + + + + +# MOVED TO global.secret.conf +# +# MOVED TO inspircd.secret.conf +# + + + + + +# + + + + # suffixpart: What (if anything) users' part message + # should be suffixed with. + suffixpart=""" + + # fixedquit: Set all users' quit messages to this value. + #fixedquit="" + + # fixedpart: Set all users' part messages in all channels + # to this value. + #fixedpart="" + + # syntaxhints: If enabled, if a user fails to send the correct parameters + # for a command, the ircd will give back some help text of what + # the correct parameters are. + syntaxhints="yes" + + # casemapping: This sets the case mapping method to be used by the + # server. This MUST be the same on all servers. Possible values are: + # "ascii" (recommended) + # "rfc1459" (default, required for linking to 2.0 servers) + # NOTE: if you are using the nationalchars module this setting will be + # ignored. You should use instead. + casemapping="ascii" + + # cyclehostsfromuser: If enabled, the source of the mode change for + # cyclehosts will be the user who cycled. This can look nicer, but + # triggers anti-takeover mechanisms of some obsolete bots. + cyclehostsfromuser="no" + + # announcets: If set to yes, when the timestamp on a channel changes, all users + # in the channel will be sent a NOTICE about it. + announcets="yes" + + # allowmismatch: Setting this option to yes will allow servers to link even + # if they don't have the same "optionally common" modules loaded. Setting this to + # yes may introduce some desyncs and unwanted behaviour. + allowmismatch="no" + + # defaultbind: Sets the default for tags without an address. Choices are + # ipv4 or ipv6; if not specified, IPv6 will be used if your system has support, + # falling back to IPv4 otherwise. + defaultbind="ipv4" + + # hostintopic: If enabled, channels will show the host of the topic setter + # in the topic. If set to no, it will only show the nick of the topic setter. + hostintopic="yes" + + # pingwarning: If a server does not respond to a ping within this period, + # it will send a notice to opers with snomask +l informing that the server + # is about to ping timeout. + pingwarning="15" + + # serverpingfreq: How often pings are sent between servers. + serverpingfreq="1m" + + # splitwhois: Whether to split private/secret channels from normal channels + # in WHOIS responses. Possible values for this are: + # 'no' - list all channels together in the WHOIS response regardless of type. + # 'split' - split private/secret channels to a separate WHOIS response numeric. + # 'splitmsg' - the same as split but also send a message explaining the split. + splitwhois="no" + + # defaultmodes: What modes are set on a empty channel when a user + # joins it and it is unregistered. + defaultmodes="not" + + # xlinemessage: This is the text that is sent to a user when they are + # banned from the server. + xlinemessage="You're banned! Email irc@example.com with the ERROR line below for help." + + # allowzerolimit: If enabled then allow a limit of 0 to be set on channels. + # This is non-standard behaviour and should only be enabled if you need to + # link with servers running 2.0. Defaults to yes. + allowzerolimit="yes" + + # modesinlist: If enabled then the current channel modes will be shown + # in the /LIST response. Defaults to yes. + modesinlist="yes" + + # exemptchanops: Allows users with with a status mode to be exempt + # from various channel restrictions. Possible restrictions are: + # - anticaps Channel mode +B - blocks messages with too many capital + # letters (requires the anticaps module). + # - auditorium-see Permission required to see the full user list of + # a +u channel (requires the auditorium module). + # - auditorium-vis Permission required to be visible in a +u channel + # (requires the auditorium module). + # - blockcaps Channel mode +B - blocks messages with too many capital + # letters (requires the blockcaps module). + # - blockcolor Channel mode +c - blocks messages with formatting codes + # (requires the blockcolor module). + # - censor Channel mode +G - censors messages based on the network + # configuration (requires the censor module). + # - filter Channel mode +g - blocks messages containing the given + # glob mask (requires the chanfilter module). + # - flood Channel mode +f - kicks (and bans) on text flood of a + # specified rate (requires the messageflood module). + # - nickflood Channel mode +F - blocks nick changes after a specified + # rate (requires the nickflood module). + # - noctcp Channel mode +C - blocks any CTCPs to the channel + # (requires the noctcp module). + # - nonick Channel mode +N - prevents users on the channel from + # changing nicks (requires the nonicks module). + # - nonotice Channel mode +T - blocks /NOTICEs to the channel + # (requires the nonotice module). + # - regmoderated Channel mode +M - blocks unregistered users from + # speaking (requires the services account module). + # - stripcolor Channel mode +S - strips formatting codes from + # messages (requires the stripcolor module). + # - topiclock Channel mode +t - limits changing the topic to (half)ops + # You can also configure this on a per-channel basis with a channel mode. + # See m_exemptchanops in modules.conf.example for more details. + exemptchanops="censor:o filter:o nickflood:o nonick:v regmoderated:o" + + # invitebypassmodes: This allows /INVITE to bypass other channel modes. + # (Such as +k, +j, +l, etc.) + invitebypassmodes="yes" + + # nosnoticestack: This prevents snotices from 'stacking' and giving you + # the message saying '(last message repeated X times)'. Defaults to no. + nosnoticestack="no"> + + +