diff --git a/homelab/ahoneybun-net/.gitkeep b/homelab/ahoneybun-net/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/homelab/nginx/default.nix b/homelab/ahoneybun-net/default.nix similarity index 57% rename from homelab/nginx/default.nix rename to homelab/ahoneybun-net/default.nix index afcc286..eb8393b 100644 --- a/homelab/nginx/default.nix +++ b/homelab/ahoneybun-net/default.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, config, ... }: +{ config, pkgs, lib, ... }: { services.nginx = { @@ -10,6 +10,11 @@ default_type text/html; ''; }; + locations."~* \.atom\.xml$" = { + extraConfig = '' + types { } default_type "application/atom+xml; charset=utf-8"; + ''; + }; }; }; -} +} \ No newline at end of file diff --git a/homelab/audiobookshelf/.gitkeep b/homelab/audiobookshelf/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/homelab/audiobookshelf/default.nix b/homelab/audiobookshelf/default.nix new file mode 100644 index 0000000..b410422 --- /dev/null +++ b/homelab/audiobookshelf/default.nix @@ -0,0 +1,8 @@ +{ config, pkgs, lib, ... }: + +{ + services.audiobookshelf = { + enable = true; + openFirewall = true; + }; +} \ No newline at end of file diff --git a/homelab/cloudflared/default.nix b/homelab/cloudflared/default.nix index 4120cbc..0fc9fb3 100644 --- a/homelab/cloudflared/default.nix +++ b/homelab/cloudflared/default.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, config, ... }: +{ config, pkgs, lib, ... }: { services = { @@ -9,14 +9,19 @@ credentialsFile = "{{/path/to/UUID.json}}"; default = "http_status:404"; ingress = { - "ahoneybun.net" = "http://localhost:80"; # Nginx http - "www.ahoneybun.net" = "http://localhost:80"; # Nginx https - "status.ahoneybun.net" = "http://localhost:8082"; # Homepage Dashboard - "photos.ahoneybun.net" = "http://localhost:2342"; # PhotoPrism - "git.ahoneybun.net" = "http://localhost:3001"; # Forgejo - "wiki.ahoneybun.net" = "http://localhost:4567"; # Gollum - "books.ahoneybun.net" = "http://localhost:5000"; # Kavita - "videos.ahoneybun.net" = "http://localhost:8096"; # Jellyfin + "ahoneybun.net" = "http://localhost:80"; + "www.ahoneybun.net" = "http://localhost:80"; + "photos.ahoneybun.net" = "http://localhost:2342"; + "hydra.ahoneybun.net" = "http://localhost:3000"; + "git.ahoneybun.net" = "http://localhost:3001"; + "music.ahoneybun.net" = "http://localhost:4533"; + "wiki.ahoneybun.net" = "http://localhost:4567"; + "books.ahoneybun.net" = "http://localhost:8080"; + "audiobookshelf.ahoneybun.net" = "http://localhost:8000"; + "home.ahoneybun.net" = "http://localhost:8082"; + "bin.ahoneybun.net" = "http://localhost:8088"; + "videos.ahoneybun.net" = "http://localhost:8096"; + "status.ahoneybun.net" = "http://localhost:61208"; }; }; }; diff --git a/homelab/forgejo/default.nix b/homelab/forgejo/default.nix index 4669bfc..a27d434 100644 --- a/homelab/forgejo/default.nix +++ b/homelab/forgejo/default.nix @@ -11,9 +11,9 @@ in lfs.enable = true; settings = { server = { - #DOMAIN = "git.example.com"; + DOMAIN = "git.ahoneybun.net"; # You need to specify this to remove the port from URLs in the web UI. - #ROOT_URL = "https://${srv.DOMAIN}/"; + ROOT_URL = "https://${srv.DOMAIN}/"; HTTP_PORT = 3001; }; # You can temporarily allow registration to create an admin user. diff --git a/homelab/gatus/.gitkeep b/homelab/gatus/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/homelab/gatus/default.nix b/homelab/gatus/default.nix new file mode 100644 index 0000000..bb5bd92 --- /dev/null +++ b/homelab/gatus/default.nix @@ -0,0 +1,64 @@ +{ config, pkgs, lib, ... }: + +{ + services.gatus = { + enable = true; + openFirewall = true; + settings = { + web.port = 61208; + endpoints = [ + { + name = "Personal Site"; + url = "https://ahoneybun.net"; + interval = "5m"; + conditions = [ + "[STATUS] == 200" + "[RESPONSE_TIME] < 300" + ]; + } + { + name = "Jellyfin"; + url = "https://videos.ahoneybun.net/health"; + interval = "5m"; + conditions = [ + "[STATUS] == 200" + "[BODY] == Healthy" + "[RESPONSE_TIME] < 300" + ]; + } + { + name = "Navidrome"; + url = "https://music.ahoneybun.net"; + interval = "5m"; + conditions = [ + "[STATUS] == 200" + ]; + } + { + name = "Forgejo"; + url = "https://git.ahoneybun.net/"; + interval = "5m"; + conditions = [ + "[STATUS] == 200" + ]; + } + { + name = "PhotoPrism"; + url = "https://photos.ahoneybun.net"; + interval = "5m"; + conditions = [ + "[STATUS] == 200" + ]; + } + { + name = "Audiobookself"; + url = "https://audiobookshelf.ahoneybun.net/"; + interval = "5m"; + conditions = [ + "[STATUS] == 200" + ]; + } + ]; + }; + }; +} \ No newline at end of file diff --git a/homelab/gollum/default.nix b/homelab/gollum/default.nix index b5d9025..e96d878 100644 --- a/homelab/gollum/default.nix +++ b/homelab/gollum/default.nix @@ -2,7 +2,8 @@ { services.gollum = { - enable = true; - no-edit = true; + enable = true; + no-edit = true; + stateDir = "/mnt/DATA/Wiki"; }; } \ No newline at end of file diff --git a/homelab/homepage-dashboard/default.nix b/homelab/homepage-dashboard/default.nix index 40818aa..88d982e 100644 --- a/homelab/homepage-dashboard/default.nix +++ b/homelab/homepage-dashboard/default.nix @@ -1,14 +1,14 @@ -{ lib, pkgs, config, ... }: - { services.homepage-dashboard = { enable = true; settings = { + language = "en"; title = "Honeycutt Homelab"; - background = "https://images.unsplash.com/photo-1502790671504-542ad42d5189?auto=format&fit=crop&w=2560&q=80"; + #background = "https://w.wallhaven.cc/full/l8/wallhaven-l85z2l.jpg"; + color = "neutral"; headerStyle = "boxed"; layout = { - media = { style = "row"; columns = 3; }; + media = { style = "row"; columns = 4; }; infra = { style = "row"; columns = 2; }; games = { style = "row"; columns = 1; }; }; @@ -21,24 +21,62 @@ { media = [ { - Jellyfin = { - icon = "jellyfin.png"; - href = "URL:8096"; - description = "media management"; + Navidrome = { + icon = "navidrome.png"; + href = "https://music.ahoneybun.net"; + description = "music player"; }; } { - Kavita = { - icon = "kavita.png"; - href = "URL:5000"; - description = "book management"; + Jellyfin = { + icon = "jellyfin.png"; + href = "https://videos.ahoneybun.net"; + description = "media player"; + widget = { + type = "jellyfin"; + url = "https://videos.ahoneybun.net"; + key = ""; + enableNowPlaying = "false"; + enableBlocks = "true"; + }; + }; + } + { + Komga = { + icon = "komga.png"; + href = "https://books.ahoneybun.net"; + description = "book reader"; + widget = { + type = "komga"; + url = "https://books.ahoneybun.net"; + username = ""; + password = ""; + }; }; } { PhotoPrism = { icon = "photoprism.png"; - href = "URL:2342"; - description = "photo management"; + href = "https://photos.ahoneybun.net"; + description = "photo viewer"; + widget = { + type = "photoprism"; + url = "https://photos.ahoneybun.net"; + username = ""; + password = ""; + }; + }; + } + { + Audiobookshelf = { + icon = "audiobookshelf.png"; + href = "https://audiobookshelf.ahoneybun.net"; + description = "audiobook player"; + widget = { + type = "audiobookshelf"; + url = "https://audiobookshelf.ahoneybun.net"; + key = ""; + }; }; } ]; @@ -46,17 +84,17 @@ { infra = [ { - Hydra = { - icon = "hydra.png"; - href = "URL:3000"; - description = "the Nix-based continuous build system"; + Forgejo = { + icon = "forgejo.png"; + href = "https://git.ahoneybun.net"; + description = "a lightweight software forge, with a highlight on being completely free software"; }; } { - Forgejo = { - icon = "forgejo.png"; - href = "URL:3001"; - description = "a lightweight software forge, with a highlight on being completely free software"; + Gollum = { + icon = "gollum.png"; + href = "https://wiki.ahoneybun.net"; + description = "a simple, Git-powered wiki for many kinds of markup and content."; }; } ]; @@ -66,17 +104,16 @@ { Minecraft = { icon = "minecraft.png"; - href = "URL:25565"; + href = "IP:25565"; description = "stack some blocks"; widget = { type = "minecraft"; - url = "udp://URL:25565"; + url = "udp://IP:25565"; }; }; } ]; } ]; - }; } \ No newline at end of file diff --git a/homelab/komga/.gitkeep b/homelab/komga/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/homelab/komga/default.nix b/homelab/komga/default.nix new file mode 100644 index 0000000..0f9fe3b --- /dev/null +++ b/homelab/komga/default.nix @@ -0,0 +1,8 @@ +{ config, pkgs, lib, ... }: + +{ + services.komga = { + enable = true; + openFirewall = true; + }; +} \ No newline at end of file diff --git a/homelab/navidrome/.gitkeep b/homelab/navidrome/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/homelab/navidrome/default.nix b/homelab/navidrome/default.nix new file mode 100644 index 0000000..5ab96f4 --- /dev/null +++ b/homelab/navidrome/default.nix @@ -0,0 +1,14 @@ +{ config, pkgs, lib, ... }: + +{ + services.navidrome = { + enable = true; + user = "aaronh"; + group = "navidrome"; + openFirewall = true; + settings = { + Address = "0.0.0.0"; + MusicFolder = "/mnt/DATA/Media/Music"; + }; + }; +} \ No newline at end of file diff --git a/hosts/x86_64/edi/configuration.nix b/hosts/x86_64/edi/configuration.nix index 3e71813..2f89ba3 100644 --- a/hosts/x86_64/edi/configuration.nix +++ b/hosts/x86_64/edi/configuration.nix @@ -79,12 +79,9 @@ networking.hostName = "edi"; networking.firewall = { enable = true; - # 2342 = PhotoPrism - # 3000 = Hydra - # 5000 = Kavita - # 8096 = Jellyfin # 11434 = Ollama - allowedTCPPorts = [ 80 443 2342 3000 5000 8096 9091 11434 ]; + # 25565 = Minecraft + allowedTCPPorts = [ 80 443 2342 9091 11434 25565 ]; }; nixpkgs.config.permittedInsecurePackages = [