]>
Commit | Line | Data |
---|---|---|
1 | { lib, pkgs, config, myconfig, mylibs, ... }: | |
2 | { | |
3 | options = { | |
4 | services.irc.enable = lib.mkOption { | |
5 | type = lib.types.bool; | |
6 | default = false; | |
7 | description = '' | |
8 | Whether to enable irc stuff. | |
9 | ''; | |
10 | }; | |
11 | }; | |
12 | ||
13 | config = lib.mkIf config.services.irc.enable { | |
14 | security.acme.certs."irc" = config.services.myCertificates.certConfig // { | |
15 | domain = "irc.immae.eu"; | |
16 | postRun = '' | |
17 | systemctl restart stunnel.service | |
18 | ''; | |
19 | }; | |
20 | ||
21 | networking.firewall.allowedTCPPorts = [ 6697 ]; | |
22 | services.bitlbee = { | |
23 | enable = true; | |
24 | authMode = "Registered"; | |
25 | libpurple_plugins = [ | |
26 | pkgs.purple-hangouts | |
27 | pkgs.purple-matrix | |
28 | ]; | |
29 | plugins = [ | |
30 | pkgs.bitlbee-mastodon | |
31 | pkgs.bitlbee-facebook | |
32 | pkgs.bitlbee-discord | |
33 | pkgs.bitlbee-steam | |
34 | ]; | |
35 | }; | |
36 | ||
37 | services.stunnel = { | |
38 | enable = true; | |
39 | servers = { | |
40 | bitlbee = { | |
41 | accept = 6697; | |
42 | connect = 6667; | |
43 | cert = "/var/lib/acme/irc/full.pem"; | |
44 | }; | |
45 | }; | |
46 | }; | |
47 | }; | |
48 | } |