This commit is contained in:
bee
2026-04-27 15:07:54 +02:00
commit 56d73c7c6f
34 changed files with 2295 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
FROM debian:bookworm-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends inspircd \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /var/run/inspircd \
&& chown irc:irc /var/run/inspircd
EXPOSE 6697 7000
USER irc
CMD ["/usr/sbin/inspircd", "--nofork"]
+159
View File
@@ -0,0 +1,159 @@
<module name="ssl_gnutls">
<module name="sslrehashsignal">
<module name="cloaking">
<module name="hidechans">
<module name="services_account">
<module name="spanningtree">
<module name="alias">
<server name="irc.beesecret.buzz"
description="The hive"
network="Beenet">
<admin name="bee"
nick="bee"
email="bee@localhost">
<bind address="*" port="6697" type="clients" sslprofile="Clients">
<bind address="127.0.0.1" port="7000" type="servers">
<link name="services.secretbee.buzz"
ipaddr="127.0.0.1"
port="7000"
sendpass="{{ inspircd_sendpass }}"
recvpass="nr6fqRa4P6XhSHZt">
<uline server="services.secretbee.buzz" silent="yes">
<sslprofile name="Clients"
provider="gnutls"
certfile="/etc/inspircd/cert.pem"
keyfile="/etc/inspircd/key.pem"
requestclientcert="yes">
<gnutls onrehash="yes">
<power diepass="KX65OcVZmEY1Ai9J" restartpass="L3yYbEdT9ik9jg4l">
<connect allow="*"
timeout="60"
threshold="10"
pingfreq="120"
hardsendq="262144"
softsendq="8192"
recvq="8192"
localmax="3"
globalmax="3"
modes="+x">
<cloak mode="full"
key="QKZABZzXCWDtteeLFP1t36Er5iy7Qj"
prefix="Cloak-"
suffix=".Net"
ignorecase="yes">
<class name="Shutdown"
commands="DIE RESTART REHASH LOADMODULE UNLOADMODULE RELOADMODULE">
<class name="ServerLink"
commands="CONNECT SQUIT RCONNECT RSQUIT MKPASSWD">
<class name="BanControl"
commands="KILL GLINE KLINE ZLINE QLINE ELINE">
<class name="OperChat"
commands="WALLOPS GLOBOPS SETIDLE SPYLIST SPYNAMES">
<class name="HostCloak"
commands="SETHOST SETIDENT CHGNAME CHGHOST CHGIDENT">
<type name="NetAdmin"
classes="OperChat BanControl HostCloak Shutdown ServerLink"
host="netadmin.secretbee.local">
<type name="GlobalOp"
classes="OperChat BanControl HostCloak ServerLink"
host="ircop.secretbee.local">
<type name="Helper"
classes="HostCloak"
host="helper.secretbee.local">
<oper name="root"
password="{{ inspircd_root_oper_password }}"
host="*@*"
type="NetAdmin">
<oper name="bee"
password="{{ inspircd_bee_oper_password }}"
host="*@*"
type="NetAdmin">
<files motd="/etc/inspircd/inspircd.motd">
<channels users="20"
opers="60">
<dns timeout="5">
<pid file="/var/run/inspircd/inspircd.pid">
<options prefixquit="Quit: "
syntaxhints="no"
announcets="yes"
hostintopic="yes"
pingwarning="15"
splitwhois="no"
exemptchanops="">
<security announceinvites="dynamic"
hidemodes="eI"
hideulines="no"
flatlinks="no"
hidewhois=""
hidebans="no"
hidekills=""
hidesplits="no"
maxtargets="20"
customversion=""
operspywhois="no"
restrictbannedusers="yes"
genericoper="no"
userstats="Pu">
<performance quietbursts="yes"
softlimit="1024"
somaxconn="128"
netbuffersize="10240">
<whowas groupsize="10"
maxgroups="100000"
maxkeep="3d">
<badnick nick="ChanServ" reason="Reserved For Services">
<badnick nick="NickServ" reason="Reserved For Services">
<badnick nick="OperServ" reason="Reserved For Services">
<badnick nick="MemoServ" reason="Reserved For Services">
<alias text="OPERSERV"
replace="PRIVMSG OperServ :$2-"
format="*"
requires="OperServ"
channelcommand="no"
usercommand="yes"
stripcolor="no"
operonly="yes"
uline="yes">
<alias text="NICKSERV"
replace="PRIVMSG NickServ :$2-"
format="*"
requires="NickServ"
channelcommand="no"
usercommand="yes"
stripcolor="no"
operonly="no"
uline="yes">
<alias text="NS"
replace="PRIVMSG NickServ :$2-"
format="*"
requires="NickServ"
channelcommand="no"
usercommand="yes"
stripcolor="no"
operonly="no"
uline="yes">
+1
View File
@@ -0,0 +1 @@
Welcome to the hive.
+94
View File
@@ -0,0 +1,94 @@
- name: Inspircd
hosts: pi
become: true
vars:
inspircd_sendpass: !vault |
$ANSIBLE_VAULT;1.1;AES256
38376364613733613839386432376432306531393231383362336465653730656539356362313337
6365613062323137323563643963656161666631653938380a373462323834653733376663646134
61613831323831353761376337616635336339363830326536383632306139363831643636626566
3131623431393438640a356166663965626535383032383232313064363732336164613236393430
34343536363838626333626439336662303965643337393563396366393831626339
inspircd_root_oper_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
30343162623465633134623862326134636233633237613864363862316463653733383939636136
6263353934666637376563303761376162316334336534390a616336336663316462303862363662
64386137653566383962616131663866393966613664623036383834633439333162303032656666
3731353664653761620a333833336531393266643531323935393364656662623530376166383630
62623132626362643061646639303833346366396562613238623338326531346439
inspircd_bee_oper_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
39396337663133313131383464393236316163653631616565613039393364333636656537393663
6439383936333837313536636536643063356630306130360a343533326133396632313631336136
37346330363231623130353432333134313963653365326633383461613834643634303566303230
3032326237653034350a333934623834656666333234616364663537383166626566653039393661
62336462613030313532333566363164336262376635633131313133386531333962
tasks:
- name: Install podman
ansible.builtin.apt:
name: podman
state: present
- name: Create inspircd config directory
ansible.builtin.file:
path: /etc/inspircd
state: directory
mode: '0755'
- name: Copy config
ansible.builtin.template:
src: inspircd.conf.j2
dest: /etc/inspircd/inspircd.conf
mode: '0644'
notify: Reload inspircd
- name: Copy motd
ansible.builtin.copy:
src: inspircd.motd
dest: /etc/inspircd/inspircd.motd
mode: '0644'
notify: Reload inspircd
- name: Create container build context directory
ansible.builtin.file:
path: /tmp/inspircd-build
state: directory
mode: '0755'
- name: Copy Containerfile to build context
ansible.builtin.copy:
src: Containerfile
dest: /tmp/inspircd-build/Containerfile
mode: '0644'
- name: Build inspircd container image
ansible.builtin.command:
cmd: podman build -t inspircd:local /tmp/inspircd-build
changed_when: true
- name: Stop and remove existing inspircd container
ansible.builtin.command:
cmd: podman rm -f inspircd
failed_when: false
changed_when: false
- name: Run inspircd container
changed_when: true
ansible.builtin.command:
cmd: >-
podman run -d
--name inspircd
--network host
--restart always
-v /etc/inspircd/inspircd.conf:/etc/inspircd/inspircd.conf:ro
-v /etc/inspircd/inspircd.motd:/etc/inspircd/inspircd.motd:ro
-v /etc/inspircd/cert.pem:/etc/inspircd/cert.pem:ro
-v /etc/inspircd/key.pem:/etc/inspircd/key.pem:ro
inspircd:local
handlers:
- name: Reload inspircd
changed_when: true
ansible.builtin.command:
cmd: podman kill --signal USR1 inspircd
failed_when: false