{ 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 = { # CertName1 = "/path/to/cert1.pem" # CertName2 = "/path/to/cert2.pem" # } #}; filesystems = { root = "/"; }; memory = { swap_pos = "beside"; # or "below" or "none" }; fail2_ban = { jails = ["sshd"]; #, "anotherjail"] }; last_login = { sils = 2; soispha = 2; nightingale = 2; }; last_run = { }; }; }; }