Discord bot working!
This commit is contained in:
parent
97a56b4db5
commit
bcc455bfff
4 changed files with 48 additions and 19 deletions
BIN
secrets/dcbot.age
Normal file
BIN
secrets/dcbot.age
Normal file
Binary file not shown.
|
|
@ -4,6 +4,10 @@
|
||||||
file = ./transfer-sh.age;
|
file = ./transfer-sh.age;
|
||||||
owner = "jsw";
|
owner = "jsw";
|
||||||
};
|
};
|
||||||
|
dcbot = {
|
||||||
|
file = ./dcbot.age;
|
||||||
|
owner = "dcbot";
|
||||||
|
};
|
||||||
password.file = ./password.age;
|
password.file = ./password.age;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,5 @@ let
|
||||||
in {
|
in {
|
||||||
"transfer-sh.age".publicKeys = systems;
|
"transfer-sh.age".publicKeys = systems;
|
||||||
"password.age".publicKeys = systems;
|
"password.age".publicKeys = systems;
|
||||||
|
"dcbot.age".publicKeys = systems;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,37 +1,61 @@
|
||||||
{
|
{
|
||||||
inputs,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
|
inputs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
deno = lib.getExe pkgs.deno;
|
deno = lib.getExe pkgs.deno;
|
||||||
|
bash = lib.getExe pkgs.bash;
|
||||||
|
|
||||||
mainDir = "/var/lib/dcbot/";
|
mainDir = "/var/lib/dcbot/";
|
||||||
programDir = mainDir + "program";
|
programDir = mainDir + "program";
|
||||||
dataDir = mainDir + "data";
|
dataDir = mainDir + "data";
|
||||||
|
denoDir = mainDir + "deno";
|
||||||
|
|
||||||
config = pkgs.writeText ".env" ''
|
path = builtins.concatStringsSep ":" (map (x: "${x}/bin/") [pkgs.coreutils pkgs.typst pkgs.deno]);
|
||||||
config
|
|
||||||
'';
|
|
||||||
in {
|
in {
|
||||||
|
config = lib.mkIf config.niksos.server {
|
||||||
systemd.services.dcbot = {
|
systemd.services.dcbot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
after = ["network.target"];
|
after = ["network.target"];
|
||||||
wantedBy = ["default.target"];
|
wantedBy = ["default.target"];
|
||||||
description = "Jsw's slaafje, discord bot.";
|
description = "Jsw's slaafje, discord bot.";
|
||||||
|
|
||||||
preStart = ''
|
environment = {
|
||||||
mkdir -p "${programDir}" "${dataDir}/"
|
"DENO_DIR" = denoDir;
|
||||||
|
"PATH" = lib.mkForce path;
|
||||||
|
};
|
||||||
|
|
||||||
cp -r ${inputs.dcbot}/* "${programDir}/"
|
preStart = ''
|
||||||
cp -r "${config}" "${programDir}/.env"
|
export PATH=${path}
|
||||||
|
|
||||||
|
cd "${mainDir}"
|
||||||
|
chown -R dcbot:dcbot ${mainDir}* || echo
|
||||||
|
chmod -R 750 ${mainDir}* || echo
|
||||||
|
|
||||||
|
mkdir -p "${programDir}" "${dataDir}" "${denoDir}"
|
||||||
|
cp --no-preserve=mode,ownership -r ${inputs.dcbot}/* "${programDir}/"
|
||||||
|
|
||||||
|
rm "${dataDir}/.env"
|
||||||
|
ln -s "${config.age.secrets.dcbot.path}" "${dataDir}/.env"
|
||||||
|
|
||||||
cd "${programDir}"
|
cd "${programDir}"
|
||||||
${deno} i
|
DENO_DIR=${denoDir} deno i
|
||||||
'';
|
'';
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
StateDirectory = "dcbot";
|
StateDirectory = "dcbot";
|
||||||
ExecStart = "${deno} run -A ${programDir}/src/main.ts";
|
ExecStart = "${bash} -c 'cd ${dataDir} && deno run -A ${programDir}/src/main.ts'";
|
||||||
|
User = "dcbot";
|
||||||
|
group = "dcbot";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.groups."dcbot" = {};
|
||||||
|
users.users."dcbot" = {
|
||||||
|
group = "dcbot";
|
||||||
|
isSystemUser = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue