initial commit

This commit is contained in:
Jakub Dorfman 2026-04-19 01:25:46 +02:00
commit 40b596d46d
3 changed files with 108 additions and 0 deletions

76
configuration.nix Normal file
View file

@ -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";
}

1
flake.lock generated Normal file
View file

@ -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}

31
flake.nix Normal file
View file

@ -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;
};
};
};
}