diff --git a/flake.nix b/flake.nix index 1f3dc65..633342e 100644 --- a/flake.nix +++ b/flake.nix @@ -149,5 +149,12 @@ agenix.nixosModules.default solaar.nixosModules.default ]; + + # Add this new section + outputs-builder = channels: { + hydraJobs = { + x86_64-linux.earth = self.nixosConfigurations.x86_64-linux.earth.config.system.build.toplevel; + }; + }; }; } diff --git a/homes/x86_64-linux/zoey@earth/default.nix b/homes/x86_64-linux/zoey@earth/default.nix index e929cc8..dc5255f 100644 --- a/homes/x86_64-linux/zoey@earth/default.nix +++ b/homes/x86_64-linux/zoey@earth/default.nix @@ -105,6 +105,9 @@ pkgs.nix-output-monitor pkgs.fastfetch + pkgs.libreoffice-qt6-fresh + pkgs.signal-desktop + pkgs.nh pkgs.dwl diff --git a/modules/home/apps/tools/neovim/config/lua/plugins/core.lua b/modules/home/apps/tools/neovim/config/lua/plugins/core.lua index f78a2c2..8818f3b 100644 --- a/modules/home/apps/tools/neovim/config/lua/plugins/core.lua +++ b/modules/home/apps/tools/neovim/config/lua/plugins/core.lua @@ -29,6 +29,12 @@ return { }, }, { "hrsh7th/nvim-cmp", enabled = false }, + { + "jake-stewart/force-cul.nvim", + config = function() + require("force-cul").setup() + end, + }, { "saghen/blink.cmp", lazy = false, -- lazy loading handled internally diff --git a/modules/home/services/pm-bridge/default.nix b/modules/home/services/pm-bridge/default.nix index e1b37bf..6da58ae 100644 --- a/modules/home/services/pm-bridge/default.nix +++ b/modules/home/services/pm-bridge/default.nix @@ -9,40 +9,39 @@ with lib.custom; let cfg = config.services.pm-bridge; in { options.services.pm-bridge = with types; { - enable = mkBoolOpt false "Enable Protonmail Bridge"; + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to enable the Bridge."; + }; - package = lib.mkPackageOption pkgs "protonmail-bridge" {}; + nonInteractive = mkOption { + type = types.bool; + default = false; + description = "Start Bridge entirely noninteractively"; + }; - logLevel = lib.mkOption { - type = lib.types.nullOr ( - lib.types.enum [ - "panic" - "fatal" - "error" - "warn" - "info" - "debug" - ] - ); - default = null; - description = "Log level of the Proton Mail Bridge service. If set to null then the service uses it's default log level."; + logLevel = mkOption { + type = types.enum ["panic" "fatal" "error" "warn" "info" "debug" "debug-client" "debug-server"]; + default = "info"; + description = "The log level"; }; }; config = mkIf cfg.enable { systemd.user.services.protonmail-bridge = { Unit = { - Description = "A Bridge to view Protonmail Messages in your local email client"; + Description = "Protonmail Bridge"; + After = ["network.target"]; }; - Service = let - logLevel = lib.optionalString (cfg.logLevel != null) "--log-level ${cfg.logLevel}"; - in { - Type = "simple"; - ExecStart = "${lib.getExe cfg.package} --noninteractive ${logLevel}"; + + Service = { Restart = "always"; + ExecStart = "${pkgs.protonmail-bridge}/bin/protonmail-bridge --no-window --log-level ${cfg.logLevel}" + optionalString (cfg.nonInteractive) " --noninteractive"; }; + Install = { - WantedBy = ["graphical-session.target"]; + WantedBy = ["default.target"]; }; }; }; diff --git a/modules/nixos/sites/hydra/default.nix b/modules/nixos/sites/hydra/default.nix new file mode 100644 index 0000000..1953900 --- /dev/null +++ b/modules/nixos/sites/hydra/default.nix @@ -0,0 +1,49 @@ +{ + lib, + config, + pkgs, + ... +}: +with lib; +with lib.custom; let + cfg = config.sites.hydra; +in { + options.sites.hydra = with types; { + enable = mkBoolOpt false "Enable Hydra"; + }; + + config = mkIf cfg.enable { + services.hydra = { + enable = true; + hydraURL = "https://hydra.zoeys.computer"; + useSubstitutes = true; + notificationSender = "hydra@localhost"; # e-mail of hydra service + }; + + services.nginx.virtualHosts."hydra.zoeys.computer" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:3000"; + }; + }; + + nix.settings.allowed-uris = [ + "github:" + "git+https://github.com/" + "git+ssh://github.com/" + "git+https://git.zoeys.computer/" + "git+ssh://git.zoeys.computer/" + ]; + + nix.buildMachines = [ + { + hostName = "localhost"; + protocol = null; + system = "x86_64-linux"; + supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"]; + maxJobs = 8; + } + ]; + }; +} diff --git a/systems/x86_64-linux/pluto/default.nix b/systems/x86_64-linux/pluto/default.nix index 11cd754..e1fc6bf 100644 --- a/systems/x86_64-linux/pluto/default.nix +++ b/systems/x86_64-linux/pluto/default.nix @@ -37,6 +37,7 @@ services.web.nginx.enable = true; services.gh.enable = true; services.fail2ban.enable = true; + sites = { cv.enable = true; gitlab.enable = true; @@ -45,6 +46,7 @@ pterodactyl.enable = true; search.enable = true; map.enable = true; + hydra.enable = true; }; zmio.blog.enable = true;