aboutsummaryrefslogtreecommitdiff
path: root/hosts/sachiel/configuration.nix
diff options
context:
space:
mode:
authorschererleander <leander@schererleander.de>2025-08-17 00:03:59 +0200
committerschererleander <leander@schererleander.de>2025-08-17 00:07:48 +0200
commit24c99cf22e012e07509505b4efdc528589008dd4 (patch)
tree7a1eaa310fe747fe910286eac3c047f936a4a129 /hosts/sachiel/configuration.nix
parent3bb78df81f840bc542140129c488050628b40881 (diff)
feat: rename hosts
Diffstat (limited to 'hosts/sachiel/configuration.nix')
-rw-r--r--hosts/sachiel/configuration.nix138
1 files changed, 138 insertions, 0 deletions
diff --git a/hosts/sachiel/configuration.nix b/hosts/sachiel/configuration.nix
new file mode 100644
index 0000000..781d5c3
--- /dev/null
+++ b/hosts/sachiel/configuration.nix
@@ -0,0 +1,138 @@
+{
+ pkgs,
+ host,
+ username,
+ ...
+}:
+
+{
+ imports = [
+ ./hardware-configuration.nix
+ ];
+
+ boot.tmp.cleanOnBoot = true;
+ zramSwap.enable = true;
+
+ networking = {
+ hostName = host;
+ domain = "schererleander.de";
+ };
+
+ security.sudo = {
+ enable = true;
+ wheelNeedsPassword = false;
+ };
+
+ users.users.root.hashedPassword = "!";
+ users.mutableUsers = false;
+ users.users.${username} = {
+ isNormalUser = true;
+ hashedPassword = "$6$KBblJguEyfEmuWnU$Xf0QqPVacA2qvnzZRpnSE2cmh0kNnMgtVhCrMEDI76buNzuzkuDY6EnO7jPjQlEnoczx6ZPAl2pK.SxezbVa..";
+ extraGroups = [ "wheel" ];
+ openssh.authorizedKeys.keys = [
+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPvlkqlvY4+0o7UIGnFnnRw0HeBq5v7wYJ3kY3teXxxl vps"
+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINL+r0l2i07pl9V9iiGqw5e2f/QAcrMhuraA25HavdNT github-deploy"
+ ];
+ };
+
+ environment.systemPackages = with pkgs; [
+ git
+ gnutar
+ gzip
+ zoxide
+ neovim
+ htop
+ ];
+
+ system.autoUpgrade = {
+ enable = true;
+ allowReboot = true;
+
+ rebootWindow = {
+ lower = "02:00";
+ upper = "05:00";
+ };
+ };
+
+ services.openssh = {
+ enable = true;
+ ports = [ 8693 ];
+ settings = {
+ PasswordAuthentication = false;
+ X11Forwarding = false;
+ PermitRootLogin = "no";
+ };
+ };
+
+ security.acme = {
+ acceptTerms = true;
+ defaults.email = "leander@schererleander.de";
+ };
+
+ services.nginx = {
+ enable = true;
+ recommendedGzipSettings = true;
+ recommendedOptimisation = true;
+ recommendedProxySettings = true;
+ recommendedTlsSettings = true;
+ appendHttpConfig = ''
+ map $scheme $hsts_header {
+ https "max-age=31536000; includeSubdomains; preload";
+ }
+ add_header Strict-Transport-Security $hsts_header;
+ #add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; connect-src 'self'; object-src 'none'; frame-ancestors 'none'; base-uri 'self';" always;
+ add_header 'Referrer-Policy' 'same-origin';
+ add_header X-Frame-Options DENY;
+ add_header X-Content-Type-Options nosniff;
+ '';
+
+ virtualHosts."schererleander.de" = {
+ root = "/var/www/site";
+ forceSSL = true;
+ enableACME = true;
+ locations = {
+ "/" = {
+ tryFiles = "$uri $uri/ /index.html";
+ };
+ };
+ };
+ virtualHosts."cloud.schererleander.de" = {
+ sslCertificate = "/etc/ssl/certs/schererleander.fullchain.pem";
+ sslCertificateKey = "/etc/ssl/private/schererleander.key";
+ forceSSL = true;
+ enableACME = true;
+ };
+ };
+
+ services.nextcloud = {
+ enable = true;
+ package = pkgs.nextcloud31;
+ hostName = "cloud.schererleander.de";
+ https = true;
+ database.createLocally = true;
+ maxUploadSize = "16G";
+ config = {
+ dbtype = "mysql";
+ adminuser = "schererleander";
+ adminpassFile = "/etc/nextcloud-admin-pass";
+ };
+ settings = {
+ maintenance_window_start = 2; # 02:00
+ default_phone_region = "de";
+ overwriteProtocol = "https";
+ };
+ };
+
+ networking.firewall.allowedTCPPorts = [
+ 80
+ 443
+ 8693
+ ];
+
+ nix.settings.experimental-features = [
+ "nix-command"
+ "flakes"
+ ];
+ nixpkgs.config.allowUnfree = true;
+ system.stateVersion = "25.05";
+}