{ description = "Cybertrike.com"; # TODO: cgit, ejabber signup inputs = { nixinate.url = "github:matthewcroughan/nixinate"; agenix.url = "github:ryantm/agenix"; nixpkgs_unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver"; }; outputs = inputs@{ self, nixpkgs, agenix, nixinate, nixpkgs_unstable, simple-nixos-mailserver }: let pkgs = nixpkgs.legacyPackages.x86_64-linux; webroot = "${self}/webroot"; fqdn = "crashoverburn.com"; hashedPasswordFile = "${self}/password.file"; in { formatter.x86_64-linux = pkgs.nixpkgs-fmt; apps.x86_64-linux = (inputs.nixinate.nixinate.x86_64-linux inputs.self).nixinate; devShell.x86_64-linux = pkgs.mkShell { buildInputs = with pkgs; [ figlet tmux ]; shellHook = '' # Session Name session="project-env-sh" # Check if the session exists, discarding output # We can check $? for the exit status (zero for success, non-zero for failure) tmux has-session -t $session 2>/dev/null if [ $? != 0 ]; then # Start New Session with our name tmux new-session -d -s $session # Name first Window and start zsh tmux rename-window -t 0 'Main' tmux send-keys -t 'Main' 'nix flake show' C-m tmux send-keys -t 'Main' 'clear' C-m # Create and setup pane for btop tmux split-window -h tmux rename-window 'btop' tmux send-keys -t 'btop' 'ssh -t commander@193.16.42.36 btop' C-m tmux select-pane -t 0 # Create and setup pane for btop tmux split-window -v tmux rename-window 'ssh' tmux send-keys -t 'ssh' 'ssh commander@193.16.42.36' C-m tmux select-pane -t 0 fi tmux attach-session -t $session''; }; nixosConfigurations = { crash-over-burn-1 = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ agenix.nixosModules.default simple-nixos-mailserver.nixosModule ./openstack.nix ./users/commander.nix (import ./services/cgit.nix { inherit pkgs; inherit fqdn; }) (import ./services/website.nix { inherit webroot; }) (import ./services/ejabberd.nix { inherit fqdn; }) (import ./services/mailserver.nix { inherit pkgs; inherit hashedPasswordFile; }) ./machines/overburn-1.nix { imports = [ "${nixpkgs}/nixos/modules/virtualisation/openstack-config.nix" ]; _module.args.nixinate = { host = "193.16.42.36"; sshUser = "commander"; substituteOnTarget = true; hermetic = true; buildOn = "local"; }; } ]; }; }; }; }