{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
    unstable.url = "github:nixos/nixpkgs/nixos-unstable";

    home-manager = {
      url = "github:nix-community/home-manager/release-25.05";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    trivionomicon = {
      url = "./trivionomicon";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    homepage = {
      url = "./homepage";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    authentik-nix = {
      url = "github:nix-community/authentik-nix";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    mediawikiSkinCitizen = {
      url = "github:StarCitizenTools/mediawiki-skins-Citizen/v2.27.0";
      flake = false;
    };

    flake-utils.url = "github:numtide/flake-utils";
    hm-isolation.url = "github:3442/hm-isolation";
    impermanence.url = "github:nix-community/impermanence";
    nixGL.url = "github:guibou/nixGL";
    nur.url = "github:nix-community/NUR";
    vpsadminos.url = "github:vpsfreecz/vpsadminos";
  };

  outputs = flakes:
    flakes.trivionomicon.lib.mkSystemFlake {
      inherit flakes;

      system = "x86_64-linux";
      doctrinePrefix = "local";

      paths = {
        localOverlay = "pkgs";
        nixpkgsConfig = "pkgs/config";

        nixosSource = "sys";
        nixosPlatforms = "sys/platforms";

        hmSource = "home";
        hmPlatforms = "home/platforms";
      };
    };
}
