Compare commits
12 Commits
b3b3044690
...
23c8076e4d
Author | SHA1 | Date | |
---|---|---|---|
23c8076e4d | |||
75ae399b5a | |||
87ddad27a4 | |||
8dd2a00123 | |||
944a783ff2 | |||
c2cb43fd2c | |||
02b2fb6309 | |||
b43660aaef | |||
567d755850 | |||
adc9b9f2b7 | |||
9181e3bfa3 | |||
9845270512 |
@ -4,7 +4,7 @@
|
|||||||
- `/common` - common configuration imported into all `/machines`
|
- `/common` - common configuration imported into all `/machines`
|
||||||
- `/boot` - config related to bootloaders, cpu microcode, and unlocking LUKS root disks over tor
|
- `/boot` - config related to bootloaders, cpu microcode, and unlocking LUKS root disks over tor
|
||||||
- `/network` - config for tailscale, and NixOS container with automatic vpn tunneling via PIA
|
- `/network` - config for tailscale, and NixOS container with automatic vpn tunneling via PIA
|
||||||
- `/pc` - config that a graphical desktop computer should have. Use `de.enable = true;` to enable everthing.
|
- `/pc` - config that a graphical PC should have. Have the `personal` role set in the machine's `properties.nix` to enable everthing.
|
||||||
- `/server` - config that creates new nixos services or extends existing ones to meet my needs
|
- `/server` - config that creates new nixos services or extends existing ones to meet my needs
|
||||||
- `/machines` - all my NixOS machines along with their machine unique configuration for hardware and services
|
- `/machines` - all my NixOS machines along with their machine unique configuration for hardware and services
|
||||||
- `/kexec` - a special machine for generating minimal kexec images. Does not import `/common`
|
- `/kexec` - a special machine for generating minimal kexec images. Does not import `/common`
|
||||||
|
@ -98,4 +98,9 @@
|
|||||||
|
|
||||||
security.acme.acceptTerms = true;
|
security.acme.acceptTerms = true;
|
||||||
security.acme.defaults.email = "zuckerberg@neet.dev";
|
security.acme.defaults.email = "zuckerberg@neet.dev";
|
||||||
|
|
||||||
|
# Enable Desktop Environment if this is a PC (machine role is "personal")
|
||||||
|
de.enable = (
|
||||||
|
builtins.elem config.networking.hostName config.machines.roles.personal
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
@ -13,12 +13,6 @@ in
|
|||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
experimental-features = nix-command flakes
|
experimental-features = nix-command flakes
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# pin nixpkgs for system commands such as "nix shell"
|
|
||||||
registry.nixpkgs.flake = config.inputs.nixpkgs;
|
|
||||||
|
|
||||||
# pin system nixpkgs to the same version as the flake input
|
|
||||||
nixPath = [ "nixpkgs=${config.inputs.nixpkgs}" ];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,10 @@ in
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./kde.nix
|
./kde.nix
|
||||||
# ./xfce.nix
|
|
||||||
./yubikey.nix
|
./yubikey.nix
|
||||||
./chromium.nix
|
./chromium.nix
|
||||||
./firefox.nix
|
./firefox.nix
|
||||||
./audio.nix
|
./audio.nix
|
||||||
# ./torbrowser.nix
|
|
||||||
./pithos.nix
|
./pithos.nix
|
||||||
./vscodium.nix
|
./vscodium.nix
|
||||||
./discord.nix
|
./discord.nix
|
||||||
@ -27,6 +25,11 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# https://github.com/NixOS/nixpkgs/pull/328086#issuecomment-2235384618
|
||||||
|
gparted
|
||||||
|
];
|
||||||
|
|
||||||
# Applications
|
# Applications
|
||||||
users.users.googlebot.packages = with pkgs; [
|
users.users.googlebot.packages = with pkgs; [
|
||||||
chromium
|
chromium
|
||||||
@ -38,7 +41,6 @@ in
|
|||||||
mpv
|
mpv
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
signal-desktop
|
signal-desktop
|
||||||
gparted
|
|
||||||
libreoffice-fresh
|
libreoffice-fresh
|
||||||
thunderbird
|
thunderbird
|
||||||
spotify
|
spotify
|
||||||
@ -52,6 +54,8 @@ in
|
|||||||
|
|
||||||
# For Nix IDE
|
# For Nix IDE
|
||||||
nixpkgs-fmt
|
nixpkgs-fmt
|
||||||
|
nixd
|
||||||
|
nil
|
||||||
];
|
];
|
||||||
|
|
||||||
# Networking
|
# Networking
|
||||||
|
@ -14,7 +14,7 @@ in
|
|||||||
# akonadi
|
# akonadi
|
||||||
# kmail
|
# kmail
|
||||||
# plasma5Packages.kmail-account-wizard
|
# plasma5Packages.kmail-account-wizard
|
||||||
kate
|
kdePackages.kate
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.de;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(self: super: {
|
|
||||||
tor-browser-bundle-bin = super.tor-browser-bundle-bin.overrideAttrs (old: rec {
|
|
||||||
version = "10.0.10";
|
|
||||||
lang = "en-US";
|
|
||||||
src = pkgs.fetchurl {
|
|
||||||
url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
|
|
||||||
sha256 = "vYWZ+NsGN8YH5O61+zrUjlFv3rieaBqjBQ+a18sQcZg=";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
users.users.googlebot.packages = with pkgs; [
|
|
||||||
tor-browser-bundle-bin
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,13 +1,9 @@
|
|||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.de.touchpad;
|
cfg = config.de;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.de.touchpad = {
|
|
||||||
enable = lib.mkEnableOption "enable touchpad";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
services.libinput.enable = true;
|
services.libinput.enable = true;
|
||||||
services.libinput.touchpad.naturalScrolling = true;
|
services.libinput.touchpad.naturalScrolling = true;
|
||||||
|
@ -13,6 +13,7 @@ let
|
|||||||
ms-vscode.cpptools
|
ms-vscode.cpptools
|
||||||
rust-lang.rust-analyzer
|
rust-lang.rust-analyzer
|
||||||
vadimcn.vscode-lldb
|
vadimcn.vscode-lldb
|
||||||
|
tauri-apps.tauri-vscode
|
||||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||||
{
|
{
|
||||||
name = "platformio-ide";
|
name = "platformio-ide";
|
||||||
@ -26,6 +27,12 @@ let
|
|||||||
version = "0.8.1";
|
version = "0.8.1";
|
||||||
sha256 = "ckclcxdUxhjWlPnDFVleLCWgWxUEENe0V328cjaZv+Y=";
|
sha256 = "ckclcxdUxhjWlPnDFVleLCWgWxUEENe0V328cjaZv+Y=";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name = "volar";
|
||||||
|
publisher = "Vue";
|
||||||
|
version = "2.2.4";
|
||||||
|
sha256 = "FHS/LNjSUVfCb4SVF9naR4W0JqycWzSWiK54jfbRagA=";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
vscodium-with-extensions = pkgs.vscode-with-extensions.override {
|
vscodium-with-extensions = pkgs.vscode-with-extensions.override {
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.de;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.xserver = {
|
|
||||||
enable = true;
|
|
||||||
desktopManager = {
|
|
||||||
xterm.enable = false;
|
|
||||||
xfce.enable = true;
|
|
||||||
};
|
|
||||||
displayManager.sddm.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# xfce apps
|
|
||||||
# TODO for some reason whiskermenu needs to be global for it to work
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
xfce.xfce4-whiskermenu-plugin
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.services.dashy;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.services.dashy = {
|
|
||||||
enable = mkEnableOption "dashy";
|
|
||||||
imageTag = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "latest";
|
|
||||||
};
|
|
||||||
port = mkOption {
|
|
||||||
type = types.int;
|
|
||||||
default = 56815;
|
|
||||||
};
|
|
||||||
configFile = lib.mkOption {
|
|
||||||
type = lib.types.path;
|
|
||||||
description = "Path to the YAML configuration file";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
virtualisation.oci-containers.containers = {
|
|
||||||
dashy = {
|
|
||||||
image = "lissy93/dashy:${cfg.imageTag}";
|
|
||||||
environment = {
|
|
||||||
TZ = "${config.time.timeZone}";
|
|
||||||
};
|
|
||||||
ports = [
|
|
||||||
"127.0.0.1:${toString cfg.port}:80"
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
"${cfg.configFile}:/app/public/conf.yml"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -18,7 +18,6 @@
|
|||||||
./iodine.nix
|
./iodine.nix
|
||||||
./searx.nix
|
./searx.nix
|
||||||
./gitea-actions-runner.nix
|
./gitea-actions-runner.nix
|
||||||
./dashy.nix
|
|
||||||
./librechat.nix
|
./librechat.nix
|
||||||
./actualbudget.nix
|
./actualbudget.nix
|
||||||
./unifi.nix
|
./unifi.nix
|
||||||
|
@ -24,7 +24,7 @@ in
|
|||||||
SHOW_FOOTER_VERSION = false;
|
SHOW_FOOTER_VERSION = false;
|
||||||
};
|
};
|
||||||
ui = {
|
ui = {
|
||||||
DEFAULT_THEME = "arc-green";
|
DEFAULT_THEME = "gitea-dark";
|
||||||
};
|
};
|
||||||
service = {
|
service = {
|
||||||
DISABLE_REGISTRATION = true;
|
DISABLE_REGISTRATION = true;
|
||||||
|
@ -21,11 +21,17 @@ in
|
|||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
virtualisation.oci-containers.containers = {
|
virtualisation.oci-containers.containers = {
|
||||||
librechat = {
|
librechat = {
|
||||||
image = "ghcr.io/danny-avila/librechat:v0.7.6";
|
image = "ghcr.io/danny-avila/librechat:v0.7.7";
|
||||||
environment = {
|
environment = {
|
||||||
HOST = "0.0.0.0";
|
HOST = "0.0.0.0";
|
||||||
MONGO_URI = "mongodb://host.containers.internal:27017/LibreChat";
|
MONGO_URI = "mongodb://host.containers.internal:27017/LibreChat";
|
||||||
ENDPOINTS = "openAI,google,bingAI,gptPlugins";
|
ENDPOINTS = "openAI,google,bingAI,gptPlugins";
|
||||||
|
OPENAI_MODELS = lib.concatStringsSep "," [
|
||||||
|
"gpt-4o-mini"
|
||||||
|
"o3-mini"
|
||||||
|
"gpt-4o"
|
||||||
|
"o1"
|
||||||
|
];
|
||||||
REFRESH_TOKEN_EXPIRY = toString (1000 * 60 * 60 * 24 * 30); # 30 days
|
REFRESH_TOKEN_EXPIRY = toString (1000 * 60 * 60 * 24 * 30); # 30 days
|
||||||
};
|
};
|
||||||
environmentFiles = [
|
environmentFiles = [
|
||||||
|
18
flake.lock
generated
18
flake.lock
generated
@ -3,7 +3,9 @@
|
|||||||
"agenix": {
|
"agenix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
"home-manager": "home-manager",
|
"home-manager": [
|
||||||
|
"home-manager"
|
||||||
|
],
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
@ -151,16 +153,15 @@
|
|||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"agenix",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1703113217,
|
"lastModified": 1740845322,
|
||||||
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
|
"narHash": "sha256-AXEgFj3C0YJhu9k1OhbRhiA6FnDr81dQZ65U3DhaWpw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
|
"rev": "fcac3d6d88302a5e64f6cb8014ac785e08874c8d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -207,11 +208,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731278633,
|
"lastModified": 1740374225,
|
||||||
"narHash": "sha256-3yxgMFssoDGm9rWJiAGfJRPctr06gaefjnpUltphkAQ=",
|
"narHash": "sha256-Dnmzy5YWUVj3BNaZo5jRpZslXexbNKEk3ADGGcz9RpY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "871087c18d344abaa569e7d1b7c1af576aab877f",
|
"rev": "3349acd765bdffe454f7c8bbc450855577c1a6cf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -269,6 +270,7 @@
|
|||||||
"deploy-rs": "deploy-rs",
|
"deploy-rs": "deploy-rs",
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
|
"home-manager": "home-manager",
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
|
24
flake.nix
24
flake.nix
@ -17,6 +17,12 @@
|
|||||||
# NixOS hardware
|
# NixOS hardware
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
|
|
||||||
|
# Home Manager
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
# Mail Server
|
# Mail Server
|
||||||
simple-nixos-mailserver = {
|
simple-nixos-mailserver = {
|
||||||
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master";
|
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master";
|
||||||
@ -33,6 +39,7 @@
|
|||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.follows = "nixpkgs";
|
nixpkgs.follows = "nixpkgs";
|
||||||
systems.follows = "systems";
|
systems.follows = "systems";
|
||||||
|
home-manager.follows = "home-manager";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -81,7 +88,9 @@
|
|||||||
{
|
{
|
||||||
inherit nixpkgs;
|
inherit nixpkgs;
|
||||||
assertionsModule = "${nixpkgs}/nixos/modules/misc/assertions.nix";
|
assertionsModule = "${nixpkgs}/nixos/modules/misc/assertions.nix";
|
||||||
}).machines.hosts;
|
}).machines;
|
||||||
|
machineHosts = machines.hosts;
|
||||||
|
machineRoles = machines.roles;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations =
|
nixosConfigurations =
|
||||||
@ -92,6 +101,7 @@
|
|||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
dailybuild_modules.nixosModule
|
dailybuild_modules.nixosModule
|
||||||
nix-index-database.nixosModules.nix-index
|
nix-index-database.nixosModules.nix-index
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
self.nixosModules.kernel-modules
|
self.nixosModules.kernel-modules
|
||||||
({ lib, ... }: {
|
({ lib, ... }: {
|
||||||
config = {
|
config = {
|
||||||
@ -102,6 +112,13 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
networking.hostName = hostname;
|
networking.hostName = hostname;
|
||||||
|
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.users.googlebot = import ./home/googlebot.nix {
|
||||||
|
inherit hostname;
|
||||||
|
inherit machineRoles;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# because nixos specialArgs doesn't work for containers... need to pass in inputs a different way
|
# because nixos specialArgs doesn't work for containers... need to pass in inputs a different way
|
||||||
@ -120,6 +137,7 @@
|
|||||||
src = nixpkgs;
|
src = nixpkgs;
|
||||||
patches = [
|
patches = [
|
||||||
./patches/gamepadui.patch
|
./patches/gamepadui.patch
|
||||||
|
./patches/dont-break-nix-serve.patch
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
patchedNixpkgs = nixpkgs.lib.fix (self: (import "${patchedNixpkgsSrc}/flake.nix").outputs { self = nixpkgs; });
|
patchedNixpkgs = nixpkgs.lib.fix (self: (import "${patchedNixpkgsSrc}/flake.nix").outputs { self = nixpkgs; });
|
||||||
@ -139,7 +157,7 @@
|
|||||||
nixpkgs.lib.mapAttrs
|
nixpkgs.lib.mapAttrs
|
||||||
(hostname: cfg:
|
(hostname: cfg:
|
||||||
mkSystem cfg.arch nixpkgs cfg.configurationPath hostname)
|
mkSystem cfg.arch nixpkgs cfg.configurationPath hostname)
|
||||||
machines;
|
machineHosts;
|
||||||
|
|
||||||
packages =
|
packages =
|
||||||
let
|
let
|
||||||
@ -176,7 +194,7 @@
|
|||||||
nixpkgs.lib.mapAttrs
|
nixpkgs.lib.mapAttrs
|
||||||
(hostname: cfg:
|
(hostname: cfg:
|
||||||
mkDeploy hostname cfg.arch (builtins.head cfg.hostNames))
|
mkDeploy hostname cfg.arch (builtins.head cfg.hostNames))
|
||||||
machines;
|
machineHosts;
|
||||||
|
|
||||||
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) inputs.deploy-rs.lib;
|
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) inputs.deploy-rs.lib;
|
||||||
|
|
||||||
|
83
home/googlebot.nix
Normal file
83
home/googlebot.nix
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
{ hostname, machineRoles }:
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
# Check if the current machine has the role "personal"
|
||||||
|
thisMachineIsPersonal = builtins.elem hostname machineRoles.personal;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home.username = "googlebot";
|
||||||
|
home.homeDirectory = "/home/googlebot";
|
||||||
|
|
||||||
|
home.stateVersion = "24.11";
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
programs.zed-editor = {
|
||||||
|
enable = thisMachineIsPersonal;
|
||||||
|
extensions = [
|
||||||
|
"nix"
|
||||||
|
"toml"
|
||||||
|
"html"
|
||||||
|
"make"
|
||||||
|
"git-firefly"
|
||||||
|
"vue"
|
||||||
|
"scss"
|
||||||
|
];
|
||||||
|
|
||||||
|
userSettings = {
|
||||||
|
assistant = {
|
||||||
|
enabled = true;
|
||||||
|
version = "2";
|
||||||
|
default_model = {
|
||||||
|
provider = "openai";
|
||||||
|
model = "gpt-4-turbo";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
features = {
|
||||||
|
edit_prediction_provider = "zed";
|
||||||
|
};
|
||||||
|
|
||||||
|
node = {
|
||||||
|
path = lib.getExe pkgs.nodejs;
|
||||||
|
npm_path = lib.getExe' pkgs.nodejs "npm";
|
||||||
|
};
|
||||||
|
|
||||||
|
auto_update = false;
|
||||||
|
|
||||||
|
terminal = {
|
||||||
|
blinking = "off";
|
||||||
|
copy_on_select = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
lsp = {
|
||||||
|
rust-analyzer = {
|
||||||
|
# binary = {
|
||||||
|
# path = lib.getExe pkgs.rust-analyzer;
|
||||||
|
# };
|
||||||
|
binary = {
|
||||||
|
path = "/run/current-system/sw/bin/nix";
|
||||||
|
arguments = [ "develop" "--command" "rust-analyzer" ];
|
||||||
|
};
|
||||||
|
initialization_options = {
|
||||||
|
cargo = {
|
||||||
|
features = "all";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# tell zed to use direnv and direnv can use a flake.nix enviroment.
|
||||||
|
load_direnv = "shell_hook";
|
||||||
|
|
||||||
|
base_keymap = "VSCode";
|
||||||
|
theme = {
|
||||||
|
mode = "system";
|
||||||
|
light = "One Light";
|
||||||
|
dark = "Andrometa";
|
||||||
|
};
|
||||||
|
ui_font_size = 12;
|
||||||
|
buffer_font_size = 12;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -8,6 +8,5 @@
|
|||||||
# don't use remote builders
|
# don't use remote builders
|
||||||
nix.distributedBuilds = lib.mkForce false;
|
nix.distributedBuilds = lib.mkForce false;
|
||||||
|
|
||||||
de.enable = true;
|
nix.gc.automatic = lib.mkForce false;
|
||||||
de.touchpad.enable = true;
|
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,4 @@
|
|||||||
|
|
||||||
networking.hostName = "nat";
|
networking.hostName = "nat";
|
||||||
networking.interfaces.ens160.useDHCP = true;
|
networking.interfaces.ens160.useDHCP = true;
|
||||||
|
|
||||||
de.enable = true;
|
|
||||||
de.touchpad.enable = true;
|
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,8 @@
|
|||||||
# p2p mesh network
|
# p2p mesh network
|
||||||
services.tailscale.exitNode = true;
|
services.tailscale.exitNode = true;
|
||||||
|
|
||||||
|
services.iperf3.enable = true;
|
||||||
|
|
||||||
# email server
|
# email server
|
||||||
mailserver.enable = true;
|
mailserver.enable = true;
|
||||||
|
|
||||||
|
307
machines/storage/s0/dashy.nix
Normal file
307
machines/storage/s0/dashy.nix
Normal file
@ -0,0 +1,307 @@
|
|||||||
|
{
|
||||||
|
appConfig = {
|
||||||
|
theme = "vaporware";
|
||||||
|
customColors = {
|
||||||
|
"material-dark-original" = {
|
||||||
|
primary = "#f36558";
|
||||||
|
background = "#39434C";
|
||||||
|
"background-darker" = "#eb615c";
|
||||||
|
"material-light" = "#f36558";
|
||||||
|
"item-text-color" = "#ff948a";
|
||||||
|
"curve-factor" = "5px";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
enableErrorReporting = false;
|
||||||
|
layout = "auto";
|
||||||
|
iconSize = "large";
|
||||||
|
language = "en";
|
||||||
|
startingView = "default";
|
||||||
|
defaultOpeningMethod = "sametab";
|
||||||
|
statusCheck = true;
|
||||||
|
statusCheckInterval = 20;
|
||||||
|
faviconApi = "faviconkit";
|
||||||
|
routingMode = "history";
|
||||||
|
enableMultiTasking = false;
|
||||||
|
webSearch = {
|
||||||
|
disableWebSearch = false;
|
||||||
|
searchEngine = "duckduckgo";
|
||||||
|
openingMethod = "sametab";
|
||||||
|
searchBangs = { };
|
||||||
|
};
|
||||||
|
enableFontAwesome = true;
|
||||||
|
cssThemes = [ ];
|
||||||
|
externalStyleSheet = [ ];
|
||||||
|
hideComponents = {
|
||||||
|
hideHeading = false;
|
||||||
|
hideNav = false;
|
||||||
|
hideSearch = false;
|
||||||
|
hideSettings = false;
|
||||||
|
hideFooter = false;
|
||||||
|
hideSplashScreen = false;
|
||||||
|
};
|
||||||
|
auth = {
|
||||||
|
enableGuestAccess = false;
|
||||||
|
users = [ ];
|
||||||
|
enableKeycloak = false;
|
||||||
|
keycloak = { };
|
||||||
|
};
|
||||||
|
allowConfigEdit = true;
|
||||||
|
enableServiceWorker = false;
|
||||||
|
disableContextMenu = false;
|
||||||
|
disableUpdateChecks = false;
|
||||||
|
disableSmartSort = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
pageInfo = {
|
||||||
|
title = "s0";
|
||||||
|
description = "s0";
|
||||||
|
};
|
||||||
|
|
||||||
|
sections = [
|
||||||
|
(
|
||||||
|
let
|
||||||
|
# Define the media section items once.
|
||||||
|
mediaItems = {
|
||||||
|
jellyfin = {
|
||||||
|
title = "Jellyfin";
|
||||||
|
icon = "hl-jellyfin";
|
||||||
|
url = "https://jellyfin.s0.neet.dev";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = false;
|
||||||
|
id = "0_1956_jellyfin";
|
||||||
|
};
|
||||||
|
sonarr = {
|
||||||
|
title = "Sonarr";
|
||||||
|
description = "Manage TV";
|
||||||
|
icon = "hl-sonarr";
|
||||||
|
url = "https://sonarr.s0.neet.dev";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = false;
|
||||||
|
id = "1_1956_sonarr";
|
||||||
|
};
|
||||||
|
radarr = {
|
||||||
|
title = "Radarr";
|
||||||
|
description = "Manage Movies";
|
||||||
|
icon = "hl-radarr";
|
||||||
|
url = "https://radarr.s0.neet.dev";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = false;
|
||||||
|
id = "2_1956_radarr";
|
||||||
|
};
|
||||||
|
lidarr = {
|
||||||
|
title = "Lidarr";
|
||||||
|
description = "Manage Music";
|
||||||
|
icon = "hl-lidarr";
|
||||||
|
url = "https://lidarr.s0.neet.dev";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = false;
|
||||||
|
id = "3_1956_lidarr";
|
||||||
|
};
|
||||||
|
prowlarr = {
|
||||||
|
title = "Prowlarr";
|
||||||
|
description = "Indexers";
|
||||||
|
icon = "hl-prowlarr";
|
||||||
|
url = "https://prowlarr.s0.neet.dev";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = false;
|
||||||
|
id = "4_1956_prowlarr";
|
||||||
|
};
|
||||||
|
bazarr = {
|
||||||
|
title = "Bazarr";
|
||||||
|
description = "Subtitles";
|
||||||
|
icon = "hl-bazarr";
|
||||||
|
url = "https://bazarr.s0.neet.dev";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = false;
|
||||||
|
id = "5_1956_bazarr";
|
||||||
|
};
|
||||||
|
navidrome = {
|
||||||
|
title = "Navidrome";
|
||||||
|
description = "Play Music";
|
||||||
|
icon = "hl-navidrome";
|
||||||
|
url = "https://music.s0.neet.dev";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = false;
|
||||||
|
id = "6_1956_navidrome";
|
||||||
|
};
|
||||||
|
transmission = {
|
||||||
|
title = "Transmission";
|
||||||
|
description = "Torrenting";
|
||||||
|
icon = "hl-transmission";
|
||||||
|
url = "https://transmission.s0.neet.dev";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = false;
|
||||||
|
id = "7_1956_transmission";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# Build the list once.
|
||||||
|
mediaList = [
|
||||||
|
mediaItems.jellyfin
|
||||||
|
mediaItems.sonarr
|
||||||
|
mediaItems.radarr
|
||||||
|
mediaItems.lidarr
|
||||||
|
mediaItems.prowlarr
|
||||||
|
mediaItems.bazarr
|
||||||
|
mediaItems.navidrome
|
||||||
|
mediaItems.transmission
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
name = "Media & Entertainment";
|
||||||
|
icon = "fas fa-photo-video";
|
||||||
|
displayData = {
|
||||||
|
sortBy = "most-used";
|
||||||
|
cols = 1;
|
||||||
|
rows = 1;
|
||||||
|
collapsed = false;
|
||||||
|
hideForGuests = false;
|
||||||
|
};
|
||||||
|
items = mediaList;
|
||||||
|
filteredItems = mediaList;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
(
|
||||||
|
let
|
||||||
|
networkItems = {
|
||||||
|
gateway = {
|
||||||
|
title = "Gateway";
|
||||||
|
description = "openwrt";
|
||||||
|
icon = "hl-openwrt";
|
||||||
|
url = "http://openwrt.lan/";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = true;
|
||||||
|
id = "0_746_gateway";
|
||||||
|
};
|
||||||
|
wireless = {
|
||||||
|
title = "Wireless";
|
||||||
|
description = "openwrt (ish)";
|
||||||
|
icon = "hl-openwrt";
|
||||||
|
url = "http://PacketProvocateur.lan";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = true;
|
||||||
|
id = "1_746_wireless";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
networkList = [
|
||||||
|
networkItems.gateway
|
||||||
|
networkItems.wireless
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
name = "Network";
|
||||||
|
icon = "fas fa-network-wired";
|
||||||
|
items = networkList;
|
||||||
|
filteredItems = networkList;
|
||||||
|
displayData = {
|
||||||
|
sortBy = "default";
|
||||||
|
rows = 1;
|
||||||
|
cols = 1;
|
||||||
|
collapsed = false;
|
||||||
|
hideForGuests = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
(
|
||||||
|
let
|
||||||
|
servicesItems = {
|
||||||
|
matrix = {
|
||||||
|
title = "Matrix";
|
||||||
|
description = "";
|
||||||
|
icon = "hl-matrix";
|
||||||
|
url = "https://chat.neet.space";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = true;
|
||||||
|
id = "0_836_matrix";
|
||||||
|
};
|
||||||
|
radio = {
|
||||||
|
title = "Radio";
|
||||||
|
description = "Radio service";
|
||||||
|
icon = "generative";
|
||||||
|
url = "https://radio.runyan.org";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = true;
|
||||||
|
id = "1_836_radio";
|
||||||
|
};
|
||||||
|
mumble = {
|
||||||
|
title = "Mumble";
|
||||||
|
description = "voice.neet.space";
|
||||||
|
icon = "hl-mumble";
|
||||||
|
url = "https://voice.neet.space";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = false;
|
||||||
|
id = "2_836_mumble";
|
||||||
|
};
|
||||||
|
irc = {
|
||||||
|
title = "IRC";
|
||||||
|
description = "irc.neet.dev";
|
||||||
|
icon = "hl-thelounge";
|
||||||
|
url = "https://irc.neet.dev";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = true;
|
||||||
|
id = "3_836_irc";
|
||||||
|
};
|
||||||
|
git = {
|
||||||
|
title = "Git";
|
||||||
|
description = "git.neet.dev";
|
||||||
|
icon = "hl-gitea";
|
||||||
|
url = "https://git.neet.dev";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = true;
|
||||||
|
id = "4_836_git";
|
||||||
|
};
|
||||||
|
nextcloud = {
|
||||||
|
title = "Nextcloud";
|
||||||
|
description = "neet.cloud";
|
||||||
|
icon = "hl-nextcloud";
|
||||||
|
url = "https://neet.cloud";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = true;
|
||||||
|
id = "5_836_nextcloud";
|
||||||
|
};
|
||||||
|
roundcube = {
|
||||||
|
title = "Roundcube";
|
||||||
|
description = "mail.neet.dev";
|
||||||
|
icon = "hl-roundcube";
|
||||||
|
url = "https://mail.neet.dev";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = true;
|
||||||
|
id = "6_836_roundcube";
|
||||||
|
};
|
||||||
|
jitsimeet = {
|
||||||
|
title = "Jitsi Meet";
|
||||||
|
description = "meet.neet.space";
|
||||||
|
icon = "hl-jitsimeet";
|
||||||
|
url = "https://meet.neet.space";
|
||||||
|
target = "sametab";
|
||||||
|
statusCheck = true;
|
||||||
|
id = "7_836_jitsimeet";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
servicesList = [
|
||||||
|
servicesItems.matrix
|
||||||
|
servicesItems.radio
|
||||||
|
servicesItems.mumble
|
||||||
|
servicesItems.irc
|
||||||
|
servicesItems.git
|
||||||
|
servicesItems.nextcloud
|
||||||
|
servicesItems.roundcube
|
||||||
|
servicesItems.jitsimeet
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
name = "Services";
|
||||||
|
icon = "fas fa-monitor-heart-rate";
|
||||||
|
items = servicesList;
|
||||||
|
filteredItems = servicesList;
|
||||||
|
displayData = {
|
||||||
|
sortBy = "default";
|
||||||
|
rows = 1;
|
||||||
|
cols = 1;
|
||||||
|
collapsed = false;
|
||||||
|
hideForGuests = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
|
];
|
||||||
|
}
|
@ -1,241 +0,0 @@
|
|||||||
appConfig:
|
|
||||||
theme: vaporware
|
|
||||||
customColors:
|
|
||||||
material-dark-original:
|
|
||||||
primary: '#f36558'
|
|
||||||
background: '#39434C'
|
|
||||||
background-darker: '#eb615c'
|
|
||||||
material-light: '#f36558'
|
|
||||||
item-text-color: '#ff948a'
|
|
||||||
curve-factor: 5px
|
|
||||||
enableErrorReporting: false
|
|
||||||
layout: auto
|
|
||||||
iconSize: large
|
|
||||||
language: en
|
|
||||||
startingView: default
|
|
||||||
defaultOpeningMethod: sametab
|
|
||||||
statusCheck: true
|
|
||||||
statusCheckInterval: 20
|
|
||||||
faviconApi: faviconkit
|
|
||||||
routingMode: history
|
|
||||||
enableMultiTasking: false
|
|
||||||
webSearch:
|
|
||||||
disableWebSearch: false
|
|
||||||
searchEngine: duckduckgo
|
|
||||||
openingMethod: sametab
|
|
||||||
searchBangs: {}
|
|
||||||
enableFontAwesome: true
|
|
||||||
cssThemes: []
|
|
||||||
externalStyleSheet: []
|
|
||||||
hideComponents:
|
|
||||||
hideHeading: false
|
|
||||||
hideNav: false
|
|
||||||
hideSearch: false
|
|
||||||
hideSettings: false
|
|
||||||
hideFooter: false
|
|
||||||
hideSplashScreen: false
|
|
||||||
auth:
|
|
||||||
enableGuestAccess: false
|
|
||||||
users: []
|
|
||||||
enableKeycloak: false
|
|
||||||
keycloak: {}
|
|
||||||
allowConfigEdit: true
|
|
||||||
enableServiceWorker: false
|
|
||||||
disableContextMenu: false
|
|
||||||
disableUpdateChecks: false
|
|
||||||
disableSmartSort: false
|
|
||||||
pageInfo:
|
|
||||||
title: s0
|
|
||||||
description: s0
|
|
||||||
sections:
|
|
||||||
- name: Media & Entertainment
|
|
||||||
icon: fas fa-photo-video
|
|
||||||
displayData:
|
|
||||||
sortBy: most-used
|
|
||||||
cols: 1
|
|
||||||
rows: 1
|
|
||||||
collapsed: false
|
|
||||||
hideForGuests: false
|
|
||||||
items:
|
|
||||||
- &ref_0
|
|
||||||
title: Jellyfin
|
|
||||||
icon: hl-jellyfin
|
|
||||||
url: https://jellyfin.s0.neet.dev
|
|
||||||
target: sametab
|
|
||||||
statusCheck: false
|
|
||||||
id: 0_1956_jellyfin
|
|
||||||
- &ref_1
|
|
||||||
title: Sonarr
|
|
||||||
description: Manage TV
|
|
||||||
icon: hl-sonarr
|
|
||||||
url: https://sonarr.s0.neet.dev
|
|
||||||
target: sametab
|
|
||||||
statusCheck: false
|
|
||||||
id: 1_1956_sonarr
|
|
||||||
- &ref_2
|
|
||||||
title: Radarr
|
|
||||||
description: Manage Movies
|
|
||||||
icon: hl-radarr
|
|
||||||
url: https://radarr.s0.neet.dev
|
|
||||||
target: sametab
|
|
||||||
statusCheck: false
|
|
||||||
id: 2_1956_radarr
|
|
||||||
- &ref_3
|
|
||||||
title: Lidarr
|
|
||||||
description: Manage Music
|
|
||||||
icon: hl-lidarr
|
|
||||||
url: https://lidarr.s0.neet.dev
|
|
||||||
target: sametab
|
|
||||||
statusCheck: false
|
|
||||||
id: 3_1956_lidarr
|
|
||||||
- &ref_4
|
|
||||||
title: Prowlarr
|
|
||||||
description: Indexers
|
|
||||||
icon: hl-prowlarr
|
|
||||||
url: https://prowlarr.s0.neet.dev
|
|
||||||
target: sametab
|
|
||||||
statusCheck: false
|
|
||||||
id: 4_1956_prowlarr
|
|
||||||
- &ref_5
|
|
||||||
title: Bazarr
|
|
||||||
description: Subtitles
|
|
||||||
icon: hl-bazarr
|
|
||||||
url: https://bazarr.s0.neet.dev
|
|
||||||
target: sametab
|
|
||||||
statusCheck: false
|
|
||||||
id: 5_1956_bazarr
|
|
||||||
- &ref_6
|
|
||||||
title: Navidrome
|
|
||||||
description: Play Music
|
|
||||||
icon: hl-navidrome
|
|
||||||
url: https://music.s0.neet.dev
|
|
||||||
target: sametab
|
|
||||||
statusCheck: false
|
|
||||||
id: 6_1956_navidrome
|
|
||||||
- &ref_7
|
|
||||||
title: Transmission
|
|
||||||
description: Torrenting
|
|
||||||
icon: hl-transmission
|
|
||||||
url: https://transmission.s0.neet.dev
|
|
||||||
target: sametab
|
|
||||||
statusCheck: false
|
|
||||||
id: 7_1956_transmission
|
|
||||||
filteredItems:
|
|
||||||
- *ref_0
|
|
||||||
- *ref_1
|
|
||||||
- *ref_2
|
|
||||||
- *ref_3
|
|
||||||
- *ref_4
|
|
||||||
- *ref_5
|
|
||||||
- *ref_6
|
|
||||||
- *ref_7
|
|
||||||
- name: Network
|
|
||||||
icon: fas fa-network-wired
|
|
||||||
items:
|
|
||||||
- &ref_8
|
|
||||||
title: Gateway
|
|
||||||
description: openwrt
|
|
||||||
icon: hl-openwrt
|
|
||||||
url: http://openwrt.lan/
|
|
||||||
target: sametab
|
|
||||||
statusCheck: true
|
|
||||||
id: 0_746_gateway
|
|
||||||
- &ref_9
|
|
||||||
title: Wireless
|
|
||||||
description: openwrt (ish)
|
|
||||||
icon: hl-openwrt
|
|
||||||
url: http://PacketProvocateur.lan
|
|
||||||
target: sametab
|
|
||||||
statusCheck: true
|
|
||||||
id: 1_746_wireless
|
|
||||||
filteredItems:
|
|
||||||
- *ref_8
|
|
||||||
- *ref_9
|
|
||||||
displayData:
|
|
||||||
sortBy: default
|
|
||||||
rows: 1
|
|
||||||
cols: 1
|
|
||||||
collapsed: false
|
|
||||||
hideForGuests: false
|
|
||||||
- name: Services
|
|
||||||
icon: fas fa-monitor-heart-rate
|
|
||||||
items:
|
|
||||||
- &ref_10
|
|
||||||
title: Matrix
|
|
||||||
description: ''
|
|
||||||
icon: hl-matrix
|
|
||||||
url: https://chat.neet.space
|
|
||||||
target: sametab
|
|
||||||
statusCheck: true
|
|
||||||
id: 0_836_matrix
|
|
||||||
- &ref_11
|
|
||||||
title: Radio
|
|
||||||
description: Radio service
|
|
||||||
icon: generative
|
|
||||||
url: https://radio.runyan.org
|
|
||||||
target: sametab
|
|
||||||
statusCheck: true
|
|
||||||
id: 1_836_radio
|
|
||||||
- &ref_12
|
|
||||||
title: Mumble
|
|
||||||
description: voice.neet.space
|
|
||||||
icon: hl-mumble
|
|
||||||
url: https://voice.neet.space
|
|
||||||
target: sametab
|
|
||||||
statusCheck: false
|
|
||||||
id: 2_836_mumble
|
|
||||||
- &ref_13
|
|
||||||
title: IRC
|
|
||||||
description: irc.neet.dev
|
|
||||||
icon: hl-thelounge
|
|
||||||
url: https://irc.neet.dev
|
|
||||||
target: sametab
|
|
||||||
statusCheck: true
|
|
||||||
id: 3_836_irc
|
|
||||||
- &ref_14
|
|
||||||
title: Git
|
|
||||||
description: git.neet.dev
|
|
||||||
icon: hl-gitea
|
|
||||||
url: https://git.neet.dev
|
|
||||||
target: sametab
|
|
||||||
statusCheck: true
|
|
||||||
id: 4_836_git
|
|
||||||
- &ref_15
|
|
||||||
title: Nextcloud
|
|
||||||
description: neet.cloud
|
|
||||||
icon: hl-nextcloud
|
|
||||||
url: https://neet.cloud
|
|
||||||
target: sametab
|
|
||||||
statusCheck: true
|
|
||||||
id: 5_836_nextcloud
|
|
||||||
- &ref_16
|
|
||||||
title: Roundcube
|
|
||||||
description: mail.neet.dev
|
|
||||||
icon: hl-roundcube
|
|
||||||
url: https://mail.neet.dev
|
|
||||||
target: sametab
|
|
||||||
statusCheck: true
|
|
||||||
id: 6_836_roundcube
|
|
||||||
- &ref_17
|
|
||||||
title: Jitsi Meet
|
|
||||||
description: meet.neet.space
|
|
||||||
icon: hl-jitsimeet
|
|
||||||
url: https://meet.neet.space
|
|
||||||
target: sametab
|
|
||||||
statusCheck: true
|
|
||||||
id: 7_836_jitsimeet
|
|
||||||
filteredItems:
|
|
||||||
- *ref_10
|
|
||||||
- *ref_11
|
|
||||||
- *ref_12
|
|
||||||
- *ref_13
|
|
||||||
- *ref_14
|
|
||||||
- *ref_15
|
|
||||||
- *ref_16
|
|
||||||
- *ref_17
|
|
||||||
displayData:
|
|
||||||
sortBy: default
|
|
||||||
rows: 1
|
|
||||||
cols: 1
|
|
||||||
collapsed: false
|
|
||||||
hideForGuests: false
|
|
@ -171,17 +171,24 @@
|
|||||||
openFirewall = false; # All nginx services are internal
|
openFirewall = false; # All nginx services are internal
|
||||||
virtualHosts =
|
virtualHosts =
|
||||||
let
|
let
|
||||||
mkVirtualHost = external: internal:
|
mkHost = external: config:
|
||||||
{
|
{
|
||||||
${external} = {
|
${external} = {
|
||||||
useACMEHost = "s0.neet.dev"; # Use wildcard cert
|
useACMEHost = "s0.neet.dev"; # Use wildcard cert
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
locations."/" = {
|
locations."/" = config;
|
||||||
proxyPass = internal;
|
|
||||||
proxyWebsockets = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
mkVirtualHost = external: internal:
|
||||||
|
mkHost external {
|
||||||
|
proxyPass = internal;
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
|
mkStaticHost = external: static:
|
||||||
|
mkHost external {
|
||||||
|
root = static;
|
||||||
|
tryFiles = "$uri /index.html ";
|
||||||
|
};
|
||||||
in
|
in
|
||||||
lib.mkMerge [
|
lib.mkMerge [
|
||||||
(mkVirtualHost "bazarr.s0.neet.dev" "http://vpn.containers:6767")
|
(mkVirtualHost "bazarr.s0.neet.dev" "http://vpn.containers:6767")
|
||||||
@ -193,7 +200,7 @@
|
|||||||
(mkVirtualHost "unifi.s0.neet.dev" "https://localhost:8443")
|
(mkVirtualHost "unifi.s0.neet.dev" "https://localhost:8443")
|
||||||
(mkVirtualHost "music.s0.neet.dev" "http://localhost:4533")
|
(mkVirtualHost "music.s0.neet.dev" "http://localhost:4533")
|
||||||
(mkVirtualHost "jellyfin.s0.neet.dev" "http://localhost:8096")
|
(mkVirtualHost "jellyfin.s0.neet.dev" "http://localhost:8096")
|
||||||
(mkVirtualHost "s0.neet.dev" "http://localhost:56815")
|
(mkStaticHost "s0.neet.dev" config.services.dashy.finalDrv)
|
||||||
{
|
{
|
||||||
# Landing page LAN redirect
|
# Landing page LAN redirect
|
||||||
"s0" = {
|
"s0" = {
|
||||||
@ -213,6 +220,7 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
(mkVirtualHost "vacuum.s0.neet.dev" "http://192.168.1.125") # valetudo
|
(mkVirtualHost "vacuum.s0.neet.dev" "http://192.168.1.125") # valetudo
|
||||||
|
(mkVirtualHost "sandman.s0.neet.dev" "http://192.168.9.14:3000") # es
|
||||||
(mkVirtualHost "todo.s0.neet.dev" "http://localhost:${toString config.services.vikunja.port}")
|
(mkVirtualHost "todo.s0.neet.dev" "http://localhost:${toString config.services.vikunja.port}")
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -254,7 +262,7 @@
|
|||||||
virtualisation.podman.dockerSocket.enable = true; # TODO needed?
|
virtualisation.podman.dockerSocket.enable = true; # TODO needed?
|
||||||
services.dashy = {
|
services.dashy = {
|
||||||
enable = true;
|
enable = true;
|
||||||
configFile = ./dashy.yaml;
|
settings = import ./dashy.nix;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.unifi = {
|
services.unifi = {
|
||||||
|
@ -5,8 +5,6 @@
|
|||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
de.enable = true;
|
|
||||||
|
|
||||||
# Login DE Option: Steam
|
# Login DE Option: Steam
|
||||||
programs.steam.gamescopeSession.enable = true;
|
programs.steam.gamescopeSession.enable = true;
|
||||||
# programs.gamescope.capSysNice = true;
|
# programs.gamescope.capSysNice = true;
|
||||||
|
15
patches/dont-break-nix-serve.patch
Normal file
15
patches/dont-break-nix-serve.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
diff --git a/nixos/modules/services/video/frigate.nix b/nixos/modules/services/video/frigate.nix
|
||||||
|
index 49f8ed673816..643b59d68dde 100644
|
||||||
|
--- a/nixos/modules/services/video/frigate.nix
|
||||||
|
+++ b/nixos/modules/services/video/frigate.nix
|
||||||
|
@@ -482,10 +482,6 @@ in
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
- # Frigate wants to connect on 127.0.0.1:5000 for unauthenticated requests
|
||||||
|
- # https://github.com/NixOS/nixpkgs/issues/370349
|
||||||
|
- listen 127.0.0.1:5000;
|
||||||
|
-
|
||||||
|
# vod settings
|
||||||
|
vod_base_url "";
|
||||||
|
vod_segments_base_url "";
|
Loading…
x
Reference in New Issue
Block a user