Working on dc bot for server

This commit is contained in:
Jurn Wubben 2025-04-02 08:21:55 +02:00
parent 0a354cc7f0
commit 97a56b4db5
4 changed files with 59 additions and 1 deletions

37
system/server/bot.nix Normal file
View file

@ -0,0 +1,37 @@
{
inputs,
pkgs,
lib,
...
}: let
deno = lib.getExe pkgs.deno;
mainDir = "/var/lib/dcbot/";
programDir = mainDir + "program";
dataDir = mainDir + "data";
config = pkgs.writeText ".env" ''
config
'';
in {
systemd.services.dcbot = {
enable = true;
after = ["network.target"];
wantedBy = ["default.target"];
description = "Jsw's slaafje, discord bot.";
preStart = ''
mkdir -p "${programDir}" "${dataDir}/"
cp -r ${inputs.dcbot}/* "${programDir}/"
cp -r "${config}" "${programDir}/.env"
cd "${programDir}"
${deno} i
'';
serviceConfig = {
StateDirectory = "dcbot";
ExecStart = "${deno} run -A ${programDir}/src/main.ts";
};
};
}

View file

@ -1,4 +1,4 @@
{lib, ...}: {
imports = [./caddy.nix ./transfer-sh.nix ./seafile.nix];
imports = [./caddy.nix ./transfer-sh.nix ./seafile.nix ./bot.nix];
options.niksos.server = lib.mkEnableOption "server servcies (such as caddy)."; #TODO: per service option.
}