{
  description = "A simple NixOS flake";

  inputs = {
    # NixOS official package source, using the nixos-24.11 branch here
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
    disko = {
      url = "github:nix-community/disko/latest";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    sops-nix = {
      url = "github:mic92/sops-nix";
      inputs.nixpkgs.follows = "nixpkgs";

    };
    # Personal Repositories
    homelabSecrets = {
      url =
        "git+ssh://forgejo@code.polsevev.dev/polsevev/nix-secrets-homelab.git?ref=master&shallow=1";
      flake = false;
    };
  };

  outputs = { self, nixpkgs, disko, ... }@inputs: {
    # Please replace my-nixos with your hostname
    nixosConfigurations.poseidon = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      specialArgs = { inherit inputs; };
      modules = [
        # Import the previous configuration.nix we used,
        # so the old configuration file still takes effect
        disko.nixosModules.disko
        ./configuration.nix
        ./disko-config.nix
        ./hardware-configuration.nix
        ../shared/tailscale.nix
        ../shared/ssh.nix
        ../shared/sops.nix
      ];

    };
  };
}
