./modules/ftp
./modules/pub
./modules/task
+ ./modules/irc
];
services.myGitolite.enable = true;
services.myDatabases.enable = true;
services.myWebsites.integration.enable = true;
services.myWebsites.tools.enable = true;
services.pure-ftpd.enable = true;
+ services.irc.enable = true;
services.pub.enable = true;
services.myTasks.enable = true;
--- /dev/null
+{ lib, pkgs, config, myconfig, mylibs, ... }:
+let
+ bitlbee-mastodon = with pkgs; stdenv.mkDerivation rec {
+ name = "bitlbee-mastodon-${version}";
+ version = "v1.4.2";
+
+ src = fetchFromGitHub {
+ rev = version;
+ owner = "kensanata";
+ repo = "bitlbee-mastodon";
+ sha256 = "04rakgr1pfsg1vhfwlfbggbzw249j7dmk88xrsnf3n84c5ccdyas";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ bitlbee glib ];
+
+ preConfigure = ''
+ export BITLBEE_PLUGINDIR=$out/lib/bitlbee
+ ./autogen.sh
+ '';
+
+ meta = {
+ description = "Bitlbee plugin for Mastodon";
+
+ homepage = https://github.com/kensanata/bitlbee-mastodon;
+ license = lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.linux;
+ };
+ };
+ bitlbee-discord = pkgs.bitlbee-discord.overrideAttrs(old: rec {
+ name = "bitlbee-discord-${version}";
+ version = "0.4.2";
+
+ src = pkgs.fetchFromGitHub {
+ rev = version;
+ owner = "sm00th";
+ repo = "bitlbee-discord";
+ sha256 = "02pigk2vbz0jdz11f96sygdvp1j762yjn62h124fkcsc070g7a2f";
+ };
+ });
+ bitlbee-facebook = pkgs.bitlbee-facebook.overrideAttrs(old: rec {
+ name = "bitlbee-facebook-${version}";
+ version = "1.2.0";
+
+ src = pkgs.fetchFromGitHub {
+ rev = "v${version}";
+ owner = "bitlbee";
+ repo = "bitlbee-facebook";
+ sha256 = "11068zhb1v55b1x0nhjc4f3p0glccxpcyk5c1630hfdzkj7vyqhn";
+ };
+ });
+in
+{
+ options = {
+ services.irc.enable = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = ''
+ Whether to enable irc stuff.
+ '';
+ };
+ };
+
+ config = lib.mkIf config.services.irc.enable {
+ security.acme.certs."irc" = config.services.myCertificates.certConfig // {
+ domain = "irc.immae.eu";
+ postRun = ''
+ systemctl restart stunnel.service
+ '';
+ };
+
+ networking.firewall.allowedTCPPorts = [ 6697 ];
+ services.bitlbee = {
+ enable = true;
+ authMode = "Registered";
+ libpurple_plugins = [
+ pkgs.purple-hangouts
+ pkgs.purple-matrix
+ ];
+ plugins = [
+ bitlbee-mastodon
+ bitlbee-facebook
+ bitlbee-discord
+ pkgs.bitlbee-steam
+ ];
+ };
+
+ services.stunnel = {
+ enable = true;
+ servers = {
+ bitlbee = {
+ accept = 6697;
+ connect = 6667;
+ cert = "/var/lib/acme/irc/full.pem";
+ };
+ };
+ };
+ };
+}