nixos-hypervisor/services/netbox/default.nix

74 lines
1.8 KiB
Nix
Raw Normal View History

2024-09-24 15:54:59 +02:00
{ config, pkgs, lib, ... }:
let
cfg = config.services.vm_netbox;
in
{
options.services.vm_netbox = {
enable = lib.mkEnableOption "Enable minimal config";
db_ip = lib.mkOption {
type = lib.types.str;
description = "netbox database IP address";
};
};
config = lib.mkIf cfg.enable {
services.netbox = {
enable = true;
port = 8001;
settings = {
2024-09-24 16:05:59 +02:00
ALLOWED_HOSTS = [ "*" ];
DATABASE = lib.mkForce {
ENGINE = "django.db.backends.postgresql";
NAME = "netbox";
USER = "netbox";
PASSWORD = "Netbox43Zer!";
HOST = "192.168.1.13";
PORT = 5432;
CONN_MAX_AGE = 300;
};
2024-09-24 15:54:59 +02:00
REDIS = {
2024-09-24 16:05:59 +02:00
tasks = {
HOST = "192.168.1.16";
PORT = 6379;
USERNAME = "";
PASSWORD = "";
DATABASE = 0;
SSL = false;
};
caching = {
HOST = "192.168.1.16";
PORT = 6379;
USERNAME = "";
PASSWORD = "";
DATABASE = 1;
SSL = false;
};
};
CSRF_COOKIE_NAME = "csrftoken";
CSRF_TRUSTED_ORIGINS = [
"http://192.168.1.40"
"https://netbox.le43.eu"
];
DEBUG = false;
2024-09-24 15:54:59 +02:00
};
secretKeyFile = "/run/secrets/netbox/keyFile";
};
2024-09-24 16:26:53 +02:00
services.nginx = {
enable = true;
user = "netbox";
clientMaxBodySize = "25m";
virtualHosts."192.168.1.45" = {
locations = {
"/" = {
proxyPass = "http://localhost:8001";
};
"/static/" = { alias = "${config.services.netbox.dataDir}/static/"; };
};
forceSSL = false;
enableACME = false;
};
};
2024-09-24 16:27:46 +02:00
networking.firewall.allowedTCPPorts = [ 80 8001 ];
2024-09-24 15:54:59 +02:00
};
}