Added live disk flake
This commit is contained in:
@@ -5,6 +5,12 @@ let
|
||||
shinobi-od-port = "7082";
|
||||
state-dir = "/state"; # This must be a string!
|
||||
|
||||
home-assistant-port = 8123;
|
||||
|
||||
parent-config = config;
|
||||
|
||||
generate-mac = pkgs.lib.network.generate-mac-address;
|
||||
|
||||
in {
|
||||
boot = {
|
||||
loader.grub.copyKernels = true;
|
||||
@@ -22,20 +28,6 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
# fudo.secrets = {
|
||||
# host-secrets.lambda = {
|
||||
# host-keytab = {
|
||||
# source-file = /state/secrets/kerberos/lambda.keytab;
|
||||
# target-file = "/etc/krb5.keytab";
|
||||
# user = "root";
|
||||
# };
|
||||
# };
|
||||
|
||||
# secret-group = "fudo-secrets";
|
||||
# secret-users = [ "niten" ];
|
||||
# secret-paths = [ "/state/secrets" ];
|
||||
# };
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"L /root/.gnupg - - - - ${state-dir}/user/root/gnupg"
|
||||
"L /root/.ssh/id_rsa - - - - ${state-dir}/user/root/ssh/id_rsa"
|
||||
@@ -92,6 +84,21 @@ in {
|
||||
Defaults lecture = never
|
||||
'';
|
||||
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
recommendedOptimisation = true;
|
||||
recommendedProxySettings = true;
|
||||
recommendedGzipSettings = true;
|
||||
|
||||
virtualHosts."home.sea.fudo.org" = {
|
||||
locations."/" = {
|
||||
proxyPass =
|
||||
"http://localhost:${toString home-assistant-port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
virtualisation = {
|
||||
docker = {
|
||||
enable = true;
|
||||
@@ -100,19 +107,30 @@ in {
|
||||
};
|
||||
|
||||
oci-containers = {
|
||||
backend = "docker";
|
||||
containers = {
|
||||
shinobi = {
|
||||
image = "shinobisystems/shinobi:latest";
|
||||
ports = [ "${shinobi-port}:8080" ];
|
||||
home-assistant = {
|
||||
image = "homeassistant/home-assistant:stable";
|
||||
autoStart = true;
|
||||
environment.TZ = config.time.timeZone;
|
||||
ports = [ "${toString home-assistant-port}:8123" ];
|
||||
volumes = [
|
||||
"/state/shinobi/plugins:/home/Shinobi/plugins"
|
||||
"/state/shinobi/config:/home/Shinobi/config"
|
||||
"/state/shinobi/videos:/home/Shinobi/videos"
|
||||
"/state/shinobi/db-data:/var/lib/mysql"
|
||||
"/etc/localtime:/etc/localtime:ro"
|
||||
"/state/services/home-assistant:/config"
|
||||
];
|
||||
};
|
||||
|
||||
# shinobi = {
|
||||
# image = "shinobisystems/shinobi:latest";
|
||||
# ports = [ "${shinobi-port}:8080" ];
|
||||
# volumes = [
|
||||
# "/state/shinobi/plugins:/home/Shinobi/plugins"
|
||||
# "/state/shinobi/config:/home/Shinobi/config"
|
||||
# "/state/shinobi/videos:/home/Shinobi/videos"
|
||||
# "/state/shinobi/db-data:/var/lib/mysql"
|
||||
# "/etc/localtime:/etc/localtime:ro"
|
||||
# ];
|
||||
# };
|
||||
|
||||
# shinobi-od = {
|
||||
# image = "shinobisystems/shinobi-tensorflow:latest";
|
||||
# volumes =
|
||||
@@ -129,41 +147,4 @@ in {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
recommendedGzipSettings = true;
|
||||
recommendedOptimisation = true;
|
||||
recommendedProxySettings = true;
|
||||
|
||||
virtualHosts = {
|
||||
"panopticon.sea.fudo.org" = {
|
||||
locations."/" = {
|
||||
# localhost defaults to IPv6
|
||||
proxyPass = "http://127.0.0.1:${shinobi-port}/";
|
||||
extraConfig = ''
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-By $server_addr:$server_port;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
'';
|
||||
};
|
||||
};
|
||||
# "panopticon-od.sea.fudo.org" = {
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://localhost:${shinobi-od-port}";
|
||||
# extraConfig = ''
|
||||
# proxy_http_version 1.1;
|
||||
# proxy_set_header Upgrade $http_upgrade;
|
||||
# proxy_set_header Connection "Upgrade";
|
||||
# '';
|
||||
# };
|
||||
# };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user