{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11"; home-manager.url = "github:nix-community/home-manager/release-22.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; private.url = "git+ssh://git@git.tempest.dev/ashe/nixos-config-private"; tmpfiles.url = "git+http://git.tempest.dev/ashe/tmpfiles"; tempestdev.url = "git+http://git.tempest.dev/ashe/tempest.dev"; tempest-secret.url = "git+ssh://git@git.tempest.dev/ashe/tempest-skycord-secret"; tempest-contact.url = "git+http://git.tempest.dev/ashe/contact-api"; gotosocial.url = "git+http://git.tempest.dev/ashe/nixos-wrapper-gotosocial"; }; outputs = { self, nixpkgs, home-manager, private, tmpfiles, tempestdev, tempest-secret, tempest-contact, gotosocial }: { nixosConfigurations = { nyx = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ./hosts/nyx/configuration.nix home-manager.nixosModules.home-manager private.nixosModules.nyx tmpfiles.nixosModule tempestdev.nixosModule tempest-secret.nixosModule tempest-contact.nixosModule gotosocial.nixosModule ({ pkgs, ...}: { networking.firewall.allowedTCPPorts = [ 80 443 ]; home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; services.nginx.enable = true; services.nginx.recommendedProxySettings = true; security.acme.acceptTerms = true; security.acme.defaults.email = "acme@tempest.dev"; ashe.services.tmpfiles.enable = true; ashe.services.tmpfiles.domain = "files.tempest.dev"; ashe.services.tmpfiles.port = 4441; ashe.services."tempest.dev".enable = true; ashe.services."tempest.dev".domain = "tempest.dev"; ashe.services."tempest.dev".port = 4442; ashe.services.tempest-secret.enable = true; ashe.services.tempest-secret.domain = "tempest.dev"; ashe.services.tempest-secret.path = "/secret"; ashe.services.tempest-secret.port = 4443; ashe.services.tempest-api-contact.enable = true; ashe.services.tempest-api-contact.domain = "contact.tempest.dev"; ashe.services.tempest-api-contact.configFile = "/etc/tempest/contact.json"; ashe.services.tempest-api-contact.port = 4444; ashe.services.social.enable = true; ashe.services.social.appDomain = "social.tempest.dev"; ashe.services.social.accountDomain = "tempest.dev"; ashe.services.social.port = 4445; services.nginx.virtualHosts."static.tempest.dev" = { root = "/var/www/static"; forceSSL = true; enableACME = true; }; }) ]; }; hemera = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ./hosts/hemera/configuration.nix private.nixosModules.hemera ({ config, pkgs, ...}: { services.nix-serve = { enable = true; secretKeyFile = "/etc/tempest/bincache/key-priv.pem"; }; services.nginx = { enable = true; recommendedProxySettings = true; virtualHosts."hemera.tempest.local" = { locations."/".proxyPass = "http://${config.services.nix-serve.bindAddress}:${toString config.services.nix-serve.port}"; }; }; }) ]; }; }; }; }