feat(ops/owothia): Add owothia module and deploy on whitby
This configures owothia to use her new bouncer to HackInt. Change-Id: I80eb8191c2b0f2a6f8a31d19b60250ade27c1913 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3129 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
This commit is contained in:
parent
7fec80cb58
commit
687f978b1c
2 changed files with 75 additions and 0 deletions
|
@ -11,6 +11,7 @@ in {
|
||||||
"${depot.path}/ops/modules/clbot.nix"
|
"${depot.path}/ops/modules/clbot.nix"
|
||||||
"${depot.path}/ops/modules/irccat.nix"
|
"${depot.path}/ops/modules/irccat.nix"
|
||||||
"${depot.path}/ops/modules/monorepo-gerrit.nix"
|
"${depot.path}/ops/modules/monorepo-gerrit.nix"
|
||||||
|
"${depot.path}/ops/modules/owothia.nix"
|
||||||
"${depot.path}/ops/modules/panettone.nix"
|
"${depot.path}/ops/modules/panettone.nix"
|
||||||
"${depot.path}/ops/modules/paroxysm.nix"
|
"${depot.path}/ops/modules/paroxysm.nix"
|
||||||
"${depot.path}/ops/modules/smtprelay.nix"
|
"${depot.path}/ops/modules/smtprelay.nix"
|
||||||
|
@ -284,6 +285,13 @@ in {
|
||||||
# Run the first cursed bot (quote bot)
|
# Run the first cursed bot (quote bot)
|
||||||
paroxysm.enable = true;
|
paroxysm.enable = true;
|
||||||
|
|
||||||
|
# Run the second cursed bot
|
||||||
|
owothia = {
|
||||||
|
enable = true;
|
||||||
|
ircServer = "localhost";
|
||||||
|
ircPort = config.services.znc.config.Listener.l.Port;
|
||||||
|
};
|
||||||
|
|
||||||
# Run irccat to forward messages to IRC
|
# Run irccat to forward messages to IRC
|
||||||
irccat = {
|
irccat = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
67
ops/modules/owothia.nix
Normal file
67
ops/modules/owothia.nix
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
# Run the owothia IRC bot.
|
||||||
|
{ depot, config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.depot.owothia;
|
||||||
|
description = "owothia - i'm a service owo";
|
||||||
|
in {
|
||||||
|
options.services.depot.owothia = {
|
||||||
|
enable = lib.mkEnableOption description;
|
||||||
|
|
||||||
|
secretsFile = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "File path from which systemd should read secrets";
|
||||||
|
default = "/etc/secrets/owothia";
|
||||||
|
};
|
||||||
|
|
||||||
|
owoChance = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
description = "How likely is owo?";
|
||||||
|
default = 200;
|
||||||
|
};
|
||||||
|
|
||||||
|
ircServer = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "IRC server hostname";
|
||||||
|
};
|
||||||
|
|
||||||
|
ircPort = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
description = "IRC server port";
|
||||||
|
};
|
||||||
|
|
||||||
|
ircIdent = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "IRC username";
|
||||||
|
default = "owothia";
|
||||||
|
};
|
||||||
|
|
||||||
|
ircChannels = lib.mkOption {
|
||||||
|
type = with lib.types; listOf str;
|
||||||
|
description = "IRC channels to join";
|
||||||
|
default = [ "#tvl" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
systemd.services.owothia = {
|
||||||
|
inherit description;
|
||||||
|
script = "${depot.fun.owothia}/bin/owothia";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
DynamicUser = true;
|
||||||
|
Restart = "always";
|
||||||
|
EnvironmentFile = cfg.secretsFile;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
OWO_CHANCE = toString cfg.owoChance;
|
||||||
|
IRC_SERVER = cfg.ircServer;
|
||||||
|
IRC_PORT = toString cfg.ircPort;
|
||||||
|
IRC_IDENT = cfg.ircIdent;
|
||||||
|
IRC_CHANNELS = builtins.toJSON cfg.ircChannels;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue