let nixpkgs-tar = builtins.fetchTarball (import ./nixpkgs.nix); overlay = import ./overlay.nix; bizpkgs = import "${nixpkgs-tar}" { overlays = [ overlay ]; }; nixos = import "${nixpkgs-tar}/nixos"; biz = import ./biz.nix { nixpkgs = bizpkgs; }; buildOS = import ./Com/Simatime/buildOS.nix nixos; 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. # Com.Simatime.Cloud = buildOS { enableVpn = true; ipAddress = "159.89.128.69"; configuration = { imports = [ ./Com/Simatime/packages.nix ./Com/Simatime/users.nix ./Com/Simatime/Cloud/chat.nix ./Com/Simatime/Cloud/git.nix ./Com/Simatime/Cloud/hardware.nix ./Com/Simatime/Cloud/mail.nix ./Com/Simatime/Cloud/networking.nix ./Com/Simatime/Cloud/web.nix ./Com/Simatime/Cloud/znc.nix nixos-mailserver ]; networking.hostName = "simatime"; networking.domain = "simatime.com"; }; }; # Dev machine for work and building stuff. # Com.Simatime.Dev = buildOS { enableVpn = true; ipAddress = "73.222.221.63"; deps = { wemux = bizpkgs.wemux; }; configuration = { imports = [ ./Com/Simatime/packages.nix ./Com/Simatime/users.nix ./Com/Simatime/Dev/configuration.nix ./Com/Simatime/Dev/hardware.nix ]; networking.hostName = "lithium"; networking.domain = "dev.simatime.com"; }; }; # The production server for que.run # Run.Que.Prod = buildOS { deps = { que-server = Run.Que.Server; que-website = Run.Que.Website; }; configuration = { imports = [ ./Com/Simatime/packages.nix ./Com/Simatime/users.nix ./Run/Que/Server.nix ./Run/Que/Website.nix ./Run/Que/Prod.nix ]; networking.hostName = "prod.que.run"; networking.domain = "que.run"; }; }; # Production server for musicmeetscomics.com Com.MusicMeetsComics.Prod = buildOS { deps = { herocomics-server = Com.MusicMeetsComics.Server; herocomics-client = Com.MusicMeetsComics.Client; }; configuration = { imports = [ ./Com/Simatime/packages.nix ./Com/Simatime/users.nix ./Com/MusicMeetsComics/Service.nix ./Com/MusicMeetsComics/Prod.nix ]; networking.hostName = "prod.herocomics.app"; networking.domain = "herocomcis.app"; }; }; # Haskell targets # Com.InfluencedByBooks.Server = biz.buildGhc Com/InfluencedByBooks/Server.hs; Com.InfluencedByBooks.Client = biz.buildGhcjs Com/InfluencedByBooks/Client.hs; Com.MusicMeetsComics.Server = biz.buildGhc Com/MusicMeetsComics/Server.hs; Com.MusicMeetsComics.Client = biz.buildGhcjs Com/MusicMeetsComics/Client.hs; Run.Que.Server = biz.buildGhc ./Run/Que/Server.hs; Run.Que.Website = biz.buildGhc ./Run/Que/Website.hs; # Development environment repl = biz.globalGhc; # Fall through to any of our overlay packages inherit bizpkgs; }