mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-01 15:11:25 +00:00
Merge pull request #28892 from ryantm/matterbridge2
matterbridge, modules/matterbridge: init at 1.1.0
This commit is contained in:
commit
c0616a3234
@ -460,6 +460,7 @@
|
||||
./services/networking/lldpd.nix
|
||||
./services/networking/logmein-hamachi.nix
|
||||
./services/networking/mailpile.nix
|
||||
./services/networking/matterbridge.nix
|
||||
./services/networking/mjpg-streamer.nix
|
||||
./services/networking/minidlna.nix
|
||||
./services/networking/miniupnpd.nix
|
||||
|
96
nixos/modules/services/networking/matterbridge.nix
Normal file
96
nixos/modules/services/networking/matterbridge.nix
Normal file
@ -0,0 +1,96 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.services.matterbridge;
|
||||
|
||||
matterbridgeConfToml = pkgs.writeText "matterbridge.toml" (cfg.configFile);
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
services.matterbridge = {
|
||||
enable = mkEnableOption "Matterbridge chat platform bridge";
|
||||
|
||||
configFile = mkOption {
|
||||
type = types.str;
|
||||
example = ''
|
||||
#WARNING: as this file contains credentials, be sure to set correct file permissions [irc]
|
||||
[irc.freenode]
|
||||
Server="irc.freenode.net:6667"
|
||||
Nick="matterbot"
|
||||
|
||||
[mattermost]
|
||||
[mattermost.work]
|
||||
#do not prefix it wit http:// or https://
|
||||
Server="yourmattermostserver.domain"
|
||||
Team="yourteam"
|
||||
Login="yourlogin"
|
||||
Password="yourpass"
|
||||
PrefixMessagesWithNick=true
|
||||
|
||||
[[gateway]]
|
||||
name="gateway1"
|
||||
enable=true
|
||||
[[gateway.inout]]
|
||||
account="irc.freenode"
|
||||
channel="#testing"
|
||||
|
||||
[[gateway.inout]]
|
||||
account="mattermost.work"
|
||||
channel="off-topic"
|
||||
'';
|
||||
description = ''
|
||||
The matterbridge configuration file in the TOML file format.
|
||||
'';
|
||||
};
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "matterbridge";
|
||||
description = ''
|
||||
User which runs the matterbridge service.
|
||||
'';
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "matterbridge";
|
||||
description = ''
|
||||
Group which runs the matterbridge service.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkMerge [
|
||||
(mkIf cfg.enable {
|
||||
|
||||
users.extraUsers = mkIf (cfg.user == "matterbridge") [
|
||||
{ name = "matterbridge";
|
||||
group = "matterbridge";
|
||||
} ];
|
||||
|
||||
users.extraGroups = mkIf (cfg.group == "matterbridge") [
|
||||
{ name = "matterbridge";
|
||||
} ];
|
||||
|
||||
systemd.services.matterbridge = {
|
||||
description = "Matterbridge chat platform bridge";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ExecStart = "${pkgs.matterbridge.bin}/bin/matterbridge -conf ${matterbridgeConfToml}";
|
||||
Restart = "always";
|
||||
RestartSec = "10";
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
|
21
pkgs/servers/matterbridge/default.nix
Normal file
21
pkgs/servers/matterbridge/default.nix
Normal file
@ -0,0 +1,21 @@
|
||||
{ stdenv, buildGoPackage, fetchurl }:
|
||||
|
||||
buildGoPackage rec {
|
||||
name = "matterbridge-${version}";
|
||||
version = "1.1.0";
|
||||
|
||||
goPackagePath = "github.com/42wim/matterbridge";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/42wim/matterbridge/archive/v${version}.tar.gz";
|
||||
sha256 = "0nn3929wyjdpkk8azp6wd6mkcg8h0jb1fjxm6jmb74xvdknrzv3k";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Simple bridge between Mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat, Hipchat(via xmpp), Matrix and Steam";
|
||||
homepage = https://github.com/42wim/matterbridge;
|
||||
license = with licenses; [ asl20 ];
|
||||
maintainers = with maintainers; [ ryantm ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
@ -11353,6 +11353,7 @@ with pkgs;
|
||||
|
||||
mattermost = callPackage ../servers/mattermost { };
|
||||
matterircd = callPackage ../servers/mattermost/matterircd.nix { };
|
||||
matterbridge = callPackage ../servers/matterbridge { };
|
||||
|
||||
mediatomb = callPackage ../servers/mediatomb { };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user