Files
dotfiles/nixos/tako/services/homepage.nix
servius 230547eb92
Some checks failed
Flake checker / Build Nix targets (push) Has been cancelled
feat: extend ghostty shader, add shadps4 builds, update nix, homepage
2026-01-21 20:21:25 +05:30

209 lines
6.3 KiB
Nix

{config, ...}: {
services = {
homepage-dashboard = {
enable = true;
allowedHosts = "dashboard.darksailor.dev";
settings = {
title = "Servius' Dashboard";
description = "A collection of services and links for quick access.";
};
widgets = [
{
resources = {
cpu = true;
disk = "/";
memory = true;
};
}
];
services = [
{
"Tsuba" = [
{
"Jellyfin" = {
icon = "jellyfin.png";
description = "Jellyfin Media Server";
href = "https://jellyfin.tsuba.darksailor.dev";
siteMonitor = "https://jellyfin.tsuba.darksailor.dev";
};
}
{
"Sonarr" = {
icon = "sonarr.png";
description = "Sonarr: TV Series Management";
href = "https://sonarr.tsuba.darksailor.dev";
siteMonitor = "https://sonarr.tsuba.darksailor.dev";
};
}
{
"Bazarr" = {
icon = "bazarr.png";
description = "Bazarr: Subtitles and Metadata";
href = "https://bazarr.tsuba.darksailor.dev";
siteMonitor = "https://bazarr.tsuba.darksailor.dev";
};
}
{
"Radarr" = {
icon = "radarr.png";
description = "Radarr: Movie Management";
href = "https://radarr.tsuba.darksailor.dev";
siteMonitor = "https://radarr.tsuba.darksailor.dev";
};
}
{
"Deluge" = {
icon = "deluge.png";
description = "Deluge: Torrent Client";
href = "https://deluge.tsuba.darksailor.dev";
siteMonitor = "https://deluge.tsuba.darksailor.dev";
};
}
{
"Home Assistant" = {
icon = "home-assistant.png";
description = "Home Automation";
href = "https://home.darksailor.dev";
siteMonitor = "https://home.darksailor.dev";
};
}
{
"Pi Hole" = {
icon = "pi-hole.png";
description = "Pi-hole: Network-wide Ad Blocker";
href = "https://pihole.darksailor.dev";
siteMonitor = "https://pihole.darksailor.dev";
};
}
];
}
{
"Tako" = [
{
"Gitea" = {
icon = "gitea.png";
description = "Gitea Code Hosting";
href = "https://git.darksailor.dev";
siteMonitor = "https://git.darksailor.dev";
};
}
{
"Nextcloud" = {
icon = "nextcloud.png";
description = "Nextcloud Suite";
href = "https://cloud.darksailor.dev";
siteMonitor = "https://cloud.darksailor.dev";
};
}
{
"Immich" = {
icon = "immich.png";
description = "Immich: Self-hosted Photo and Video Backup";
href = "https://photos.darksailor.dev";
siteMonitor = "https://photos.darksailor.dev";
};
}
{
"Excalidraw" = {
icon = "excalidraw.png";
description = "Excalidraw: Self-hosted Whiteboard";
href = "https://draw.darksailor.dev";
siteMonitor = "https://draw.darksailor.dev";
};
}
{
"Navidrome" = {
icon = "navidrome.png";
description = "A self-hosted music server and streamer.";
href = "https://music.darksailor.dev";
siteMonitor = "https://music.darksailor.dev";
};
}
{
"OpenwebUI" = {
icon = "open-webui.png";
description = "OpenwebUI: Self-hosted AI chat interface";
href = "https://chat.darksailor.dev";
siteMonitor = "https://chat.darksailor.dev";
};
}
{
"Prowlarr" = {
icon = "prowlarr.png";
description = "Prowlarr: Indexer Manager";
href = "https://prowlarr.darksailor.dev";
siteMonitor = "https://prowlarr.darksailor.dev";
};
}
];
}
];
bookmarks = [
{
"Nix" = [
{
"Nixpkgs" = [
{
abbr = "pkgs";
href = "https://search.nixos.org/packages?channel=unstable";
}
];
}
{
"NixOS" = [
{
abbr = "nixos";
href = "https://search.nixos.org/options?channel=unstable";
}
];
}
{
"Home Manager" = [
{
abbr = "hm";
href = "https://home-manager-options.extranix.com";
}
];
}
{
"NixVim" = [
{
abbr = "nixvim";
href = "https://nix-community.github.io/nixvim/search";
}
];
}
{
"Tailscale" = [
{
abbr = "ts";
href = "https://login.tailscale.com";
}
];
}
];
}
];
};
caddy = {
virtualHosts."dashboard.darksailor.dev".extraConfig = ''
reverse_proxy localhost:${builtins.toString config.services.homepage-dashboard.listenPort}
'';
};
# authelia = {
# instances.darksailor = {
# settings = {
# access_control = {
# rules = [
# {
# domain = "dashboard.darksailor.dev";
# policy = "one_factor";
# }
# ];
# };
# };
# };
# };
};
}