commit 40b596d46d222d621730aed00e6a2d4f33b4bf20 Author: Jakub Dorfman Date: Sun Apr 19 01:25:46 2026 +0200 initial commit diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..c52560f --- /dev/null +++ b/configuration.nix @@ -0,0 +1,76 @@ +{ inputs, lib, pkgs, ... }: +{ + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; + + environment.systemPackages = with pkgs; [ + vim + git + ]; + + users.users.reudy = { + isNormalUser = true; + extraGroups = [ "wheel" ]; #sudo + openssh.authorizedKeys.keys = [ + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC6TOSFZ+P0oWTa9U3fX/L9c3btv/lCgzPrwKu621aLDjSbWbaddGhAXQtJvl7GJvs7QN52z+icftK94gdeyTbZyzQtY6JNUVmUs5EHlZlYTkAYSFN/rkn6N7/n9aYRN+vd8r0B4IrP5gTPtGglLD16dfukpOgwtQj/eK6tqZpVlZ7LnKK7UaA6a4OXMYgJZAwdzAOfFGfbO++5q+igBdfNJmh5LtYMI6te8AlJGBSVierzeStEzTVbIys1EsyNrEMzAljHBxxco2L7enNmz4xciRNCQ/za5xPmhf8nOoZTIalBziM52DGH6rFzUEBVsqez1U2U4ajVzdSIudOlku4w63YnClHeGNu9AdHJjR7PbIHwui17aGKM/l/Qv/LOWWo+nfO1hbCl0fGZwVkl8p4yR3WM73OWEHn1f+Uc4cWAUDZ/ZDPE0qyA/HAnSA6dfzY66y2evjRBeekA4zcxgmc7Q/2XfKHDYMEKTNkgdO6UAFoUqW4BiyF36FcS1ccjUok= root@DESKTOP-40EVMS3" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJahgKnADam4PGc9TiANkWGx09uNuS42tllj70UuyzPf u0_a279@localhost" + ]; + }; + security.sudo.wheelNeedsPassword = true; + + + services.openssh = { + enable = true; + + # Allow root login with password, needed for passwords set through vpsAdmin + settings = { + PermitRootLogin = "no"; + PasswordAuthentication = false; + KbdInteractiveAuthentication = false; + X11Forwarding = false; + AllowUsers = [ "reudy" ]; + }; + + ports = [ 14902 ]; + + # Needed for public keys deployed through vpsAdmin, can be disabled if you + # authorize your keys in configuration + authorizedKeysInHomedir = true; + }; + + # fail2ban + services.fail2ban = { + enable = true; + maxretry = 5; + bantime = "24h"; + bantime-increment = { + enable = true; + multipliers = "1 2 4 8 16 32 64"; + maxtime = "168h"; + overalljails = true; + }; + jails.sshd.settings = { + enabled = true; + port = "14902"; + maxretry = 3; + findtime = "10m"; + bantime = "1h"; + }; + }; + + # Networking + networking.firewall = { + enable = true; + allowedTCPPorts = [ 80 443 14902 ]; # http https ssh + }; + + systemd.settings.Manager = { + DefaultTimeoutStartSec = "900s"; + }; + + time.timeZone = "Europe/Amsterdam"; + + system.stateVersion = "25.11"; +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..7551838 --- /dev/null +++ b/flake.lock @@ -0,0 +1 @@ +{"nodes":{"home-manager":{"inputs":{"nixpkgs":["vpsadminos","impermanence","nixpkgs"]},"locked":{"lastModified":1768598210,"narHash":"sha256-kkgA32s/f4jaa4UG+2f8C225Qvclxnqs76mf8zvTVPg=","owner":"nix-community","repo":"home-manager","rev":"c47b2cc64a629f8e075de52e4742de688f930dc6","type":"github"},"original":{"owner":"nix-community","repo":"home-manager","type":"github"}},"impermanence":{"inputs":{"home-manager":"home-manager","nixpkgs":"impermanence-nixpkgs"},"locked":{"lastModified":1769548169,"narHash":"sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=","owner":"nix-community","repo":"impermanence","rev":"7b1d382faf603b6d264f58627330f9faa5cba149","type":"github"},"original":{"owner":"nix-community","repo":"impermanence","type":"github"}},"impermanence-nixpkgs":{"locked":{"lastModified":1768564909,"narHash":"sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=","owner":"nixos","repo":"nixpkgs","rev":"e4bae1bd10c9c57b2cf517953ab70060a828ee6f","type":"github"},"original":{"owner":"nixos","ref":"nixos-unstable","repo":"nixpkgs","type":"github"}},"nixpkgs":{"locked":{"lastModified":1773375660,"narHash":"sha256-SEzUWw2Rf5Ki3bcM26nSKgbeoqi2uYy8IHVBqOKjX3w=","owner":"NixOS","repo":"nixpkgs","rev":"3e20095fe3c6cbb1ddcef89b26969a69a1570776","type":"github"},"original":{"owner":"NixOS","ref":"nixos-25.11","repo":"nixpkgs","type":"github"}},"root":{"inputs":{"nixpkgs":"nixpkgs","vpsadminos":"vpsadminos"}},"vpsadminos":{"inputs":{"impermanence":"impermanence","nixpkgs":"vpsadminos-nixpkgs","nixpkgsUnstable":"vpsadminos-nixpkgs-unstable"},"locked":{"owner":"vpsfreecz","repo":"vpsadminos","rev":"6549ff8377df16beb873d0cb9f59223774a358f9","type":"github"},"original":{"owner":"vpsfreecz","repo":"vpsadminos","type":"github"}},"vpsadminos-nixpkgs":{"locked":{"lastModified":1773375660,"narHash":"sha256-SEzUWw2Rf5Ki3bcM26nSKgbeoqi2uYy8IHVBqOKjX3w=","owner":"NixOS","repo":"nixpkgs","rev":"3e20095fe3c6cbb1ddcef89b26969a69a1570776","type":"github"},"original":{"owner":"NixOS","ref":"nixos-25.11","repo":"nixpkgs","type":"github"}},"vpsadminos-nixpkgs-unstable":{"locked":{"lastModified":1773282481,"narHash":"sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=","owner":"NixOS","repo":"nixpkgs","rev":"fe416aaedd397cacb33a610b33d60ff2b431b127","type":"github"},"original":{"owner":"NixOS","ref":"nixos-unstable","repo":"nixpkgs","type":"github"}}},"root":"root","version":7} \ No newline at end of file diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..ad39809 --- /dev/null +++ b/flake.nix @@ -0,0 +1,31 @@ +{ + description = "vpsAdminOS container"; + + inputs = { + vpsadminos.url = "github:vpsfreecz/vpsadminos"; + + nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; + }; + + outputs = + inputs@{ + nixpkgs, + vpsadminos, + ... + }: + let + system = "x86_64-linux"; + in + { + nixosConfigurations.vps = nixpkgs.lib.nixosSystem { + inherit system; + modules = [ + vpsadminos.nixosModules.container_25_11 + ./configuration.nix + ]; + specialArgs = { + inherit inputs; + }; + }; + }; +}