Discord bot working!
This commit is contained in:
parent
215a8d138a
commit
5aa80f4491
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;
|
||||
owner = "jsw";
|
||||
};
|
||||
dcbot = {
|
||||
file = ./dcbot.age;
|
||||
owner = "dcbot";
|
||||
};
|
||||
password.file = ./password.age;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,4 +9,5 @@ let
|
|||
in {
|
||||
"transfer-sh.age".publicKeys = systems;
|
||||
"password.age".publicKeys = systems;
|
||||
"dcbot.age".publicKeys = systems;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,37 +1,61 @@
|
|||
{
|
||||
inputs,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
deno = lib.getExe pkgs.deno;
|
||||
bash = lib.getExe pkgs.bash;
|
||||
|
||||
mainDir = "/var/lib/dcbot/";
|
||||
programDir = mainDir + "program";
|
||||
dataDir = mainDir + "data";
|
||||
denoDir = mainDir + "deno";
|
||||
|
||||
config = pkgs.writeText ".env" ''
|
||||
config
|
||||
'';
|
||||
path = builtins.concatStringsSep ":" (map (x: "${x}/bin/") [pkgs.coreutils pkgs.typst pkgs.deno]);
|
||||
in {
|
||||
systemd.services.dcbot = {
|
||||
enable = true;
|
||||
after = ["network.target"];
|
||||
wantedBy = ["default.target"];
|
||||
description = "Jsw's slaafje, discord bot.";
|
||||
config = lib.mkIf config.niksos.server {
|
||||
systemd.services.dcbot = {
|
||||
enable = true;
|
||||
after = ["network.target"];
|
||||
wantedBy = ["default.target"];
|
||||
description = "Jsw's slaafje, discord bot.";
|
||||
|
||||
preStart = ''
|
||||
mkdir -p "${programDir}" "${dataDir}/"
|
||||
environment = {
|
||||
"DENO_DIR" = denoDir;
|
||||
"PATH" = lib.mkForce path;
|
||||
};
|
||||
|
||||
cp -r ${inputs.dcbot}/* "${programDir}/"
|
||||
cp -r "${config}" "${programDir}/.env"
|
||||
preStart = ''
|
||||
export PATH=${path}
|
||||
|
||||
cd "${programDir}"
|
||||
${deno} i
|
||||
'';
|
||||
serviceConfig = {
|
||||
StateDirectory = "dcbot";
|
||||
ExecStart = "${deno} run -A ${programDir}/src/main.ts";
|
||||
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}"
|
||||
DENO_DIR=${denoDir} deno i
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
StateDirectory = "dcbot";
|
||||
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