dotfiles/nixos/machines/biskcomp.nix

114 lines
2.7 KiB
Nix

{ forEachUser, ... }:
let biskcomp-nginx-hostnames = "192.168.1.44 railbird.ai 1896Folsom.duckdns.org biskcomp.local 0.0.0.0 67.162.131.71";
in
{
imports = [
../configuration.nix
../raspberry-pi.nix
];
modules.raspberry-pi.enable = true;
modules.base.enable = true;
modules.desktop.enable = true;
modules.xmonad.enable = true;
modules.extra.enable = false;
modules.code.enable = true;
modules.games.enable = false;
modules.syncthing.enable = true;
modules.fonts.enable = true;
modules.nixified-ai.enable = false;
modules.cache-server = {
enable = true;
host-string = biskcomp-nginx-hostnames;
port = 80;
path = "/nix-cache";
};
services.vaultwarden = {
enable = true;
config = {
ROCKET_ADDRESS = "::1";
ROCKET_PORT = 8222;
};
};
services.nginx = {
enable = true;
recommendedProxySettings = true;
recommendedGzipSettings = true;
recommendedTlsSettings = true;
virtualHosts = {
"192.168.1.44 railbird.ai 1896Folsom.duckdns.org 0.0.0.0 67.162.131.71" = {
root = ../railbird.ai;
locations."/" = {
index = "index.html";
};
};
# Server block for Vaultwarden on a different port
"_:8222" = {
listen = [ { addr = "::"; port = 8222; } ]; # Listen on IPv6 and port 8222
forceSSL = false; # Assuming you're not using HTTPS for this one
locations."/" = {
proxyPass = "http://::1:8222";
proxySetHeaders = {
Host = "$host";
X-Real-IP = "$remote_addr";
X-Forwarded-For = "$proxy_add_x_forwarded_for";
X-Forwarded-Proto = "$scheme";
};
proxyRedirect = "off";
};
};
};
};
services.plex = {
enable = true;
};
services.gitea = {
enable = true;
lfs.enable = true;
settings.server = {
DOMAIN = "1896Folsom.duckdns.org";
SSH_PORT = 1123;
};
};
services.gitea-actions-runner = {
enable = true;
url = "http://1896Folsom.duckdns.org:3000";
};
fileSystems."/" = {
device = "/dev/disk/by-label/NIXOS_SD";
fsType = "ext4";
};
services.home-assistant = {
enable = true;
extraComponents = [
# Components required to complete the onboarding
"met"
"radio_browser"
];
config = {
# Includes dependencies for a basic setup
# https://www.home-assistant.io/integrations/default_config/
default_config = {};
};
};
swapDevices = [
{ device = "/swapfile"; size = 8192; } # size is in MiB
];
networking.hostName = "biskcomp";
system.stateVersion = "23.11";
home-manager.users = forEachUser {
home.stateVersion = "23.11";
};
}