From cb69f4ae60e2d94039a7bb0b5caa566a9d288686 Mon Sep 17 00:00:00 2001 From: ene Date: Sun, 5 Feb 2023 08:58:11 +0100 Subject: Fix: correct host name and convenience changes We used the domain name instead of the host name, which obviously doesn't work for multiple host. In addition to that I changed some directory to make importing easier and enabled the "nix-command" and "flakes" experimental options, to make the `nix flake check` command usable. Refs: #15 --- services/minecraft.nix | 26 -------------- services/opensshd.nix | 18 ---------- services/rust-motd.nix | 79 ----------------------------------------- services/services.nix | 8 +++++ services/services/minecraft.nix | 26 ++++++++++++++ services/services/nix.nix | 18 ++++++++++ services/services/opensshd.nix | 18 ++++++++++ services/services/rust-motd.nix | 79 +++++++++++++++++++++++++++++++++++++++++ 8 files changed, 149 insertions(+), 123 deletions(-) delete mode 100644 services/minecraft.nix delete mode 100644 services/opensshd.nix delete mode 100644 services/rust-motd.nix create mode 100644 services/services.nix create mode 100644 services/services/minecraft.nix create mode 100644 services/services/nix.nix create mode 100644 services/services/opensshd.nix create mode 100644 services/services/rust-motd.nix (limited to 'services') diff --git a/services/minecraft.nix b/services/minecraft.nix deleted file mode 100644 index 5882d9a..0000000 --- a/services/minecraft.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - config, - pkgs, - ... -}: { - users = { - groups.minecraft = {}; - users.minecraft = { - isSystemUser = true; - group = "minecraft"; - }; - }; - systemd.services.minecraft = { - wantedBy = "multi-user.target"; - after = "network.target"; - description = "Minecraft Server"; - serviceConfig = { - WorkingDirectory = "/srv/minecraft"; - User = "minecraft"; - Group = "minecraft"; - Restart = "always"; - ExecStart = "${pkgs.openjdk}/bin/java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar --nogui"; - SyslogIdentifier = "minecraft-server"; - }; - }; -} diff --git a/services/opensshd.nix b/services/opensshd.nix deleted file mode 100644 index cb9f2ba..0000000 --- a/services/opensshd.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - config, - pkg, - ... -}: { - services.openssh = { - enable = true; - passwordAuthentication = false; - hostKeys = [ - { - comment = "key comment"; - path = "/srv/sshd/ssh_host_ed25519_key"; - rounds = 1000; - type = "ed25519"; - } - ]; - }; -} diff --git a/services/rust-motd.nix b/services/rust-motd.nix deleted file mode 100644 index 21bc1cd..0000000 --- a/services/rust-motd.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ - config, - pkgs, - ... -}: { - 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 = { - }; - }; - }; -} diff --git a/services/services.nix b/services/services.nix new file mode 100644 index 0000000..6983529 --- /dev/null +++ b/services/services.nix @@ -0,0 +1,8 @@ +{config, ...}: { + imports = [ + ./services/minecraft.nix + ./services/nix.nix + ./services/opensshd.nix + ./services/rust-motd.nix + ]; +} diff --git a/services/services/minecraft.nix b/services/services/minecraft.nix new file mode 100644 index 0000000..5882d9a --- /dev/null +++ b/services/services/minecraft.nix @@ -0,0 +1,26 @@ +{ + config, + pkgs, + ... +}: { + users = { + groups.minecraft = {}; + users.minecraft = { + isSystemUser = true; + group = "minecraft"; + }; + }; + systemd.services.minecraft = { + wantedBy = "multi-user.target"; + after = "network.target"; + description = "Minecraft Server"; + serviceConfig = { + WorkingDirectory = "/srv/minecraft"; + User = "minecraft"; + Group = "minecraft"; + Restart = "always"; + ExecStart = "${pkgs.openjdk}/bin/java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar --nogui"; + SyslogIdentifier = "minecraft-server"; + }; + }; +} diff --git a/services/services/nix.nix b/services/services/nix.nix new file mode 100644 index 0000000..bd562ec --- /dev/null +++ b/services/services/nix.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + pkgs, + ... +}: { + nix = { + # gc = { + # automatic = true; + # dates = "daily"; + # options = "--delete-older-than 3"; + # }; + settings = { + auto-optimise-store = true; + experimental-features = ["nix-command" "flakes"]; + }; + }; +} diff --git a/services/services/opensshd.nix b/services/services/opensshd.nix new file mode 100644 index 0000000..cb9f2ba --- /dev/null +++ b/services/services/opensshd.nix @@ -0,0 +1,18 @@ +{ + config, + pkg, + ... +}: { + services.openssh = { + enable = true; + passwordAuthentication = false; + hostKeys = [ + { + comment = "key comment"; + path = "/srv/sshd/ssh_host_ed25519_key"; + rounds = 1000; + type = "ed25519"; + } + ]; + }; +} diff --git a/services/services/rust-motd.nix b/services/services/rust-motd.nix new file mode 100644 index 0000000..21bc1cd --- /dev/null +++ b/services/services/rust-motd.nix @@ -0,0 +1,79 @@ +{ + config, + pkgs, + ... +}: { + 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 = { + }; + }; + }; +} -- cgit 1.4.1 From 1b73e041b1aff42d3fdb448931c4aafdea986da8 Mon Sep 17 00:00:00 2001 From: ene Date: Sun, 5 Feb 2023 10:25:28 +0100 Subject: Feat: Use default.nix --- hosts/server1/configuration.nix | 4 ++-- services/default.nix | 8 ++++++++ services/services.nix | 8 -------- system/default.nix | 8 ++++++++ system/system.nix | 8 -------- 5 files changed, 18 insertions(+), 18 deletions(-) create mode 100644 services/default.nix delete mode 100644 services/services.nix create mode 100644 system/default.nix delete mode 100644 system/system.nix (limited to 'services') diff --git a/hosts/server1/configuration.nix b/hosts/server1/configuration.nix index 6f91fc0..729ef0f 100644 --- a/hosts/server1/configuration.nix +++ b/hosts/server1/configuration.nix @@ -2,9 +2,9 @@ imports = [ ./networking.nix # network configuration that just works - ../../system/system.nix + ../../system - ../../services/services.nix + ../../services ]; boot.cleanTmpDir = true; diff --git a/services/default.nix b/services/default.nix new file mode 100644 index 0000000..6983529 --- /dev/null +++ b/services/default.nix @@ -0,0 +1,8 @@ +{config, ...}: { + imports = [ + ./services/minecraft.nix + ./services/nix.nix + ./services/opensshd.nix + ./services/rust-motd.nix + ]; +} diff --git a/services/services.nix b/services/services.nix deleted file mode 100644 index 6983529..0000000 --- a/services/services.nix +++ /dev/null @@ -1,8 +0,0 @@ -{config, ...}: { - imports = [ - ./services/minecraft.nix - ./services/nix.nix - ./services/opensshd.nix - ./services/rust-motd.nix - ]; -} diff --git a/system/default.nix b/system/default.nix new file mode 100644 index 0000000..2af4982 --- /dev/null +++ b/system/default.nix @@ -0,0 +1,8 @@ +{config, ...}: { + imports = [ + ./system/fileSystemLayouts.nix + ./system/hardware.nix + ./system/packages.nix + ./system/users.nix + ]; +} diff --git a/system/system.nix b/system/system.nix deleted file mode 100644 index 2af4982..0000000 --- a/system/system.nix +++ /dev/null @@ -1,8 +0,0 @@ -{config, ...}: { - imports = [ - ./system/fileSystemLayouts.nix - ./system/hardware.nix - ./system/packages.nix - ./system/users.nix - ]; -} -- cgit 1.4.1