Files
dotfiles/nixos/machines/biskcomp.nix

184 lines
4.6 KiB
Nix
Raw Normal View History

2024-12-22 18:11:37 -07:00
{ pkgs, forEachUser, config, ... }:
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
2021-07-11 17:23:59 +00:00
../raspberry-pi.nix
];
2023-12-13 11:41:50 -07:00
users.users.nginx = {
group = "nginx";
isSystemUser = true;
extraGroups = ["syncthing"];
};
2024-09-26 14:15:27 -06:00
myModules.raspberry-pi.enable = true;
2024-09-26 14:15:27 -06:00
myModules.base.enable = true;
myModules.desktop.enable = true;
myModules.xmonad.enable = false;
myModules.extra.enable = false;
myModules.code.enable = true;
myModules.games.enable = false;
myModules.syncthing.enable = true;
myModules.fonts.enable = true;
myModules.nixified-ai.enable = false;
myModules.cache-server = {
enable = false;
host-string = biskcomp-nginx-hostnames;
2023-08-28 01:03:24 +00:00
port = 80;
path = "/nix-cache";
};
2024-09-26 14:15:27 -06:00
myModules.gitea.enable = true;
myModules.gitea-runner.enable = false;
2023-08-28 01:03:24 +00:00
myModules.railbird-k3s = {
2025-01-01 13:12:35 -07:00
enable = false;
serverAddr = "https://dev.railbird.ai:6443";
};
services.k3s.disableAgent = true;
2025-01-01 12:03:48 -07:00
age.secrets.vaultwarden-environment-file = {
file = ../secrets/vaultwarden-environment-file.age;
owner = "vaultwarden";
};
2023-08-28 01:40:50 +00:00
services.vaultwarden = {
enable = true;
2025-01-01 11:55:23 -07:00
backupDir = "/var/backup/vaultwarden";
2025-01-01 12:03:48 -07:00
environmentFile = config.age.secrets.vaultwarden-environment-file.path;
2023-08-28 01:40:50 +00:00
config = {
ROCKET_ADDRESS = "::1";
2023-08-28 01:40:50 +00:00
ROCKET_PORT = 8222;
};
};
security.acme = {
acceptTerms = true;
defaults.email = "IvanMalison@gmail.com";
};
2024-10-20 16:29:38 -06:00
services.gitlab = {
enable = true;
databasePasswordFile = pkgs.writeText "dbPassword" "zgvcyfwsxzcwr85l";
initialRootPasswordFile = pkgs.writeText "rootPassword" "dakqdvp4ovhksxer";
2024-10-21 00:09:09 -06:00
host = "gitlab.railbird.ai";
2024-10-20 16:29:38 -06:00
secrets = {
secretFile = pkgs.writeText "secret" "Aig5zaic";
otpFile = pkgs.writeText "otpsecret" "Riew9mue";
dbFile = pkgs.writeText "dbsecret" "we2quaeZ";
jwsFile = pkgs.runCommand "oidcKeyBase" {} "${pkgs.openssl}/bin/openssl genrsa 2048 > $out";
};
};
2023-11-21 20:09:47 -07:00
2024-12-22 18:11:37 -07:00
age.secrets.discourse-admin-password = {
file = ../secrets/discourse-admin-password.age;
mode = "770";
owner = "discourse";
group = "users";
2024-12-22 18:11:37 -07:00
};
age.secrets.discourse-secret-key-base = {
file = ../secrets/discourse-secret-key-base.age;
group = "users";
owner = "discourse";
};
2024-12-22 18:11:37 -07:00
services.discourse = {
2025-01-01 11:39:52 -07:00
enable = false;
2024-12-22 18:11:37 -07:00
enableACME = true;
hostname = "discourse.railbird.ai";
2024-12-22 19:47:19 -07:00
admin = {
passwordFile = config.age.secrets.discourse-admin-password.path;
email = "support@railbird.ai";
fullName = "Admin";
username = "admin";
2024-12-22 19:47:19 -07:00
};
secretKeyBaseFile = config.age.secrets.discourse-secret-key-base.path;
database.ignorePostgresqlVersion = true;
2024-12-22 18:11:37 -07:00
};
2023-11-17 13:25:22 -07:00
services.nginx = {
enable = true;
recommendedProxySettings = true;
recommendedGzipSettings = true;
recommendedTlsSettings = true;
virtualHosts = {
2024-10-20 16:29:38 -06:00
"gitlab.railbird.ai" = {
enableACME = true;
forceSSL = true;
locations."/".proxyPass = "http://unix:/run/gitlab/gitlab-workhorse.socket";
};
2023-11-17 13:25:22 -07:00
"vaultwarden.railbird.ai" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://[::1]:8222";
};
};
"cache.railbird.ai" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://192.168.1.20:3090";
};
};
2023-12-07 01:39:50 -07:00
"syncthing.railbird.ai" = {
enableACME = true;
forceSSL = true;
root = "/var/lib/syncthing/railbird";
2023-12-07 01:39:50 -07:00
locations."/" = {
extraConfig = ''
autoindex on;
'';
2023-12-07 01:39:50 -07:00
};
};
2024-08-19 14:30:56 -06:00
"docs.railbird.ai" = {
enableACME = true;
forceSSL = true;
root = "/var/lib/syncthing/railbird/docs";
locations."/" = {
extraConfig = ''
autoindex on;
'';
};
};
2023-11-17 13:25:22 -07:00
};
};
2023-08-04 03:28:38 +00:00
services.plex = {
enable = true;
};
2023-06-17 18:16:47 +00:00
2023-08-01 17:47:16 -06:00
fileSystems."/" = {
device = "/dev/disk/by-label/NIXOS_SD";
2023-08-01 17:47:16 -06:00
fsType = "ext4";
};
2023-06-17 18:16:47 +00:00
services.home-assistant = {
2024-06-13 04:49:59 +00:00
enable = false;
2023-06-17 18:16:47 +00:00
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 = {};
};
};
2023-08-05 17:13:32 -06:00
swapDevices = [
{ device = "/swapfile"; size = 8192; } # size is in MiB
];
networking.hostName = "biskcomp";
system.stateVersion = "23.11";
home-manager.users = forEachUser {
home.stateVersion = "23.11";
};
}