Summary Files Commits Branches @commit @diff @stats
path: root / modules
diff options
context:
space:
mode:
Commit8f77ce7a5ceb8dec7cfea38d2031624027fd0d3e (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-07-01 12:16:40 +0300
Committer
 Syndamia <kamen@syndamia.com>
2025-07-01 12:16:40 +0300
Filesa7f973829fa92f8d9e3ab7026d81e0587bf628d3 /modules
nix-8f77ce7a5ceb8dec7cfea38d2031624027fd0d3e.tar
nix-8f77ce7a5ceb8dec7cfea38d2031624027fd0d3e.tar.gz
nix-8f77ce7a5ceb8dec7cfea38d2031624027fd0d3e.zip
Parentaf422eab2e6917383cc321cc0393210f1585e631 (diff)
feat(machines): Add configuration for marduk server
This is a small home server
4 files changed, 94 insertions, 0 deletions
-rw-r--r--modules/server/cli-essential.nix21
-rw-r--r--modules/server/default.nix64
l---------modules/server/fonts.nix1
-rw-r--r--modules/server/users-standard.nix8
diff --git a/modules/server/cli-essential.nix b/modules/server/cli-essential.nix
new file mode 100644
index 0000000..3f5c6e7
--- /dev/null
+++ b/modules/server/cli-essential.nix
@@ -0,0 +1,21 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ dash htop rlwrap bc
+ # Hardware
+ lm_sensors lshw
+ # Network
+ curl wget git rsync inetutils netcat
+ # Files
+ vim-full nnn
+ # Archive formats
+ gnutar p7zip zip unzip rar unrar
+ ];
+
+ programs = {
+ gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ pinentryPackage = pkgs.pinentry-tty;
+ };
+ };
+}
diff --git a/modules/server/default.nix b/modules/server/default.nix
new file mode 100644
index 0000000..058276c
--- /dev/null
+++ b/modules/server/default.nix
@@ -0,0 +1,64 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ networkmanager
+ ];
+
+ #
+ # Kernel
+ #
+
+ boot.kernelModules = [ "kvm-intel" ];
+
+ #
+ # Bootloader
+ #
+
+ boot.loader = {
+ grub = {
+ enable = true;
+ copyKernels = true;
+ efiSupport = true;
+ efiInstallAsRemovable = true;
+ # Define on which hard drive you want to install Grub
+ device = "nodev"; # or "nodev" for efi only
+ };
+ timeout = 1;
+ };
+
+ #
+ # Timezone and locale
+ #
+
+ # Set your time zone.
+ time.timeZone = "Europe/Sofia";
+ # Select internationalisation properties.
+ i18n.defaultLocale = "en_US.UTF-8";
+
+ #
+ # Networking
+ #
+
+ networking = {
+ networkmanager.enable = true;
+ firewall.allowedTCPPorts = [ 2200 ];
+ };
+
+ # zeroconf networking
+ services.avahi = {
+ enable = true;
+ nssmdns4 = true;
+ openFirewall = true;
+ };
+
+ services.openssh = {
+ enable = true;
+ ports = [ 2200 ];
+ settings = {
+ PasswordAuthentication = true;
+ AllowUsers = [ "admin" ];
+ UseDns = true;
+ X11Forwarding = true;
+ PermitRootLogin = "no";
+ };
+ };
+}
diff --git a/modules/server/fonts.nix b/modules/server/fonts.nix
new file mode 120000
index 0000000..9bd6055
--- /dev/null
+++ b/modules/server/fonts.nix
@@ -0,0 +1 @@
+../personal/fonts.nix \ No newline at end of file
diff --git a/modules/server/users-standard.nix b/modules/server/users-standard.nix
new file mode 100644
index 0000000..ae9b30b
--- /dev/null
+++ b/modules/server/users-standard.nix
@@ -0,0 +1,8 @@
+{ pkgs, ... }: {
+ users.users.admin = {
+ isNormalUser = true;
+ extraGroups = [ "wheel" "audio" "video" "input" "plugdev" ];
+ packages = [ ];
+ shell = pkgs.bash;
+ };
+}