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 = { services.nginx = {
@ -10,6 +10,11 @@
default_type text/html; 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 = { services = {
@ -9,14 +9,19 @@
credentialsFile = "{{/path/to/UUID.json}}"; credentialsFile = "{{/path/to/UUID.json}}";
default = "http_status:404"; default = "http_status:404";
ingress = { ingress = {
"ahoneybun.net" = "http://localhost:80"; # Nginx http "ahoneybun.net" = "http://localhost:80";
"www.ahoneybun.net" = "http://localhost:80"; # Nginx https "www.ahoneybun.net" = "http://localhost:80";
"status.ahoneybun.net" = "http://localhost:8082"; # Homepage Dashboard "photos.ahoneybun.net" = "http://localhost:2342";
"photos.ahoneybun.net" = "http://localhost:2342"; # PhotoPrism "hydra.ahoneybun.net" = "http://localhost:3000";
"git.ahoneybun.net" = "http://localhost:3001"; # Forgejo "git.ahoneybun.net" = "http://localhost:3001";
"wiki.ahoneybun.net" = "http://localhost:4567"; # Gollum "music.ahoneybun.net" = "http://localhost:4533";
"books.ahoneybun.net" = "http://localhost:5000"; # Kavita "wiki.ahoneybun.net" = "http://localhost:4567";
"videos.ahoneybun.net" = "http://localhost:8096"; # Jellyfin "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; lfs.enable = true;
settings = { settings = {
server = { server = {
#DOMAIN = "git.example.com"; DOMAIN = "git.ahoneybun.net";
# You need to specify this to remove the port from URLs in the web UI. # 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; HTTP_PORT = 3001;
}; };
# You can temporarily allow registration to create an admin user. # 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

@ -4,5 +4,6 @@
services.gollum = { services.gollum = {
enable = true; enable = true;
no-edit = true; no-edit = true;
stateDir = "/mnt/DATA/Wiki";
}; };
} }

View file

@ -1,14 +1,14 @@
{ lib, pkgs, config, ... }:
{ {
services.homepage-dashboard = { services.homepage-dashboard = {
enable = true; enable = true;
settings = { settings = {
language = "en";
title = "Honeycutt Homelab"; 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"; headerStyle = "boxed";
layout = { layout = {
media = { style = "row"; columns = 3; }; media = { style = "row"; columns = 4; };
infra = { style = "row"; columns = 2; }; infra = { style = "row"; columns = 2; };
games = { style = "row"; columns = 1; }; games = { style = "row"; columns = 1; };
}; };
@ -21,24 +21,62 @@
{ {
media = [ media = [
{ {
Jellyfin = { Navidrome = {
icon = "jellyfin.png"; icon = "navidrome.png";
href = "URL:8096"; href = "https://music.ahoneybun.net";
description = "media management"; description = "music player";
}; };
} }
{ {
Kavita = { Jellyfin = {
icon = "kavita.png"; icon = "jellyfin.png";
href = "URL:5000"; href = "https://videos.ahoneybun.net";
description = "book management"; 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 = { PhotoPrism = {
icon = "photoprism.png"; icon = "photoprism.png";
href = "URL:2342"; href = "https://photos.ahoneybun.net";
description = "photo management"; 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 = [ infra = [
{ {
Hydra = { Forgejo = {
icon = "hydra.png"; icon = "forgejo.png";
href = "URL:3000"; href = "https://git.ahoneybun.net";
description = "the Nix-based continuous build system"; description = "a lightweight software forge, with a highlight on being completely free software";
}; };
} }
{ {
Forgejo = { Gollum = {
icon = "forgejo.png"; icon = "gollum.png";
href = "URL:3001"; href = "https://wiki.ahoneybun.net";
description = "a lightweight software forge, with a highlight on being completely free software"; description = "a simple, Git-powered wiki for many kinds of markup and content.";
}; };
} }
]; ];
@ -66,17 +104,16 @@
{ {
Minecraft = { Minecraft = {
icon = "minecraft.png"; icon = "minecraft.png";
href = "URL:25565"; href = "IP:25565";
description = "stack some blocks"; description = "stack some blocks";
widget = { widget = {
type = "minecraft"; 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.hostName = "edi";
networking.firewall = { networking.firewall = {
enable = true; enable = true;
# 2342 = PhotoPrism
# 3000 = Hydra
# 5000 = Kavita
# 8096 = Jellyfin
# 11434 = Ollama # 11434 = Ollama
allowedTCPPorts = [ 80 443 2342 3000 5000 8096 9091 11434 ]; # 25565 = Minecraft
allowedTCPPorts = [ 80 443 2342 9091 11434 25565 ];
}; };
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [