let nixpkgs = import ./Biz/Bild/Nixpkgs.nix; build = import ./Biz/Bild/Rules.nix { inherit nixpkgs; }; nixos-mailserver = let ver = "v2.3.0"; in builtins.fetchTarball { url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/${ver}/nixos-mailserver-${ver}.tar.gz"; sha256 = "0lpz08qviccvpfws2nm83n7m2r8add2wvfg9bljx9yxx8107r919"; }; in rec { # Cloud infrastructure, always online. Mostly for messaging-related # stuff. # Biz.Cloud = build.os { imports = [ ./Biz/OsBase.nix ./Biz/Packages.nix ./Biz/Users.nix ./Biz/Cloud/Chat.nix ./Biz/Cloud/Git.nix ./Biz/Cloud/Hardware.nix ./Biz/Cloud/Mail.nix ./Biz/Cloud/Networking.nix ./Biz/Cloud/Web.nix ./Biz/Cloud/Znc.nix nixos-mailserver ]; networking.hostName = "simatime"; networking.domain = "simatime.com"; }; # Dev machine for work and building stuff. # Biz.Dev = build.os { imports = [ ./Biz/OsBase.nix ./Biz/Packages.nix ./Biz/Users.nix ./Biz/Dev/Configuration.nix ./Biz/Dev/Hardware.nix ]; networking.hostName = "lithium"; networking.domain = "dev.simatime.com"; }; # The production server for que.run # Que.Prod = build.os { imports = [ ./Biz/OsBase.nix ./Biz/Packages.nix ./Biz/Users.nix ./Que/Host.nix ./Que/Site.nix ./Que/Prod.nix ]; networking.hostName = "prod-que"; networking.domain = "que.run"; services.que-server = { enable = true; port = 80; package = Que.Host; }; services.que-website = { enable = true; namespace = "_"; package = Que.Site; }; }; # Production server for herocomics.app Hero.Prod = build.os { imports = [ ./Biz/OsBase.nix ./Biz/Packages.nix ./Biz/Users.nix ./Hero/Service.nix ./Hero/Prod.nix ]; networking.hostName = "prod-herocomics"; networking.domain = "herocomics.app"; services.herocomics = { enable = true; port = 3000; host = Hero.Host; node = Hero.Node; keep = "/var/lib/hero"; }; }; # Haskell targets # Biz.Ibb.Server = build.ghc Biz/Ibb/Server.hs; Biz.Ibb.Client = build.ghcjs Biz/Ibb/Client.hs; Hero.Host = build.ghc Hero/Host.hs; Hero.Node = build.ghcjs Hero/Node.hs; Que.Host = build.ghc ./Que/Host.hs; Que.Site = build.ghc ./Que/Site.hs; # Development environment env = build.env; # Fall through to any of our overlay packages inherit nixpkgs; }