summaryrefslogtreecommitdiff
path: root/parts/lib/utils
diff options
context:
space:
mode:
Diffstat (limited to 'parts/lib/utils')
-rw-r--r--parts/lib/utils/default.nix4
-rw-r--r--parts/lib/utils/deploy.nix29
-rw-r--r--parts/lib/utils/nginx.nix22
3 files changed, 55 insertions, 0 deletions
diff --git a/parts/lib/utils/default.nix b/parts/lib/utils/default.nix
new file mode 100644
index 0000000..cbb6eb9
--- /dev/null
+++ b/parts/lib/utils/default.nix
@@ -0,0 +1,4 @@
+args: {
+ deploy = import ./deploy.nix args;
+ nginx = import ./nginx.nix args;
+}
diff --git a/parts/lib/utils/deploy.nix b/parts/lib/utils/deploy.nix
new file mode 100644
index 0000000..aaa01f1
--- /dev/null
+++ b/parts/lib/utils/deploy.nix
@@ -0,0 +1,29 @@
+{inputs, ...}: let
+ inherit (builtins) mapAttrs;
+ inherit (inputs) deploy-rs;
+in {
+ mkDeployNodes = mapAttrs (_: system: let
+ inherit (system) pkgs;
+ deployPkgs = import pkgs.path {
+ inherit (pkgs) system;
+ overlays = [
+ deploy-rs.overlay
+ (_: prev: {
+ deploy-rs = {
+ inherit (pkgs) deploy-rs;
+ inherit (prev.deploy-rs) lib;
+ };
+ })
+ ];
+ };
+
+ type =
+ if pkgs.stdenv.isLinux
+ then "nixos"
+ else "darwin";
+ in {
+ sshUser = "root";
+ hostname = system.config.networking.hostName;
+ profiles.system.path = deployPkgs.deploy-rs.lib.activate.${type} system;
+ });
+}
diff --git a/parts/lib/utils/nginx.nix b/parts/lib/utils/nginx.nix
new file mode 100644
index 0000000..57be4fb
--- /dev/null
+++ b/parts/lib/utils/nginx.nix
@@ -0,0 +1,22 @@
+{lib, ...}: let
+ inherit (builtins) mapAttrs;
+ inherit (lib) recursiveUpdate;
+in {
+ mkProxy = endpoint: port: {
+ "${endpoint}" = {
+ proxyPass = "http://localhost:${toString port}";
+ proxyWebsockets = true;
+ };
+ };
+
+ mkVHosts = let
+ commonSettings = {
+ enableACME = true;
+ # workaround for https://github.com/NixOS/nixpkgs/issues/210807
+ acmeRoot = null;
+
+ addSSL = true;
+ };
+ in
+ mapAttrs (_: recursiveUpdate commonSettings);
+}