refactor!: migrate homelab configuration to nih

This commit is contained in:
Gustavo "Guz" L. de Mello
2024-04-05 18:02:00 -03:00
parent 810f3bce5b
commit b452dd4e3d

View File

@@ -1,4 +1,3 @@
# 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).
@@ -6,67 +5,91 @@
{
imports = [
../../modules/nixos/systems/set-user.nix
../../modules/nixos/config/host.nix
../../modules/server
../../modules/nih
./hardware-configuration.nix
./secrets.nix
./users
];
server = {
nih = {
enable = true;
flakeDir = "/home/guz/.nix#homelab";
name = "homelab";
domain = "homelab.local";
ip = "192.168.1.10";
type = "server";
ip = "100.66.139.89";
localIp = "192.168.1.10";
network = {
enable = true;
networking = {
interface = "eno1";
wireless = false;
};
/*
services.tailscale = {
enable = true;
exitNode = true;
routingFeatures = "both";
};
users.guz = {
username = "guz";
password = "$y$j9T$J7gmdB306rufrjdsY5kJq0$spluDZf8jEkG0VYcZXzBIpnACVIk27C8YTbo2vbNFfA";
profiles.gterminal.enable = true;
};
};
/*
server = {
enable = true;
flakeDir = "/home/guz/.nix#homelab";
name = "homelab";
domain = "homelab.local";
ip = "100.66.139.89";
localIp = "192.168.1.10";
network = {
enable = true;
interface = "eno1";
};
nextcloud = {
enable = true;
settings.admin = {
passwordFile = /. + config.sops.secrets."nextcloud/user1/password".path;
};
};
*/
tailscale = {
tailscale = {
enable = true;
mode = "both";
exitNode = true;
};
};
forgejo = {
forgejo = {
enable = true;
actions = {
enable = true;
runnerToken = "PYKxHNpeCR2ajtdPgo1C3rvgZHNJqzH4bUXLDwLa";
};
settings.server.url = "https://${config.server.forgejo.settings.server.domain}";
settings.users."user1" = {
name = /. + config.sops.secrets."forgejo/user1/name".path;
email = /. + config.sops.secrets."forgejo/user1/email".path;
password = /. + config.sops.secrets."forgejo/user1/password".path;
admin = true;
name = /. + config.sops.secrets."forgejo/user1/name".path;
email = /. + config.sops.secrets."forgejo/user1/email".path;
password = /. + config.sops.secrets."forgejo/user1/password".path;
admin = true;
};
settings.ui.themes = [ "forgejo-dark" "arc-green" ];
/*
I'm hours trying to make pushing via SSH work, but using the {user}@{domain}:{owner}/{repo}
simply isn't working and returns "does not appear to be a git repository". Probably
is a problem with all the "domain handling" stuff with caddy, adguard, etc. This is
a temporary fix, so I don't end up breaking my actual sanity.
*/
settings.security.allowBypassGiteaEnv = true;
};
};
jellyfin = {
jellyfin = {
enable = true;
};
};
};
};
*/
services.tailscale.enable = true;
# Bootloader.
@@ -76,6 +99,13 @@
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment?
}