mirror of
https://gitlab.com/ahoneybun/nix-configs.git
synced 2025-05-12 11:14:02 -06:00
Compare commits
17 commits
6677f1e8d0
...
b4a3f9c9ec
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b4a3f9c9ec | ||
![]() |
ed059f4726 | ||
![]() |
3fa1a3f050 | ||
![]() |
7c388a7248 | ||
![]() |
3773a8dd94 | ||
![]() |
c0ac1fad0d | ||
![]() |
a53e35d1af | ||
![]() |
b915a9678e | ||
![]() |
0f105108ef | ||
![]() |
6b4b50cb07 | ||
![]() |
5701ab7b18 | ||
![]() |
d91fc7ef85 | ||
![]() |
027b704936 | ||
![]() |
65136e669b | ||
![]() |
2f509c032a | ||
![]() |
3d6d697938 | ||
![]() |
32c78d10a8 |
15 changed files with 184 additions and 45 deletions
0
homelab/ahoneybun-net/.gitkeep
Normal file
0
homelab/ahoneybun-net/.gitkeep
Normal 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";
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
0
homelab/audiobookshelf/.gitkeep
Normal file
0
homelab/audiobookshelf/.gitkeep
Normal file
8
homelab/audiobookshelf/default.nix
Normal file
8
homelab/audiobookshelf/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
services.audiobookshelf = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
|
@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -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
0
homelab/gatus/.gitkeep
Normal file
64
homelab/gatus/default.nix
Normal file
64
homelab/gatus/default.nix
Normal 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"
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
{
|
||||
services.gollum = {
|
||||
enable = true;
|
||||
no-edit = true;
|
||||
enable = true;
|
||||
no-edit = true;
|
||||
stateDir = "/mnt/DATA/Wiki";
|
||||
};
|
||||
}
|
|
@ -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
0
homelab/komga/.gitkeep
Normal file
8
homelab/komga/default.nix
Normal file
8
homelab/komga/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
services.komga = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
0
homelab/navidrome/.gitkeep
Normal file
0
homelab/navidrome/.gitkeep
Normal file
14
homelab/navidrome/default.nix
Normal file
14
homelab/navidrome/default.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -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 = [
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue