Files
nix-config/modules/hosts/alpha/config.nix
2026-06-30 17:03:57 +05:30

115 lines
2.3 KiB
Nix

{ config, ... }:
{
flake.modules.nixos.alpha =
{
hostName,
userName,
...
}@innerArgs:
{
imports = with config.flake.modules.nixos; [
boot
networking
virtualisation
services
];
tnix = {
boot = {
legacy.enable = true;
impermanence = {
enable = true;
home = {
directories = [
".local/share/nvim"
".local/share/zsh"
".local/share/zoxide"
".local/state/lazygit"
".local/share/opencode"
"/var/lib/docker"
];
};
};
};
networking = {
openssh.enable = true;
netbird-client.enable = true;
};
services = {
nginx = {
enable = true;
domain = "lab.tux.rs";
};
aiostreams = {
enable = true;
port = 4567;
environment = {
ADDON_ID = "aiostreams.lab.tux.rs";
BASE_URL = "https://aiostreams.lab.tux.rs";
};
environmentFile = innerArgs.config.sops.secrets."aiostreams".path;
};
};
virtualisation = {
docker.enable = true;
};
};
sops.secrets = {
tux-password = {
sopsFile = ./secrets.yaml;
neededForUsers = true;
};
gemini-api-key = {
sopsFile = ./secrets.yaml;
owner = userName;
};
openrouter-api-key = {
sopsFile = ./secrets.yaml;
owner = userName;
};
opencode-go-api-key = {
sopsFile = ./secrets.yaml;
owner = userName;
};
netbird-key = {
sopsFile = ./secrets.yaml;
owner = userName;
};
"cloudflare-credentials/email" = {
sopsFile = ./secrets.yaml;
};
"cloudflare-credentials/dns-api-token" = {
sopsFile = ./secrets.yaml;
};
aiostreams = {
sopsFile = ./secrets.yaml;
};
};
# --- Networking ---
networking = {
hostName = hostName;
networkmanager.enable = true;
firewall.enable = false;
};
system.stateVersion = "26.05";
};
}