matterbridge

This commit is contained in:
hackens server 2023-02-24 14:43:18 +01:00
parent 42d63b428a
commit 2693fbf8cb
5 changed files with 109 additions and 8 deletions

View file

@ -14,6 +14,7 @@
./webpass.nix ./webpass.nix
./nginx.nix ./nginx.nix
./dokuwiki.nix ./dokuwiki.nix
./matterbridge.nix
]; ];
networking.hostName = "hackens-org"; # Define your hostname. networking.hostName = "hackens-org"; # Define your hostname.
@ -21,7 +22,7 @@
# dokuwiki overlay # dokuwiki overlay
nixpkgs.overlays = [ nixpkgs.overlays = [
(self: super: { (self: super: {
dokuwiki = self.pkgs.callPackage ../../shared/dokuwiki.nix {}; dokuwiki = self.pkgs.callPackage ../../shared/dokuwiki.nix { };
}) })
]; ];

View file

@ -0,0 +1,56 @@
{ pkgs, lib, config, ... }:
let
port = 52187;
configFile = pkgs.writeText "metterbridge.toml" ''
[irc]
[irc.ulminfo]
Server="ulminfo.fr:6697" # Ou ens.wtf tu choisis.
Nick="roBOT"
UseTLS=true
Charset="utf8"
PrefixMessagesWithNick=true
RemoteNickFormat="<{NICK}> "
[mattermost]
[mattermost.merle]
WebhookBindAddress="0.0.0.0:${builtins.toString port}"
PrefixMessagesWithNick=false
RemoteNickFormat="{NICK}"
[[gateway]]
name="hackens"
enable=true
[[gateway.inout]]
account="irc.ulminfo"
channel="#hackens"
[[gateway.inout]]
account="mattermost.merle"
channel="town-square"
'';
in
{
systemd.services.matterbridge = {
description = "Matterbridge chat platform bridge";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
script = ''
${pkgs.matterbridge}/bin/matterbridge -conf ${configFile}
'';
serviceConfig = {
User = "matterbridge";
Group = "matterbridge";
Restart = "always";
RestartSec = "10";
EnvironmentFile = config.age.secrets."matterbridge-env".path;
};
};
users.users.matterbridge = {
isSystemUser = true;
group = "matterbridge";
};
users.groups.matterbridge = { };
networking.firewall.allowedTCPPorts = [ port ];
}

View file

@ -1,4 +1,11 @@
{ ... }: { { ... }: {
imports = [ <agenix/modules/age.nix> ]; imports = [ <agenix/modules/age.nix> ];
age.secrets."wikiOpenID".file = ./wiki-openID.age; age.secrets."wikiOpenID" = {
file = ./wiki-openID.age;
owner = "dokuwiki";
};
age.secrets."matterbridge-env" = {
file = ./matterbridge-env.age;
owner = "matterbridge";
};
} }

View file

