summary refs log tree commit diff stats
path: root/system/services/rust-motd
diff options
context:
space:
mode:
Diffstat (limited to 'system/services/rust-motd')
-rw-r--r--system/services/rust-motd/default.nix91
1 files changed, 91 insertions, 0 deletions
diff --git a/system/services/rust-motd/default.nix b/system/services/rust-motd/default.nix
new file mode 100644
index 0000000..1a41b32
--- /dev/null
+++ b/system/services/rust-motd/default.nix
@@ -0,0 +1,91 @@
+{
+  config,
+  pkgs,
+  ...
+}: {
+  systemd.services.rust-motd = {
+    path = builtins.attrValues {
+      inherit
+        (pkgs)
+        bash
+        fail2ban # Needed for rust-motd fail2ban integration
+        ;
+    };
+  };
+  programs.rust-motd = {
+    enable = true;
+    enableMotdInSSHD = true;
+    refreshInterval = "*:0/5"; # 0/5 means: hour 0 AND all hour wich match (0 + 5 * x) (is the same as: 0, 5, 10, 15, 20)
+    settings = {
+      global = {
+        progress_full_character = "=";
+        progress_empty_character = "-";
+        progress_prefix = "[";
+        progress_suffix = "]";
+        time_format = "%Y-%m-%d %H:%M:%S";
+      };
+
+      banner = {
+        color = "red";
+        command = "${pkgs.hostname}/bin/hostname | ${pkgs.figlet}/bin/figlet -f slant";
+        # if you don't want a dependency on figlet, you can generate your
+        # banner however you want, put it in a file, and then use something like:
+        # command = "cat banner.txt"
+      };
+
+      # [weather]
+      # url = "https://wttr.in/New+York,New+York?0"
+      # proxy = "http://proxy:8080"
+
+      # [service_status]
+      # Accounts = "accounts-daemon"
+      # Cron = "cron"
+
+      # [docker_status]
+      # Local containers MUST start with a slash
+      # https://github.com/moby/moby/issues/6705
+      #"/nextcloud-nextcloud-1" = "Nextcloud"
+      #"/nextcloud-nextcloud-mariadb-1" = "Nextcloud Database"
+
+      uptime = {
+        prefix = "Uptime:";
+      };
+
+      # [user_service_status]
+      # gpg-agent = "gpg-agent"
+
+      s_s_l_certs = {
+        sort_method = "manual";
+
+        certs = {
+          "server1.vhack.eu" = "/var/lib/acme/server1.vhack.eu/cert.pem";
+          "vhack.eu" = "/var/lib/acme/vhack.eu/cert.pem";
+        };
+      };
+
+      filesystems = {
+        root = "/";
+        persistent = "/srv";
+        store = "/nix";
+        boot = "/boot";
+      };
+
+      memory = {
+        swap_pos = "beside"; # or "below" or "none"
+      };
+
+      fail2_ban = {
+        jails = ["sshd"]; #, "anotherjail"]
+      };
+
+      last_login = {
+        sils = 2;
+        soispha = 2;
+        nightingale = 2;
+      };
+
+      last_run = {
+      };
+    };
+  };
+}