summary refs log tree commit diff
diff options
context:
space:
mode:
authorTheArcaneBrony <myrainbowdash949@gmail.com>2023-12-14 07:24:04 +0100
committerTheArcaneBrony <myrainbowdash949@gmail.com>2023-12-14 07:24:55 +0100
commitd935a4f3e1d67152149945adc31b7886ccf37701 (patch)
treeae4d39bda4c767b4675d6477c7d9c3ed88939237
parentUpdate synapse cache settings (diff)
downloadRory-Open-Architecture-d935a4f3e1d67152149945adc31b7886ccf37701.tar.xz
Desktop updates
-rw-r--r--flake.lock421
-rw-r--r--host/Rory-desktop/configuration.nix97
-rw-r--r--host/Rory-desktop/mariadb.nix10
-rw-r--r--host/Rory-desktop/nginx.nix39
-rwxr-xr-xhost/Rory-desktop/nginx/discord.localhost.nix37
-rwxr-xr-xhost/Rory-desktop/postgres.nix34
-rwxr-xr-xmodules/base.nix6
-rwxr-xr-xmodules/users/Rory.nix1
-rw-r--r--modules/users/Rory/p10k.zsh4
-rw-r--r--modules/users/Rory/wallpaper.webpbin0 -> 598752 bytes
10 files changed, 181 insertions, 468 deletions
diff --git a/flake.lock b/flake.lock
deleted file mode 100644
index f484198..0000000
--- a/flake.lock
+++ /dev/null
@@ -1,421 +0,0 @@
-{
-  "nodes": {
-    "botcore-v4": {
-      "inputs": {
-        "nixpkgs": "nixpkgs"
-      },
-      "locked": {
-        "lastModified": 1683656302,
-        "narHash": "sha256-I2eu+9/i0ktqNzQwkc0NuczQ2UThCBf8L9xnZ8v3NSM=",
-        "owner": "BotCore-Devs",
-        "repo": "BotCore-v4",
-        "rev": "0e8738ba7df060782df050dc733b0bfc8c499830",
-        "type": "gitlab"
-      },
-      "original": {
-        "owner": "BotCore-Devs",
-        "ref": "staging",
-        "repo": "BotCore-v4",
-        "type": "gitlab"
-      }
-    },
-    "conduit": {
-      "inputs": {
-        "crane": "crane",
-        "fenix": "fenix",
-        "flake-utils": "flake-utils",
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1694631477,
-        "narHash": "sha256-35SgWnBkWTyyRwVPyUKoShjzXfX0H1+HDdEEjZ/LsXc=",
-        "owner": "famedly",
-        "repo": "conduit",
-        "rev": "3bfdae795d4d9ec9aeaac7465e7535ac88e47756",
-        "type": "gitlab"
-      },
-      "original": {
-        "owner": "famedly",
-        "repo": "conduit",
-        "type": "gitlab"
-      }
-    },
-    "crane": {
-      "inputs": {
-        "flake-compat": "flake-compat",
-        "flake-utils": [
-          "conduit",
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "conduit",
-          "nixpkgs"
-        ],
-        "rust-overlay": "rust-overlay"
-      },
-      "locked": {
-        "lastModified": 1688772518,
-        "narHash": "sha256-ol7gZxwvgLnxNSZwFTDJJ49xVY5teaSvF7lzlo3YQfM=",
-        "owner": "ipetkov",
-        "repo": "crane",
-        "rev": "8b08e96c9af8c6e3a2b69af5a7fa168750fcf88e",
-        "type": "github"
-      },
-      "original": {
-        "owner": "ipetkov",
-        "repo": "crane",
-        "type": "github"
-      }
-    },
-    "fenix": {
-      "inputs": {
-        "nixpkgs": [
-          "conduit",
-          "nixpkgs"
-        ],
-        "rust-analyzer-src": "rust-analyzer-src"
-      },
-      "locked": {
-        "lastModified": 1689488573,
-        "narHash": "sha256-diVASflKCCryTYv0djvMnP2444mFsIG0ge5pa7ahauQ=",
-        "owner": "nix-community",
-        "repo": "fenix",
-        "rev": "39096fe3f379036ff4a5fa198950b8e79defe939",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "repo": "fenix",
-        "type": "github"
-      }
-    },
-    "flake-compat": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1673956053,
-        "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
-        "owner": "edolstra",
-        "repo": "flake-compat",
-        "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
-        "type": "github"
-      },
-      "original": {
-        "owner": "edolstra",
-        "repo": "flake-compat",
-        "type": "github"
-      }
-    },
-    "flake-compat_2": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1696426674,
-        "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
-        "owner": "edolstra",
-        "repo": "flake-compat",
-        "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
-        "type": "github"
-      },
-      "original": {
-        "owner": "edolstra",
-        "repo": "flake-compat",
-        "type": "github"
-      }
-    },
-    "flake-utils": {
-      "inputs": {
-        "systems": "systems"
-      },
-      "locked": {
-        "lastModified": 1689068808,
-        "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
-        "type": "github"
-      },
-      "original": {
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "type": "github"
-      }
-    },
-    "flake-utils_2": {
-      "inputs": {
-        "systems": "systems_2"
-      },
-      "locked": {
-        "lastModified": 1694529238,
-        "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
-        "type": "github"
-      },
-      "original": {
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "type": "github"
-      }
-    },
-    "home-manager": {
-      "inputs": {
-        "nixpkgs": "nixpkgs_2"
-      },
-      "locked": {
-        "lastModified": 1701071203,
-        "narHash": "sha256-lQywA7QU/vzTdZ1apI0PfgCWNyQobXUYghVrR5zuIeM=",
-        "owner": "nix-community",
-        "repo": "home-manager",
-        "rev": "db1878f013b52ba5e4034db7c1b63e8d04173a86",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "ref": "master",
-        "repo": "home-manager",
-        "type": "github"
-      }
-    },
-    "mtxclientSrc": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1700483982,
-        "narHash": "sha256-xKuY3IxaFdrxlxDH3t3ZmVWWOcqzAZvl/97mQOk1Tek=",
-        "owner": "Nheko-reborn",
-        "repo": "mtxclient",
-        "rev": "901ec5e35f76ebdff732ea28953b772ec7024df3",
-        "type": "github"
-      },
-      "original": {
-        "owner": "Nheko-reborn",
-        "ref": "master",
-        "repo": "mtxclient",
-        "type": "github"
-      }
-    },
-    "nhekoSrc": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1701184356,
-        "narHash": "sha256-gmMyj17GDtD3kkZwM9yvhrM3fxRgGkcqG6togS6IkNI=",
-        "owner": "Nheko-reborn",
-        "repo": "nheko",
-        "rev": "242f61c8a3e34c56cf6274f7f7bb9b6dc59fe347",
-        "type": "github"
-      },
-      "original": {
-        "owner": "Nheko-reborn",
-        "ref": "master",
-        "repo": "nheko",
-        "type": "github"
-      }
-    },
-    "nixos-wsl": {
-      "inputs": {
-        "flake-compat": "flake-compat_2",
-        "flake-utils": "flake-utils_2",
-        "nixpkgs": "nixpkgs_3"
-      },
-      "locked": {
-        "lastModified": 1701180944,
-        "narHash": "sha256-trdDWPG5iuI07rEkmiGhmKs38bxMY6tqj4frB/W+yxE=",
-        "owner": "nix-community",
-        "repo": "NixOS-WSL",
-        "rev": "b4354a924111b7f09ba5a3d1ce38717c7f29a581",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "repo": "NixOS-WSL",
-        "type": "github"
-      }
-    },
-    "nixpkgs": {
-      "locked": {
-        "lastModified": 1683408522,
-        "narHash": "sha256-9kcPh6Uxo17a3kK3XCHhcWiV1Yu1kYj22RHiymUhMkU=",
-        "owner": "nixos",
-        "repo": "nixpkgs",
-        "rev": "897876e4c484f1e8f92009fd11b7d988a121a4e7",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nixos",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs-RoryNix": {
-      "locked": {
-        "lastModified": 1701053011,
-        "narHash": "sha256-8QQ7rFbKFqgKgLoaXVJRh7Ik5LtI3pyBBCfOnNOGkF0=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "5b528f99f73c4fad127118a8c1126b5e003b01a9",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-23.05",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs-rory": {
-      "locked": {
-        "lastModified": 1701265472,
-        "narHash": "sha256-zVOimU5+eb3jMM+k2U/rAJTCc4dU1nNHM/uQ2A9GLiM=",
-        "owner": "TheArcaneBrony",
-        "repo": "nixpkgs",
-        "rev": "9eb247bae34dc2db97cd7bb3b68a65e0eea800e9",
-        "type": "github"
-      },
-      "original": {
-        "owner": "TheArcaneBrony",
-        "ref": "master",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs_2": {
-      "locked": {
-        "lastModified": 1700794826,
-        "narHash": "sha256-RyJTnTNKhO0yqRpDISk03I/4A67/dp96YRxc86YOPgU=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "5a09cb4b393d58f9ed0d9ca1555016a8543c2ac8",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs_3": {
-      "locked": {
-        "lastModified": 1697851979,
-        "narHash": "sha256-lJ8k4qkkwdvi+t/Xc6Fn74kUuobpu9ynPGxNZR6OwoA=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "5550a85a087c04ddcace7f892b0bdc9d8bb080c8",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-23.05",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs_4": {
-      "locked": {
-        "lastModified": 1701068326,
-        "narHash": "sha256-vmMceA+q6hG1yrjb+MP8T0YFDQIrW3bl45e7z24IEts=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "8cfef6986adfb599ba379ae53c9f5631ecd2fd9c",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "root": {
-      "inputs": {
-        "botcore-v4": "botcore-v4",
-        "conduit": "conduit",
-        "home-manager": "home-manager",
-        "mtxclientSrc": "mtxclientSrc",
-        "nhekoSrc": "nhekoSrc",
-        "nixos-wsl": "nixos-wsl",
-        "nixpkgs": "nixpkgs_4",
-        "nixpkgs-RoryNix": "nixpkgs-RoryNix",
-        "nixpkgs-rory": "nixpkgs-rory"
-      }
-    },
-    "rust-analyzer-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1689441253,
-        "narHash": "sha256-4MSDZaFI4DOfsLIZYPMBl0snzWhX1/OqR/QHir382CY=",
-        "owner": "rust-lang",
-        "repo": "rust-analyzer",
-        "rev": "996e054f1eb1dbfc8455ecabff0f6ff22ba7f7c8",
-        "type": "github"
-      },
-      "original": {
-        "owner": "rust-lang",
-        "ref": "nightly",
-        "repo": "rust-analyzer",
-        "type": "github"
-      }
-    },
-    "rust-overlay": {
-      "inputs": {
-        "flake-utils": [
-          "conduit",
-          "crane",
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "conduit",
-          "crane",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1688351637,
-        "narHash": "sha256-CLTufJ29VxNOIZ8UTg0lepsn3X03AmopmaLTTeHDCL4=",
-        "owner": "oxalica",
-        "repo": "rust-overlay",
-        "rev": "f9b92316727af9e6c7fee4a761242f7f46880329",
-        "type": "github"
-      },
-      "original": {
-        "owner": "oxalica",
-        "repo": "rust-overlay",
-        "type": "github"
-      }
-    },
-    "systems": {
-      "locked": {
-        "lastModified": 1681028828,
-        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
-        "owner": "nix-systems",
-        "repo": "default",
-        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-systems",
-        "repo": "default",
-        "type": "github"
-      }
-    },
-    "systems_2": {
-      "locked": {
-        "lastModified": 1681028828,
-        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
-        "owner": "nix-systems",
-        "repo": "default",
-        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-systems",
-        "repo": "default",
-        "type": "github"
-      }
-    }
-  },
-  "root": "root",
-  "version": 7
-}
diff --git a/host/Rory-desktop/configuration.nix b/host/Rory-desktop/configuration.nix
index be7f4b2..a34fc1c 100644
--- a/host/Rory-desktop/configuration.nix
+++ b/host/Rory-desktop/configuration.nix
@@ -7,6 +7,9 @@
       ../../modules/packages/vim.nix
 #      ../../modules/environments/home.nix
       ../../modules/software-templates/profilers.nix
+      ./postgres.nix
+      ./mariadb.nix
+      ./nginx.nix
     ];
 
     boot = {
@@ -50,42 +53,40 @@
       enable = true;
       updateDbusEnvironment = true;
       videoDrivers = ["nvidia"];
-      #videoDrivers = [ "intel" ];
-      #desktopManager.gnome.enable = true;
+      desktopManager.gnome.enable = true;
       libinput.enable = true;
       layout = "us";
-      #modules = [ pkgs.xorg.xf86videointel ];
       windowManager.i3.enable = true;
-      #windowManager.i3.extraPackages = with pkgs; [ ];
       windowManager.i3.extraSessionCommands = ''
-        xrandr --output DP-5 --auto --pos -1920x1080
-        xrandr --output HDMI-0 --auto --primary --pos 1920x0
-        polybar &
-        dunst &
+        # output from arandr:
+        xrandr --output DP-0 --off --output DP-1 --off --output DP-2 --off --output DP-3 --off --output HDMI-0 --primary --mode 3840x2160 --pos 0x0 --rotate normal --output DP-4 --off --output DP-5 --mode 1920x1080 --pos 3840x1080 --rotate normal
+        ${pkgs.polybarFull}/bin/polybar &
+        ${pkgs.dunst}/bin/dunst &
+        ${pkgs.feh}/bin/feh --no-fehbg --bg-fill ${../../modules/users/Rory/wallpaper.webp}
       '';
       wacom.enable = true;
     };
     picom.enable = true;
     picom.vSync = false;
     picom.backend = "glx";
-    #gnome = {
-    #  core-developer-tools.enable = false;
-    #  core-utilities.enable = false;
-    #  tracker-miners.enable = false;
-    #  tracker.enable = false;
-    #  sushi.enable = false;
-    #  rygel.enable = false;
-    #  gnome-user-share.enable = false;
-    #  gnome-remote-desktop.enable = false;
-    #  gnome-online-miners.enable = lib.mkForce false;
-    #  gnome-online-accounts.enable = false;
-    #  gnome-initial-setup.enable = false;
-    #  gnome-browser-connector.enable = false;
-    #  games.enable = false;
-    #  gnome-keyring.enable = lib.mkForce false;
-    #  evolution-data-server.enable = lib.mkForce false;
-    #  at-spi2-core.enable = lib.mkForce false;
-    #};
+    gnome = {
+      core-developer-tools.enable = false;
+      core-utilities.enable = false;
+      tracker-miners.enable = false;
+      tracker.enable = false;
+      sushi.enable = false;
+      rygel.enable = false;
+      gnome-user-share.enable = false;
+      gnome-remote-desktop.enable = false;
+      gnome-online-miners.enable = lib.mkForce false;
+      gnome-online-accounts.enable = false;
+      gnome-initial-setup.enable = false;
+      gnome-browser-connector.enable = false;
+      games.enable = false;
+      gnome-keyring.enable = lib.mkForce false;
+      evolution-data-server.enable = lib.mkForce false;
+      at-spi2-core.enable = lib.mkForce false;
+    };
     openssh = {
       enable = true;
       extraConfig = ''
@@ -120,6 +121,7 @@
   };
 
   environment.systemPackages = with pkgs; [
+    qt6.qtwayland
 
     gnome-console
     feh
@@ -130,6 +132,7 @@
     # - IDEs
     jetbrains-toolbox
     jetbrains.rider
+    jetbrains.webstorm
     github-copilot-intellij-agent
     
     
@@ -154,9 +157,6 @@
 
     # extra packages
     dmenu
-    i3status
-    polybarFull
-    dunst
 
     cinnamon.nemo
     gnome.file-roller
@@ -171,10 +171,11 @@
 
     unrar-wrapper
 
-    (schildichat-desktop.override { electron = electron; })
+    #(schildichat-desktop.override { electron = electron; })
     (callPackage ../../modules/packages/nheko-git.nix { inherit nhekoSrc; inherit mtxclientSrc; voipSupport = false; })
     #(callPackage ../../modules/packages/mc/server/modpack/curseforge/techopolis-2/5.4.nix { })
   ];
+
   programs.steam.enable = true;
   programs.steam.gamescopeSession.enable = true;
 
@@ -183,20 +184,20 @@
   #  pkgs.gnome-tour
   #  pkgs.gnome-user-docs
   #];
-  xdg = {
-    portal = {
-      enable = true;
-      extraPortals = with pkgs; [
-        xdg-desktop-portal-gtk
-      ];
-      xdgOpenUsePortal = true;
-    };
-    sounds.enable = true;
-    mime.enable = true;
-    menus.enable = true;
-    icons.enable = true;
-    autostart.enable = true;
-  };
+  #xdg = {
+  #  portal = {
+  #    enable = true;
+  #    extraPortals = with pkgs; [
+  #      xdg-desktop-portal-gtk
+  #    ];
+  #    xdgOpenUsePortal = true;
+  #  };
+  #  sounds.enable = true;
+  #  mime.enable = true;
+  #  menus.enable = true;
+  #  icons.enable = true;
+  #  autostart.enable = true;
+  #};
   fonts = {
     fonts = with pkgs; [
       (nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
@@ -224,7 +225,13 @@
     };
   };
   nixpkgs = {
-    config.allowUnfree = true;
+    config = {
+      allowUnfree = true;
+      permittedInsecurePackages = [
+        "electron-25.9.0"
+      ];
+    };
+
   };
   security = {
     polkit.enable = true;
diff --git a/host/Rory-desktop/mariadb.nix b/host/Rory-desktop/mariadb.nix
new file mode 100644
index 0000000..3ebbb0b
--- /dev/null
+++ b/host/Rory-desktop/mariadb.nix
@@ -0,0 +1,10 @@
+{ config, pkgs, lib, ... }:
+
+{
+  services.mysql = {
+    enable = true;
+    package = pkgs.mariadb;
+  };
+
+}
+
diff --git a/host/Rory-desktop/nginx.nix b/host/Rory-desktop/nginx.nix
new file mode 100644
index 0000000..fc2adca
--- /dev/null
+++ b/host/Rory-desktop/nginx.nix
@@ -0,0 +1,39 @@
+{ config, pkgs, lib, ... }:
+
+{
+  services = {
+    nginx = {
+      enable = true;
+      #package = pkgs.nginxQuic;
+      recommendedProxySettings = true;
+      #recommendedTlsSettings = true;
+      recommendedZstdSettings = true;
+      recommendedGzipSettings = true;
+      recommendedBrotliSettings = true;
+      recommendedOptimisation = true;
+      #defaultMimeTypes = ../../../../modules/packages/nginx/mime.types;
+      appendConfig = ''
+        worker_processes 16;
+        '';
+       eventsConfig = ''
+        #use kqueue;
+        worker_connections 512;
+        '';
+      appendHttpConfig = ''
+        #sendfile on;
+        disable_symlinks off;
+      '';
+      additionalModules = with pkgs.nginxModules; [
+        moreheaders
+      ];
+      virtualHosts = {
+        "discord.localhost" = import ./nginx/discord.localhost.nix { inherit pkgs; };
+        
+      };
+    };
+  };
+  systemd.services.nginx.serviceConfig = {
+    LimitNOFILE=5000000;
+  };
+
+}
diff --git a/host/Rory-desktop/nginx/discord.localhost.nix b/host/Rory-desktop/nginx/discord.localhost.nix
new file mode 100755
index 0000000..149d2b1
--- /dev/null
+++ b/host/Rory-desktop/nginx/discord.localhost.nix
@@ -0,0 +1,37 @@
+{ pkgs, ... }:
+
+{
+  root = "/www/discord";
+  addSSL = true;
+  enableACME = false;
+
+  # We don't care about certificates around here...
+  sslCertificate = "${pkgs.path}/nixos/tests/common/acme/server/acme.test.cert.pem";
+  sslCertificateKey = "${pkgs.path}/nixos/tests/common/acme/server/acme.test.key.pem";
+        
+
+  extraConfig = ''
+    autoindex on;
+    more_set_headers 'Access-Control-Allow-Origin: *';
+    more_set_headers 'Access-Control-Allow-Methods: GET, POST, OPTIONS';
+    more_set_headers 'Access-Control-Allow-Headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
+    more_set_headers 'Access-Control-Expose-Headers: Content-Length,Content-Range';
+    more_set_headers 'Access-Control-Allow-Credentials: true';
+  '';
+
+  locations = {
+    "/" = {
+      index = "index.html";
+      extraConfig = ''
+        more_set_headers 'Access-Control-Allow-Origin: *';
+        more_set_headers 'Access-Control-Allow-Methods: *';
+        more_set_headers 'Access-Control-Allow-Headers: *';
+        more_set_headers 'Access-Control-Expose-Headers: *';
+        more_set_headers 'Access-Control-Max-Age' 1728000;
+
+        # default to /index.html if file not found
+        try_files $uri $uri/ /index.html;
+      '';
+    };
+  };
+}
diff --git a/host/Rory-desktop/postgres.nix b/host/Rory-desktop/postgres.nix
new file mode 100755
index 0000000..e1e4432
--- /dev/null
+++ b/host/Rory-desktop/postgres.nix
@@ -0,0 +1,34 @@
+{ config, pkgs, lib, ... }:
+
+{
+  #systemd.tmpfiles.rules = [  "d /mnt/postgres/data 0750 postgres postgres" ];
+
+  services.postgresql = {
+    enable = true;
+    package = pkgs.postgresql_16;
+    enableTCPIP = true;
+    authentication = pkgs.lib.mkOverride 10 ''
+      # TYPE, DATABASE, USER, ADDRESS, METHOD
+      local all all trust
+      host all all 127.0.0.1/32 trust
+      host all all ::1/128 trust
+      host discordbots discordbots 192.168.1.2/32 trust
+      host matrix-synapse-rory-gay matrix-synapse-rory-gay 192.168.1.5/32 trust
+      host all all 0.0.0.0/0 md5
+    '';
+    # initialScript = pkgs.writeText "backend-initScript" ''
+    #   CREATE ROLE nixcloud WITH LOGIN PASSWORD 'nixcloud' CREATEDB;
+    #   CREATE DATABASE nixcloud;
+    #   GRANT ALL PRIVILEGES ON DATABASE nixcloud TO nixcloud;
+    # '';
+    #dataDir = "/mnt/postgres/data";
+    settings = {
+      "max_connections" = "100";
+      "shared_buffers" = "128MB";
+      "max_wal_size" = "1GB";
+      "min_wal_size" = "80MB";
+    };
+  };
+
+}
+
diff --git a/modules/base.nix b/modules/base.nix
index 2666af3..fb1e8d6 100755
--- a/modules/base.nix
+++ b/modules/base.nix
@@ -95,6 +95,12 @@
     nix-output-monitor
     expect
     unrar-wrapper
+    arch-install-scripts
+    debootstrap
+    file
+    unzip
+    brotli
+
 
     # - zsh
     zsh
diff --git a/modules/users/Rory.nix b/modules/users/Rory.nix
index c8f4d45..f250863 100755
--- a/modules/users/Rory.nix
+++ b/modules/users/Rory.nix
@@ -55,6 +55,7 @@
           export CHOKIDAR_USEPOLLING=true
           export MSBUILDLIVELOGGER=auto
           export DOTNET_WATCH_SUPPRESS_LAUNCH_BROWSER=1
+          export DOTNET_CLI_TELEMETRY_OPTOUT=1
           function mkkey() {
             echo "Making key for $1"
             ssh-keygen -t ed25519 -C "$HOST -> $1" -f ~/.ssh/id_ed25519_$1
diff --git a/modules/users/Rory/p10k.zsh b/modules/users/Rory/p10k.zsh
index 5c77b68..e7f8e7c 100644
--- a/modules/users/Rory/p10k.zsh
+++ b/modules/users/Rory/p10k.zsh
@@ -33,7 +33,7 @@
   typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
     os_icon                 # os identifier
     dir                     # current directory
-    #vcs                     # git status
+    vcs                     # git status
     # prompt_char           # prompt symbol
   )
 
@@ -1720,4 +1720,4 @@
 typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a}
 
 (( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
-'builtin' 'unset' 'p10k_config_opts'
\ No newline at end of file
+'builtin' 'unset' 'p10k_config_opts'
diff --git a/modules/users/Rory/wallpaper.webp b/modules/users/Rory/wallpaper.webp
new file mode 100644
index 0000000..a2923f0
--- /dev/null
+++ b/modules/users/Rory/wallpaper.webp
Binary files differ