From 97a56b4db512b78bb94d94ea4a2afeeef9ff75f8 Mon Sep 17 00:00:00 2001 From: Jurn Wubben Date: Wed, 2 Apr 2025 08:21:55 +0200 Subject: [PATCH] Working on dc bot for server --- flake.lock | 17 +++++++++++++++++ flake.nix | 4 ++++ system/server/bot.nix | 37 +++++++++++++++++++++++++++++++++++++ system/server/default.nix | 2 +- 4 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 system/server/bot.nix diff --git a/flake.lock b/flake.lock index 522148b..d69fba0 100644 --- a/flake.lock +++ b/flake.lock @@ -110,6 +110,22 @@ "type": "github" } }, + "dcbot": { + "flake": false, + "locked": { + "lastModified": 1739659068, + "narHash": "sha256-MLl4wWl5mcOpz17lWDfPypSPH9jc5vKKifvfl00mkMQ=", + "owner": "jsw08", + "repo": "dcbot", + "rev": "6c7e4dd0dc9bd580a67e1f00ba0b6e05f7a85bf5", + "type": "github" + }, + "original": { + "owner": "jsw08", + "repo": "dcbot", + "type": "github" + } + }, "firefox-gnome-theme": { "flake": false, "locked": { @@ -714,6 +730,7 @@ "root": { "inputs": { "agenix": "agenix", + "dcbot": "dcbot", "flake-parts": "flake-parts", "hm": "hm", "nixcord": "nixcord", diff --git a/flake.nix b/flake.nix index 5ab046c..d860cfc 100644 --- a/flake.nix +++ b/flake.nix @@ -47,6 +47,10 @@ nixcord.url = "github:kaylorben/nixcord"; somcli.url = "github:jsw08/somcli"; + dcbot = { + url = "github:jsw08/dcbot"; + flake = false; + }; agenix.url = "github:ryantm/agenix"; }; diff --git a/system/server/bot.nix b/system/server/bot.nix new file mode 100644 index 0000000..2eaa2c0 --- /dev/null +++ b/system/server/bot.nix @@ -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"; + }; + }; +} diff --git a/system/server/default.nix b/system/server/default.nix index 225bf10..658cbb3 100644 --- a/system/server/default.nix +++ b/system/server/default.nix @@ -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. }