@ -0,0 +1,33 @@
age-encryption.org/v1
-> ssh-ed25519 JGx7Ng udxfs+mQbihD5fPzAn5ni8YEJVZpy4WWsJD6lCtRC1A
KZ5YX6e6z8SWnlDlx8vA4w0YUqtzBoYwInFKuqZz7d4
-> ssh-ed25519 kXobKQ A6vHdLfZyEBJgYx41cinKBs0x0TaP331o5RMiARyeUw
BneTkDar5nxv6oZ9sCtIlrknPCNTN+/+/PF0IL+Sd48
-> ssh-ed25519 7hZk0g Zb6uedun2Z3ZKxFefDyPbro7hiBf9I0MBT4JqBNVKVQ
iowidJUNNg/i8PJzr2QaQ1CtiGuhqLiMEgAZOnNhOpg
-> ssh-rsa krWCLQ
YTtOm6+MDPBNKQRhBZfhNqJV1qLJ5UDV5UdBnU0NzQz6k0IB2wowKcbgsmeoTPAo
y8Ngqaj73LsttzvBtFEQkGyfx/uN5YheUjyzpRvKSgYFAhz1MfRnJNMDSpcSQSrm
6zLZz0YP6DUPxolVhbmOMdTdcfFZj99RFDQXhuKnsKYRVm9sL5j3ucf/Ekk9PDoD
d6qvsE8Coujxhcraf80w/USnBtB1hHJWqJe+iljuZ6xXr+Piuc3Rm289NHiB5x+3
56pvcQO6NAy4IvDnWD2KfOIgF4LNAVKNnZzUyBLYK+31N3Xq/FKZ1sreN9dy7F5Z
E6Lnak3W3E9/O3R8n7p9CA
-> ssh-ed25519 /vwQcQ d9HHwpCJKqUkEkJxcX4/diGPuopw0htz0FSdy6nJoQQ
Zrh2lQSPiFZi4aSum8PvgbY4hgSaFZGxDsjCTVkLcy8
-> ssh-ed25519 0R97PA E3p80voKVJhW+lJa9BbYnmzYlCMlYdMZh9BJbwy2a0A
0FiTmlnAKlBD1/tTz1KeVgCbJ6BjEQhgdYRnnsdw9NQ
-> ssh-ed25519 cvTB5g rqR6oJ+SD2P8cE9Rv5y44OilufgL8TJ/wZVQDbzyAwU
SPF2XWcwsmq93RCBysKXejLUDdRtsDEI7NgueV4DmeQ
-> ssh-ed25519 Wu8JLQ pbLcWS1CB6FjR5bD/jcTC8yJAOEldPgI5tG2eYF0Onc
ghsz3bkN8vQplNXBCgRFq2lpbqs0DGeIF8IdlI93j8g
-> ssh-ed25519 EIt1vA lSqRBaPgoG8n67bNIsHFu1RK5RlXWZBPkC15L2dprEw
+jtJKYpFf9O9YJFx4y/JQ2kAEj0GP8PsPtn6gg80OMw
-> ssh-ed25519 X51wxg YyH0+riDtUnbeuwLE6tZyvg1WvenA7hHP2Yo5ULiRmg
QvwlfQd6VFZS/3VSbud/ApzkmjGtx2bzVWyQRMPOGeA
-> 4l{!l\L-grease {6Ig( Vc~QhIg \Q:#
mRy+uiK5/EjovQZu32MubNOIg/GHh0ixYiuA7DOt+enUvwGe5ABo2JAKlZUpbHD3
gkvFvQSHMj94zoHmK7a7pnp73QZ5uwtqUuPpm3xclXIZFDkWJQ
--- dqYRV0DCgBAI4LSzwaka+j17Ov0J27IQLQzxEcygRZA
YU\ÔÓû ÷8ÔÍ•/»à´0FS”
“΂xøëÝMZµfŒúY~C`迳$7ÌdÇš<i–·"<11>¶"éGLžHò1“]ÜÄw)¦¾J^G‰ªwŒ¡3èýZ<C3BD>ŬeÄâvI…”rÅwH%ÄC;6>Êä7ŠBÀ÷Øž¤ÀkF~w®ÞX

View file

@ -1,10 +1,14 @@
let let
lib = (import <nixpkgs> { }).lib; lib = (import <nixpkgs> { }).lib;
readPubkeys = user: readpubkeys = user:
builtins.filter (k: k != "") builtins.filter (k: k != "")
(lib.splitString "\n" (builtins.readFile (../pubkeys + "/${user}.keys"))); (lib.splitString "\n" (builtins.readFile (../pubkeys + "/${user}.keys")));
in { in
"wiki-openID.age".publicKeys = (readPubkeys "sinavir") {
++ (readPubkeys "hackens-host") ++ (readPubkeys "raito") "wiki-openid.age".publicKeys = (readpubkeys "sinavir")
++ (readPubkeys "gdd") ++ (readPubkeys "backslash"); ++ (readpubkeys "hackens-host") ++ (readpubkeys "raito")
++ (readpubkeys "gdd") ++ (readpubkeys "backslash");
"matterbridge-env.age".publicKeys = (readpubkeys "sinavir")
++ (readpubkeys "hackens-host") ++ (readpubkeys "raito")
++ (readpubkeys "gdd") ++ (readpubkeys "backslash");
} }