hai! wo? ich bin ein fisch.
This commit is contained in:
parent
eaea15fa3a
commit
ef91935d4b
14 changed files with 196 additions and 5 deletions
21
flake.lock
generated
21
flake.lock
generated
|
|
@ -721,6 +721,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"noctalia": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1768022677,
|
||||||
|
"narHash": "sha256-OhfqR3b/pESZOMwRpPBYbFJzKjVreok0+KEOFEUnVTk=",
|
||||||
|
"owner": "noctalia-dev",
|
||||||
|
"repo": "noctalia-shell",
|
||||||
|
"rev": "8636e5be1debfc99ef50f16003d5d122b5f30f3d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "noctalia-dev",
|
||||||
|
"repo": "noctalia-shell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"optnix": {
|
"optnix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_3",
|
||||||
|
|
@ -772,6 +792,7 @@
|
||||||
"hyprland-plugins": "hyprland-plugins",
|
"hyprland-plugins": "hyprland-plugins",
|
||||||
"nixos-cli": "nixos-cli",
|
"nixos-cli": "nixos-cli",
|
||||||
"nixpkgs": "nixpkgs_6",
|
"nixpkgs": "nixpkgs_6",
|
||||||
|
"noctalia": "noctalia",
|
||||||
"walker": "walker",
|
"walker": "walker",
|
||||||
"zen-browser": "zen-browser"
|
"zen-browser": "zen-browser"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,10 @@
|
||||||
agenix = {
|
agenix = {
|
||||||
url = "github:ryantm/agenix";
|
url = "github:ryantm/agenix";
|
||||||
};
|
};
|
||||||
|
noctalia = {
|
||||||
|
url = "github:noctalia-dev/noctalia-shell";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,10 @@
|
||||||
shell = pkgs.fish;
|
shell = pkgs.fish;
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [ ./hardware.nix ];
|
imports = [
|
||||||
|
./hardware.nix
|
||||||
|
# ../../modules/server/nginx.nix
|
||||||
|
];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
light.enable = true;
|
light.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,7 @@
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
inputs.walker.homeManagerModules.default
|
inputs.walker.homeManagerModules.default
|
||||||
|
inputs.noctalia.homeModules.default
|
||||||
./../../modules
|
./../../modules
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,7 @@
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
inputs.walker.homeManagerModules.default
|
inputs.walker.homeManagerModules.default
|
||||||
|
inputs.noctalia.homeModules.default
|
||||||
./../../modules
|
./../../modules
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,6 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
inputs.walker.homeManagerModules.default
|
|
||||||
./../../modules
|
./../../modules
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,12 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
numlock = true;
|
numlock = true;
|
||||||
};
|
};
|
||||||
waybar.enable = true;
|
# waybar.enable = true;
|
||||||
walker.enable = true;
|
walker.enable = true;
|
||||||
wallpaper.enable = true;
|
wallpaper.enable = true;
|
||||||
grimblast.enable = true;
|
grimblast.enable = true;
|
||||||
audio.enable = true;
|
audio.enable = true;
|
||||||
|
noctalia.enable = true;
|
||||||
};
|
};
|
||||||
messaging.enable = true;
|
messaging.enable = true;
|
||||||
internet = lib.mkDefault {
|
internet = lib.mkDefault {
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,12 @@
|
||||||
hyprland = {
|
hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
waybar.enable = true;
|
# waybar.enable = true;
|
||||||
walker.enable = true;
|
walker.enable = true;
|
||||||
wallpaper.enable = true;
|
wallpaper.enable = true;
|
||||||
grimblast.enable = true;
|
grimblast.enable = true;
|
||||||
audio.enable = true;
|
audio.enable = true;
|
||||||
|
noctalia.enable = true;
|
||||||
};
|
};
|
||||||
messaging.enable = true;
|
messaging.enable = true;
|
||||||
internet = lib.mkDefault {
|
internet = lib.mkDefault {
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
./wallpaper.nix
|
./wallpaper.nix
|
||||||
./grimblast.nix
|
./grimblast.nix
|
||||||
./audio.nix
|
./audio.nix
|
||||||
|
./noctalia.nix
|
||||||
];
|
];
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
|
|
|
||||||
22
modules/desktop/noctalia.nix
Normal file
22
modules/desktop/noctalia.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
desktop = {
|
||||||
|
noctalia.enable = lib.mkEnableOption "enable noctalia";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.desktop.noctalia.enable {
|
||||||
|
|
||||||
|
programs.noctalia-shell = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
75
modules/server/media/jellyfin.nix
Normal file
75
modules/server/media/jellyfin.nix
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.server = {
|
||||||
|
jellyfin = {
|
||||||
|
enable = lib.mkEnableOption "enable jelyfin";
|
||||||
|
port = lib.mkOption {
|
||||||
|
default = 8096;
|
||||||
|
description = "set jellyfin port"
|
||||||
|
};
|
||||||
|
public = {
|
||||||
|
enable = lib.mkEnableOption "make jellyfin public";
|
||||||
|
subdomain = lib.mkOption {
|
||||||
|
default = "watch";
|
||||||
|
description = "set jellyfin subdomain";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
jellyseer = {
|
||||||
|
enable = lib.mkEnableOption "enable jellyseer";
|
||||||
|
port = lib.mkOption {
|
||||||
|
default = 8097;
|
||||||
|
description = "set jellyseer port"
|
||||||
|
};
|
||||||
|
public = {
|
||||||
|
enable = lib.mkEnableOption "make jellyseer public";
|
||||||
|
subdomain = lib.mkOption {
|
||||||
|
default = "jellyseer";
|
||||||
|
description = "set jellyseer subdomain";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = {
|
||||||
|
environment.systemPackages = config.server.jellyfin.enable [
|
||||||
|
pkgs.jellyfin
|
||||||
|
pkgs.jellyfin-web
|
||||||
|
pkgs.jellyfin-ffmpeg
|
||||||
|
];
|
||||||
|
services = {
|
||||||
|
jellyfin = lib.mkIf config.server.jellyfin.enable {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
jellyseer = lib.mkIf config.server-jellyseer.enable {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
nginx.virtualHosts = {
|
||||||
|
"${config.server.jellyfin.public.subdomain}.${config.domain}" =
|
||||||
|
lib.mkIf config.server.jellyfin.public.enable
|
||||||
|
{
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://127.0.0.1:${config.server.jellyfin.port}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"${config.server.jellyseer.public.subdomain}.${config.domain}" = lib.mkIf config.server.jellyfin.public.enable {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://127.0.0.1:${config.server.jellyseer.port}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
57
modules/server/nginx.nix
Normal file
57
modules/server/nginx.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
domain = lib.mkOption {
|
||||||
|
default = "example.com";
|
||||||
|
description = "set domain name";
|
||||||
|
};
|
||||||
|
email = lib.mkOption {
|
||||||
|
default = "${config.main-user.userName}.${config.domain}";
|
||||||
|
description = "set email";
|
||||||
|
};
|
||||||
|
nginx = {
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
users = {
|
||||||
|
users = {
|
||||||
|
nginx = {
|
||||||
|
group = "nginx";
|
||||||
|
extraGroups = [
|
||||||
|
"acme"
|
||||||
|
"users"
|
||||||
|
];
|
||||||
|
isSystemUser = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
groups = {
|
||||||
|
nginx = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
nginx = {
|
||||||
|
enable = true;
|
||||||
|
recommendedTlsSettings = true;
|
||||||
|
recommendedOptimisation = true;
|
||||||
|
recommendedGzipSettings = true;
|
||||||
|
recommendedProxySettings = true;
|
||||||
|
clientMaxBodySize = "10G";
|
||||||
|
statusPage = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
security = {
|
||||||
|
acme = {
|
||||||
|
acceptTerms = true;
|
||||||
|
defaults.email = config.email;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -26,7 +26,6 @@
|
||||||
size = 16;
|
size = 16;
|
||||||
package = pkgs.nerd-fonts.fira-code;
|
package = pkgs.nerd-fonts.fira-code;
|
||||||
};
|
};
|
||||||
themeFile = "Catppuccin-Mocha";
|
|
||||||
settings = {
|
settings = {
|
||||||
wayland_titlebar_color = "system";
|
wayland_titlebar_color = "system";
|
||||||
macos_titlebar_color = "system";
|
macos_titlebar_color = "system";
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,12 @@
|
||||||
displayManager.ly = {
|
displayManager.ly = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
power-profiles-daemon = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
upower = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
programs.hyprland = {
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue