]>
Commit | Line | Data |
---|---|---|
31a38b9f IB |
1 | { lib, pkgs, config, myconfig, mylibs, ... }: |
2 | let | |
3 | bitlbee-mastodon = with pkgs; stdenv.mkDerivation rec { | |
4 | name = "bitlbee-mastodon-${version}"; | |
5 | version = "v1.4.2"; | |
6 | ||
7 | src = fetchFromGitHub { | |
8 | rev = version; | |
9 | owner = "kensanata"; | |
10 | repo = "bitlbee-mastodon"; | |
11 | sha256 = "04rakgr1pfsg1vhfwlfbggbzw249j7dmk88xrsnf3n84c5ccdyas"; | |
12 | }; | |
13 | ||
14 | nativeBuildInputs = [ autoreconfHook pkgconfig ]; | |
15 | buildInputs = [ bitlbee glib ]; | |
16 | ||
17 | preConfigure = '' | |
18 | export BITLBEE_PLUGINDIR=$out/lib/bitlbee | |
19 | ./autogen.sh | |
20 | ''; | |
21 | ||
22 | meta = { | |
23 | description = "Bitlbee plugin for Mastodon"; | |
24 | ||
25 | homepage = https://github.com/kensanata/bitlbee-mastodon; | |
26 | license = lib.licenses.gpl2Plus; | |
27 | platforms = stdenv.lib.platforms.linux; | |
28 | }; | |
29 | }; | |
30 | bitlbee-discord = pkgs.bitlbee-discord.overrideAttrs(old: rec { | |
31 | name = "bitlbee-discord-${version}"; | |
32 | version = "0.4.2"; | |
33 | ||
34 | src = pkgs.fetchFromGitHub { | |
35 | rev = version; | |
36 | owner = "sm00th"; | |
37 | repo = "bitlbee-discord"; | |
38 | sha256 = "02pigk2vbz0jdz11f96sygdvp1j762yjn62h124fkcsc070g7a2f"; | |
39 | }; | |
40 | }); | |
41 | bitlbee-facebook = pkgs.bitlbee-facebook.overrideAttrs(old: rec { | |
42 | name = "bitlbee-facebook-${version}"; | |
43 | version = "1.2.0"; | |
44 | ||
45 | src = pkgs.fetchFromGitHub { | |
46 | rev = "v${version}"; | |
47 | owner = "bitlbee"; | |
48 | repo = "bitlbee-facebook"; | |
49 | sha256 = "11068zhb1v55b1x0nhjc4f3p0glccxpcyk5c1630hfdzkj7vyqhn"; | |
50 | }; | |
51 | }); | |
52 | in | |
53 | { | |
54 | options = { | |
55 | services.irc.enable = lib.mkOption { | |
56 | type = lib.types.bool; | |
57 | default = false; | |
58 | description = '' | |
59 | Whether to enable irc stuff. | |
60 | ''; | |
61 | }; | |
62 | }; | |
63 | ||
64 | config = lib.mkIf config.services.irc.enable { | |
65 | security.acme.certs."irc" = config.services.myCertificates.certConfig // { | |
66 | domain = "irc.immae.eu"; | |
67 | postRun = '' | |
68 | systemctl restart stunnel.service | |
69 | ''; | |
70 | }; | |
71 | ||
72 | networking.firewall.allowedTCPPorts = [ 6697 ]; | |
73 | services.bitlbee = { | |
74 | enable = true; | |
75 | authMode = "Registered"; | |
76 | libpurple_plugins = [ | |
77 | pkgs.purple-hangouts | |
78 | pkgs.purple-matrix | |
79 | ]; | |
80 | plugins = [ | |
81 | bitlbee-mastodon | |
82 | bitlbee-facebook | |
83 | bitlbee-discord | |
84 | pkgs.bitlbee-steam | |
85 | ]; | |
86 | }; | |
87 | ||
88 | services.stunnel = { | |
89 | enable = true; | |
90 | servers = { | |
91 | bitlbee = { | |
92 | accept = 6697; | |
93 | connect = 6667; | |
94 | cert = "/var/lib/acme/irc/full.pem"; | |
95 | }; | |
96 | }; | |
97 | }; | |
98 | }; | |
99 | } |