Compare commits

..

17 commits
caddy ... main

9 changed files with 186 additions and 140 deletions

230
flake.lock generated
View file

@ -7,18 +7,18 @@
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"napalm": "napalm", "napalm": "napalm",
"nixpkgs": [ "nixpkgs": "nixpkgs",
"nixpkgs" "pyproject-build-systems": "pyproject-build-systems",
], "pyproject-nix": "pyproject-nix",
"poetry2nix": "poetry2nix", "systems": "systems",
"systems": "systems" "uv2nix": "uv2nix"
}, },
"locked": { "locked": {
"lastModified": 1742246110, "lastModified": 1746874492,
"narHash": "sha256-bjJDxW3Z3clNIkgwEktWhFSpU9UyftisDfK3XYzdRps=", "narHash": "sha256-Gm2Eb5KBxAL6y9WJj7phRMXNAZzVkKlm9Dky9WDZHtQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "authentik-nix", "repo": "authentik-nix",
"rev": "04f5e14643b8b37304966767074fbe0efcadab9f", "rev": "2ef24fac993808a1a57f367ef58ac0f5254c3489",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -30,16 +30,16 @@
"authentik-src": { "authentik-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1742236492, "lastModified": 1745954192,
"narHash": "sha256-Uz7qldS44pxduLcYKf+cCq4WvjoslDR4PwRqivY/4uI=", "narHash": "sha256-QuIgeu3CN6S44/zSiaj+iIkDz2494mb1MWvD3eYYkVE=",
"owner": "goauthentik", "owner": "goauthentik",
"repo": "authentik", "repo": "authentik",
"rev": "3adf79c4939276e108c25c719843b6174e9e22fd", "rev": "22412729e2379d645da2ac0c0270a0ac6147945e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "goauthentik", "owner": "goauthentik",
"ref": "version/2025.2.2", "ref": "version/2025.4.0",
"repo": "authentik", "repo": "authentik",
"type": "github" "type": "github"
} }
@ -96,11 +96,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1738453229, "lastModified": 1743550720,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", "rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -253,11 +253,11 @@
"lix": { "lix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1742834248, "lastModified": 1747347117,
"narHash": "sha256-Vy2AT/R33tX7GihmKsEWoK05HWO/rRKg+EV2WTKcobM=", "narHash": "sha256-wsPOuwczt+kJ4vuf3mm6uMv4wnfWP/RNV5Cp/P5nqQw=",
"rev": "4181796ed24e4c9c1c9c0d38986880d8c6407e5d", "rev": "3f355b8fd1ffbe670d756bcf976a38cbe80bb77b",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/4181796ed24e4c9c1c9c0d38986880d8c6407e5d.tar.gz?rev=4181796ed24e4c9c1c9c0d38986880d8c6407e5d" "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/3f355b8fd1ffbe670d756bcf976a38cbe80bb77b.tar.gz?rev=3f355b8fd1ffbe670d756bcf976a38cbe80bb77b"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -276,11 +276,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1742709496, "lastModified": 1746839253,
"narHash": "sha256-6rWA8QlVe3HTCVHyI/gJ5IULyvHkT9d8fMpYC0Kyeh8=", "narHash": "sha256-pRwi8Wn8Yofj459gq+3oIRy8F3SXeEJ6mzfIAUgM9nA=",
"rev": "d8e4fee796342636f345e358f33583c8b2fa496e", "rev": "58baedd53f9da81fd728a4f3b08c378e5ba9ae58",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/d8e4fee796342636f345e358f33583c8b2fa496e.tar.gz?rev=d8e4fee796342636f345e358f33583c8b2fa496e" "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/58baedd53f9da81fd728a4f3b08c378e5ba9ae58.tar.gz?rev=58baedd53f9da81fd728a4f3b08c378e5ba9ae58"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -298,16 +298,15 @@
"spectrum": "spectrum" "spectrum": "spectrum"
}, },
"locked": { "locked": {
"lastModified": 1712366957, "lastModified": 1747016581,
"narHash": "sha256-7W3D1Gk6mGlwtV07n6YB/7s3tThcBYknlvDPcoJJSe4=", "narHash": "sha256-iQrEuBs23Cd+bSfcY85GLykHP0vmGrkVfMwUlzvqMQQ=",
"owner": "astro", "owner": "astro",
"repo": "microvm.nix", "repo": "microvm.nix",
"rev": "1e746a8987eb893adc8dd317b84e73d72803b650", "rev": "5aff25e6e861e7d96ce10452ca976c16d073cf16",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "astro", "owner": "astro",
"ref": "v0.5.0",
"repo": "microvm.nix", "repo": "microvm.nix",
"type": "github" "type": "github"
} }
@ -338,35 +337,13 @@
"type": "github" "type": "github"
} }
}, },
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"authentik-nix",
"poetry2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729742964,
"narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1742806253, "lastModified": 1747129300,
"narHash": "sha256-zvQ4GsCJT6MTOzPKLmlFyM+lxo0JGQ0cSFaZSACmWfY=", "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "ecaa2d911e77c265c2a5bac8b583c40b0f151726", "rev": "e81fd167b33121269149c57806599045fd33eeed",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -378,30 +355,33 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1742751704, "lastModified": 1746141548,
"narHash": "sha256-rBfc+H1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE=", "narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092", "rev": "f02fddb8acef29a8b32f10a335d44828d7825b78",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-24.11", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1738452942, "lastModified": 1743296961,
"narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=", "narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
"type": "tarball", "owner": "nix-community",
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" "repo": "nixpkgs.lib",
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
"type": "github"
}, },
"original": { "original": {
"type": "tarball", "owner": "nix-community",
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" "repo": "nixpkgs.lib",
"type": "github"
} }
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
@ -422,11 +402,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1742669843, "lastModified": 1747179050,
"narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=", "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1e5b653dff12029333a6546c11e108ede13052eb", "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -436,34 +416,19 @@
"type": "github" "type": "github"
} }
}, },
"poetry2nix": { "nixpkgs_2": {
"inputs": {
"flake-utils": [
"authentik-nix",
"flake-utils"
],
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"authentik-nix",
"nixpkgs"
],
"systems": [
"authentik-nix",
"systems"
],
"treefmt-nix": "treefmt-nix"
},
"locked": { "locked": {
"lastModified": 1739883580, "lastModified": 1747209494,
"narHash": "sha256-3ydikhrNaWy8j0cqHju/94PcD4GZ9T4Ju4rHh34oz3k=", "narHash": "sha256-fLise+ys+bpyjuUUkbwqo5W/UyIELvRz9lPBPoB0fbM=",
"owner": "nix-community", "owner": "NixOS",
"repo": "poetry2nix", "repo": "nixpkgs",
"rev": "d90f9db68a4bda31c346be16dfd8d3263be4547e", "rev": "5d736263df906c5da72ab0f372427814de2f52f8",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "NixOS",
"repo": "poetry2nix", "ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
@ -494,6 +459,56 @@
"type": "github" "type": "github"
} }
}, },
"pyproject-build-systems": {
"inputs": {
"nixpkgs": [
"authentik-nix",
"nixpkgs"
],
"pyproject-nix": [
"authentik-nix",
"pyproject-nix"
],
"uv2nix": [
"authentik-nix",
"uv2nix"
]
},
"locked": {
"lastModified": 1744599653,
"narHash": "sha256-nysSwVVjG4hKoOjhjvE6U5lIKA8sEr1d1QzEfZsannU=",
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"rev": "7dba6dbc73120e15b558754c26024f6c93015dd7",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"type": "github"
}
},
"pyproject-nix": {
"inputs": {
"nixpkgs": [
"authentik-nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1746146146,
"narHash": "sha256-60+mzI2lbgn+G8F5mz+cmkDvHFn4s5oqcOna1SzYy74=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "3e9623bdd86a3c545e82b7f97cfdba5f07232d9a",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"authentik-nix": "authentik-nix", "authentik-nix": "authentik-nix",
@ -503,7 +518,7 @@
"lix-module": "lix-module", "lix-module": "lix-module",
"microvm": "microvm", "microvm": "microvm",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"tmux-yank": "tmux-yank", "tmux-yank": "tmux-yank",
@ -538,11 +553,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1742700801, "lastModified": 1746485181,
"narHash": "sha256-ZGlpUDsuBdeZeTNgoMv+aw0ByXT2J3wkYw9kJwkAS4M=", "narHash": "sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB+qsl9BZUnRvg=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "67566fe68a8bed2a7b1175fdfb0697ed22ae8852", "rev": "e93ee1d900ad264d65e9701a5c6f895683433386",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -554,11 +569,11 @@
"spectrum": { "spectrum": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1708358594, "lastModified": 1746869549,
"narHash": "sha256-e71YOotu2FYA67HoC/voJDTFsiPpZNRwmiQb4f94OxQ=", "narHash": "sha256-BKZ/yZO/qeLKh9YqVkKB6wJiDQJAZNN5rk5NsMImsWs=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "6d0e73864d28794cdbd26ab7b37259ab0e1e044c", "rev": "d927e78530892ec8ed389e8fae5f38abee00ad87",
"revCount": 614, "revCount": 862,
"type": "git", "type": "git",
"url": "https://spectrum-os.org/git/spectrum" "url": "https://spectrum-os.org/git/spectrum"
}, },
@ -628,25 +643,28 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": { "uv2nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"authentik-nix", "authentik-nix",
"poetry2nix",
"nixpkgs" "nixpkgs"
],
"pyproject-nix": [
"authentik-nix",
"pyproject-nix"
] ]
}, },
"locked": { "locked": {
"lastModified": 1730120726, "lastModified": 1746048139,
"narHash": "sha256-LqHYIxMrl/1p3/kvm2ir925tZ8DkI0KA10djk8wecSk=", "narHash": "sha256-LdCLyiihLg6P2/mjzP0+W7RtraDSIaJJPTy6SCtW5Ag=",
"owner": "numtide", "owner": "pyproject-nix",
"repo": "treefmt-nix", "repo": "uv2nix",
"rev": "9ef337e492a5555d8e17a51c911ff1f02635be15", "rev": "680e2f8e637bc79b84268949d2f2b2f5e5f1d81c",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "numtide", "owner": "pyproject-nix",
"repo": "treefmt-nix", "repo": "uv2nix",
"type": "github" "type": "github"
} }
}, },

View file

@ -13,7 +13,7 @@
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
microvm = { microvm = {
url = "github:astro/microvm.nix/v0.5.0"; url = "github:astro/microvm.nix";
inputs = { inputs = {
nixpkgs.follows = "nixpkgs"; nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils"; flake-utils.follows = "flake-utils";
@ -27,7 +27,6 @@
authentik-nix = { authentik-nix = {
url = "github:nix-community/authentik-nix"; url = "github:nix-community/authentik-nix";
inputs.nixpkgs.follows = "nixpkgs";
}; };
lix = { lix = {
@ -69,19 +68,21 @@
{ {
nixosConfigurations = nixosConfigurations =
let let
microvm-list = [ microvm-stable-list = [
"auth"
"conduwuit" "conduwuit"
"forgejo" "forgejo"
"immich"
"miniflux" "miniflux"
"radicale" "radicale"
]; ];
microvm-unstable-list = [
"auth"
"immich"
];
microvms = builtins.listToAttrs ( microvm-builder = (nixpkgs-ver: vm-list: builtins.listToAttrs (
map (vm: { map (vm: {
name = vm; name = vm;
value = nixpkgs.lib.nixosSystem { value = nixpkgs-ver.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { inherit inputs; }; specialArgs = { inherit inputs; };
modules = [ modules = [
@ -93,8 +94,10 @@
./modules/wg ./modules/wg
]; ];
}; };
}) microvm-list }) vm-list
); ));
microvms = (microvm-builder nixpkgs microvm-stable-list)
// (microvm-builder nixpkgs-unstable microvm-unstable-list);
in in
microvms microvms
// { // {
@ -118,7 +121,7 @@
./modules/science.nix ./modules/science.nix
./modules/tlp.nix ./modules/tlp.nix
./modules/virtualization.nix ./modules/virtualization.nix
./hosts/toaster/secure-boot.nix ./modules/emacs.nix
./modules/mail ./modules/mail
./modules/wg ./modules/wg
]; ];
@ -153,7 +156,7 @@
./modules/wg ./modules/wg
{ {
config.microvm.autostart = microvm-list; config.microvm.autostart = microvm-stable-list ++ microvm-unstable-list;
} }
]; ];
}; };

View file

@ -1,6 +0,0 @@
{}:
{
services.caddy = {
enable = true;
};
}

View file

@ -18,7 +18,7 @@ in
microvm = { microvm = {
hypervisor = "qemu"; hypervisor = "qemu";
mem = 3 * 1024; mem = 3 * 1024;
balloonMem = 4 * 1024; balloon = true;
vcpu = 4; vcpu = 4;
interfaces = [ interfaces = [
{ {

View file

@ -1,12 +1,7 @@
{ {
config, config,
inputs,
pkgs,
... ...
}: }:
let
immich-latest = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.immich;
in
{ {
sops.secrets."immich.yaml" = { sops.secrets."immich.yaml" = {
sopsFile = ./immich.yaml; sopsFile = ./immich.yaml;
@ -16,7 +11,6 @@ in
services.immich = { services.immich = {
enable = true; enable = true;
package = immich-latest;
host = "10.89.88.13"; host = "10.89.88.13";
redis.enable = true; redis.enable = true;
database.createDB = true; database.createDB = true;

View file

@ -46,6 +46,11 @@
supportedLocales = [ "all" ]; supportedLocales = [ "all" ];
}; };
# support ddc brigtness control
hardware.i2c.enable = true;
boot.kernelModules = [ "i2c-dev" ];
environment.systemPackages = [ pkgs.ddcutil ];
users.users."0xa" = { users.users."0xa" = {
extraGroups = [ extraGroups = [
"wheel" "wheel"
@ -55,16 +60,15 @@
"bluetooth" "bluetooth"
"libvirtd" "libvirtd"
"qemu-libvirtd" "qemu-libvirtd"
"i2c"
]; ];
group = "users"; group = "users";
home = "/home/0xa"; home = "/home/0xa";
isNormalUser = true; isNormalUser = true;
uid = 1000; uid = 1000;
shell = pkgs.zsh; shell = pkgs.fish;
}; };
services.emacs.defaultEditor = false;
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave

37
modules/emacs.nix Normal file
View file

@ -0,0 +1,37 @@
{
pkgs,
lib,
...
}:
{
environment.systemPackages = with pkgs; [
direnv
mu
];
services.emacs = {
install = true;
enable = false;
package =
with pkgs;
(
(emacsPackagesFor (
emacs-pgtk.overrideAttrs (old: {
passthru = old.passthru // {
treeSitter = true;
};
})
)).emacsWithPackages
(
epkgs: with epkgs; [
treesit-grammars.with-all-grammars
vterm
pdf-tools
mu4e
]
)
);
defaultEditor = lib.mkDefault true;
};
}

View file

@ -8,12 +8,14 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
amberol amberol
celluloid celluloid
ddcutil
gnome-console gnome-console
gnome-obfuscate gnome-obfuscate
gnome-boxes gnome-boxes
gnome-tweaks gnome-tweaks
qbittorrent qbittorrent
gnomeExtensions.caffeine gnomeExtensions.caffeine
gnomeExtensions.brightness-control-using-ddcutil
spotify spotify
ghostty ghostty
fractal fractal
@ -40,12 +42,6 @@
}; };
}; };
qt = {
enable = true;
platformTheme = "gnome";
style = "adwaita-dark";
};
services.xserver = { services.xserver = {
enable = true; enable = true;
desktopManager.gnome.enable = true; desktopManager.gnome.enable = true;

View file

@ -5,7 +5,7 @@
gnuradio gnuradio
gqrx gqrx
cubicsdr cubicsdr
sdrangel # sdrangel # broken package
multimon-ng multimon-ng
sox sox