# Edit this configuration file to define what should be installed on
# your system.  Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).

{
  config,
  pkgs,
  inputs,
  lib,
  ...
}:
let
  openmanus = pkgs.callPackage ../../pkgs/open-manus.nix { };
in
{
  imports = [
    ../common/core.nix
    ./hardware.nix
    ../../modules/desktop/plasma.nix
    ../../modules/llm/nginx-proxies.nix
    # ../../modules/llm/ollama.nix
    ../../modules/llm/open-webui.nix
    ../../modules/llm/vectorstore/chromadb.nix
    # ../../modules/llm/vectorstore/elasticstore.nix
    # ../../modules/llm/vectorstore/neo4j.nix
    ../../modules/nixos/nix-serve-builder.nix
    ../../modules/virtualisation/docker.nix
    # ../../modules/virtualisation/podman.nix # moved to common
    ../../users/marvin/baker.nix
  ];

  boot = {
    initrd.systemd.enable = true;
    loader = {
      # Bootloader.
      systemd-boot.enable = true;
      efi.canTouchEfiVariables = true;
    };
  };

  # List packages installed in system profile. To search, run:
  # $ nix search wget
  environment.systemPackages = with pkgs; [
    # duplicacy TODO implement backups
    (pkgs.callPackage ../../pkgs/lmstudio/package.nix { })
    ollama
    openssh
    # openmanus
  ];

  networking.hostName = "baker"; # Define your hostname.

  # time.timeZone = lib.mkForce "America/New_York"; # TODO "Asia/Taipei";
}