Compare commits

...

17 commits

Author SHA1 Message Date
Aaron Honeycutt
b4a3f9c9ec Edit configuration.nix 2025-02-25 15:12:05 +00:00
Aaron Honeycutt
ed059f4726 add audiobookshelf 2025-02-25 14:59:16 +00:00
Aaron Honeycutt
3fa1a3f050 Add new directory 2025-02-25 14:59:01 +00:00
Aaron Honeycutt
7c388a7248 add navidrome 2025-02-25 14:58:30 +00:00
Aaron Honeycutt
3773a8dd94 Add new directory 2025-02-25 14:58:18 +00:00
Aaron Honeycutt
c0ac1fad0d Delete default.nix 2025-02-25 14:57:56 +00:00
Aaron Honeycutt
a53e35d1af add komga 2025-02-25 14:57:44 +00:00
Aaron Honeycutt
b915a9678e Add new directory 2025-02-25 14:57:29 +00:00
Aaron Honeycutt
0f105108ef add personal website 2025-02-25 14:57:00 +00:00
Aaron Honeycutt
6b4b50cb07 Add new directory 2025-02-25 14:56:47 +00:00
Aaron Honeycutt
5701ab7b18 add gatus 2025-02-25 14:56:20 +00:00
Aaron Honeycutt
d91fc7ef85 Add new directory 2025-02-25 14:56:03 +00:00
Aaron Honeycutt
027b704936 update homepage-dashboard 2025-02-25 14:55:36 +00:00
Aaron Honeycutt
65136e669b update cloudflare subdomains 2025-02-25 14:48:16 +00:00
Aaron Honeycutt
2f509c032a Edit default.nix 2025-02-25 14:33:52 +00:00
Aaron Honeycutt
3d6d697938 update gollum 2025-02-25 14:28:50 +00:00
Aaron Honeycutt
32c78d10a8 fix admin panel errors 2025-02-25 13:42:32 +00:00
15 changed files with 184 additions and 45 deletions

View file

View file

@ -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";
'';
};
};
};
}
}

View file

View file

@ -0,0 +1,8 @@
{ config, pkgs, lib, ... }:
{
services.audiobookshelf = {
enable = true;
openFirewall = true;
};
}

View file

@ -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";
};
};
};

View file

@ -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.

0
homelab/gatus/.gitkeep Normal file
View file

64
homelab/gatus/default.nix Normal file
View file

@ -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"
];
}
];
};
};
}

View file

@ -2,7 +2,8 @@
{
services.gollum = {
enable = true;
no-edit = true;
enable = true;
no-edit = true;
stateDir = "/mnt/DATA/Wiki";
};
}

View file

@ -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";
};
};
}
];
}
];
};
}

0
homelab/komga/.gitkeep Normal file
View file

View file

@ -0,0 +1,8 @@
{ config, pkgs, lib, ... }:
{
services.komga = {
enable = true;
openFirewall = true;
};
}

View file

View file

@ -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";
};
};
}

View file

@ -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 = [