feat: add minilab

This commit is contained in:
Nickolaj Jepsen 2026-01-22 19:05:24 +01:00
parent c16d6d1b4d
commit 30a41e2fec
23 changed files with 3194 additions and 21 deletions

View file

@ -1,4 +1,8 @@
{lib, ...}: {
{
config,
lib,
...
}: {
options.fireproof = {
hostname = lib.mkOption {
type = lib.types.str;
@ -9,7 +13,24 @@
description = "The primary username for the machine";
};
work.enable = lib.mkEnableOption "Enable work-related applications and tools";
dev.enable = lib.mkEnableOption "Enable development tools and applications";
dev = {
enable = lib.mkEnableOption "Enable development tools and applications";
intellij.enable = lib.mkOption {
type = lib.types.bool;
default = config.fireproof.dev.enable;
description = "Enable IntelliJ-based IDEs";
};
clickhouse.enable = lib.mkOption {
type = lib.types.bool;
default = config.fireproof.dev.enable;
description = "Enable Clickhouse";
};
playwright.enable = lib.mkOption {
type = lib.types.bool;
default = config.fireproof.dev.enable;
description = "Enable Playwright";
};
};
hardware = {
battery = lib.mkOption {
type = lib.types.bool;

View file

@ -10,6 +10,16 @@
default = config.fireproof.desktop.enable;
description = "Enable window manager (niri) and dank material shell (dms)";
};
chromium.enable = lib.mkOption {
type = lib.types.bool;
default = config.fireproof.desktop.enable;
description = "Enable Chromium";
};
zed.enable = lib.mkOption {
type = lib.types.bool;
default = config.fireproof.desktop.enable;
description = "Enable Zed editor";
};
};
imports = [

View file

@ -5,7 +5,7 @@
pkgsUnstable,
...
}: {
config = lib.mkIf config.fireproof.desktop.enable {
config = lib.mkIf (config.fireproof.desktop.enable && config.fireproof.desktop.chromium.enable) {
fireproof.home-manager.programs.chromium = {
enable = true;
package = pkgsUnstable.chromium;

View file

@ -5,7 +5,7 @@
pkgsUnstable,
...
}: {
config = lib.mkIf config.fireproof.dev.enable {
config = lib.mkIf config.fireproof.dev.clickhouse.enable {
environment.systemPackages = [
pkgsUnstable.clickhouse
pkgsUnstable.envsubst

View file

@ -5,7 +5,7 @@
pkgsUnstable,
...
}: {
config = lib.mkIf config.fireproof.dev.enable {
config = lib.mkIf config.fireproof.dev.playwright.enable {
fireproof.home-manager.programs.fish.shellInit = ''
set -xg PLAYWRIGHT_BROWSERS_PATH ${pkgsUnstable.playwright-driver.browsers}
set -xg PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS true

View file

@ -4,22 +4,19 @@
lib,
pkgsUnstable,
...
}: let
pycharmPkg = pkgsUnstable.jetbrains.pycharm.override {
# -Dide.browser.jcef.enabled causes crashes on wayland
vmopts = ''
-Dide.browser.jcef.enabled=false
-Dawt.toolkit.name=WLToolkit
-Xmx8G
'';
};
# pycharmWithPlugins = pkgsUnstable.jetbrains.plugins.addPlugins pycharmPkg [
# "github-copilot"
# ];
in {
config = lib.mkIf (config.fireproof.desktop.enable && config.fireproof.dev.enable) {
}: {
config = lib.mkIf (config.fireproof.desktop.enable && config.fireproof.dev.intellij.enable) (let
pycharmPkg = pkgsUnstable.jetbrains.pycharm.override {
# -Dide.browser.jcef.enabled causes crashes on wayland
vmopts = ''
-Dide.browser.jcef.enabled=false
-Dawt.toolkit.name=WLToolkit
-Xmx8G
'';
};
in {
environment.systemPackages = [
pycharmPkg
];
};
});
}

View file

@ -5,7 +5,7 @@
pkgsUnstable,
...
}: {
config = lib.mkIf (config.fireproof.desktop.enable && config.fireproof.dev.enable) {
config = lib.mkIf (config.fireproof.desktop.enable && config.fireproof.desktop.zed.enable) {
fireproof.home-manager.programs.zed-editor = {
enable = true;
package = pkgsUnstable.zed-editor;

View file

@ -45,6 +45,11 @@ in {
hostname = "x.nickolaj.com";
user = "nickolaj";
};
minilab = {
hostname = "10.0.0.7";
user = "nickolaj";
proxyJump = "homelab";
};
"forgejo.nickolaj.com" = {
hostname = "forgejo.nickolaj.com";
user = "git";