homelab/vm-homelab.nix

84 lines
1.9 KiB
Nix
Raw Normal View History

2025-08-15 16:41:33 -05:00
{ inputs, pkgs, ... }:
{
imports = [
./vm-base.nix
];
config = {
my.vm = {
name = "lab01";
ip4 = "192.168.0.5";
};
# environment.systemPackages = with pkgs; [
# ];
networking.firewall.allowedTCPPorts = [ 80 443 ];
services.caddy = {
enable = true;
virtualHosts = {
"feed.rperce.net".extraConfig = ''
reverse_proxy http://192.168.0.5:8080
'';
"barkeep.dukeceph.xyz".extraConfig = ''
reverse_proxy http://192.168.0.2:8000
'';
"barkeep.rperce.net".extraConfig = ''
reverse_proxy http://192.168.0.2:8000
'';
"minecraft.dukeceph.xyz".extraConfig = ''
reverse_proxy http://192.168.0.4:8080
'';
"immich.rperce.net".extraConfig = ''
reverse_proxy http://192.168.0.2:2283
'';
"metrics.rperce.net".extraConfig = ''
reverse_proxy http://192.168.0.2:3000
'';
"jellyfin.rperce.net".extraConfig = ''
reverse_proxy http://192.168.0.2:8096
'';
"forge.rperce.net".extraConfig = ''
reverse_proxy http://192.168.0.5:3333
'';
};
};
services.miniflux = {
enable = true;
adminCredentialsFile = "/mnt/nfs/miniflux/admin-credentials";
config = {
LISTEN_ADDR = "0.0.0.0:8080";
};
};
services.immich = {
enable = true;
host = "0.0.0.0";
port = 2293;
};
services.forgejo = {
enable = true;
database.type = "postgres";
lfs.enable = true;
settings = {
server = {
DOMAIN = "forge.rperce.net";
ROOT_URL = "https://forge.rperce.net/";
HTTP_PORT = 3333;
};
service.DISABLE_REGISTRATION = true;
actions = {
ENABLED = true;
DEFAULT_ACTIONS_URL = "github";
};
mailer.ENABLED = false;
};
};
};
}