1
Fork 0
satellite/hosts/nixos/lapetus/services/homer.nix

185 lines
5.3 KiB
Nix

{ pkgs, config, ... }:
let
# {{{ Colors
colors = with config.lib.stylix.scheme.withHashtag; {
highlight-primary = base09;
highlight-secondary = base01;
highlight-hover = base00;
text-header = base05;
text-title = base05;
text-subtitle = base05;
text = base05;
link = base08;
background = base00;
card-background = base01;
};
# }}}
fa = name: "fas fa-${name}";
iconPath = ../../../../common/icons;
icon = file: "assets/${iconPath}/${file}";
in
{
satellite.nginx.at.lab.files = pkgs.homer.withAssets {
extraAssets = [ iconPath ];
config = {
title = " The celestial citadel ";
header = false;
footer = false;
connectivityCheck = true;
colors.light = colors;
colors.dark = colors;
services = [
# {{{ Infrastructure
{
name = "Infrastructure";
icon = fa "code";
items = [
{
name = "Prometheus";
type = "Prometheus";
subtitle = "Monitoring system";
logo = icon "prometheus.png";
url = "https://prometheus.moonythm.dev";
}
{
name = "Grafana";
subtitle = "Pretty dashboards :3";
logo = icon "grafana.png";
url = "https://grafana.moonythm.dev";
}
{
name = "Syncthing";
subtitle = "File synchronization";
logo = icon "syncthing.png";
url = "https://syncthing.lapetus.moonythm.dev";
}
{
name = "Guacamole";
subtitle = "Server remote access";
logo = icon "guacamole.png";
url = "https://guacamole.moonythm.dev";
}
{
name = "Tailscale";
subtitle = "Access this homelab from anywhere";
logo = icon "tailscale.png";
url = "https://tailscale.com/";
}
{
name = "Dotfiles";
subtitle = "Configuration for all my machines";
logo = icon "forgejo.svg";
url = "https://git.moonythm.dev/prescientmoon/satellite";
}
{
name = "Cloudflare";
subtitle = "Domain management";
logo = icon "cloudflare.png";
url = "https://dash.cloudflare.com/761d3e81b3e42551e33c4b73274ecc82/moonythm.dev/";
}
];
}
# }}}
# {{{ Tooling
{
name = "Tooling";
icon = fa "toolbox";
items = [
{
name = "Actual";
subtitle = "Budgeting tool";
logo = icon "actual.png";
url = "https://actual.moonythm.dev";
}
{
name = "Vaultwarden";
subtitle = "Password manager";
logo = icon "bitwarden.png";
url = "https://warden.moonythm.dev";
}
{
name = "Whoogle";
subtitle = "Search engine";
logo = icon "whoogle.webp";
url = "https://search.moonythm.dev";
}
{
name = "Radicale";
subtitle = "Calendar server";
logo = icon "radicale.svg";
url = "https://cal.moonythm.dev";
}
{
name = "Microbin";
subtitle = "Code & file sharing";
logo = icon "microbin.png";
url = "https://bin.moonythm.dev";
}
{
name = "Forgejo";
subtitle = "Git forge";
logo = icon "forgejo.svg";
url = "https://git.moonythm.dev";
}
{
name = "Jupyterhub";
subtitle = "Notebook collaboration suite";
logo = icon "jupyter.png";
url = "https://jupyter.moonythm.dev";
}
];
}
# }}}
# {{{ Entertainment
{
name = "Entertainment";
icon = fa "gamepad";
items = [
{
name = "Invidious";
subtitle = "Youtube client";
logo = icon "invidious.png";
url = "https://yt.moonythm.dev";
}
{
name = "Redlib";
subtitle = "Reddit client";
logo = icon "libreddit.png";
url = "https://redlib.moonythm.dev";
}
{
name = "Diptime";
subtitle = "Diplomacy timer";
icon = fa "globe";
url = "https://diptime.moonythm.dev";
}
{
name = "Commafeed";
subtitle = "RSS reader";
logo = icon "commafeed.png";
url = "https://rss.moonythm.dev";
}
{
name = "Qbittorrent";
subtitle = "Torrent client";
logo = icon "qbittorrent.png";
url = "https://qbit.moonythm.dev";
}
{
name = "Jellyfin";
subtitle = "Media server";
logo = icon "jellyfin.png";
url = "https://media.moonythm.dev";
}
];
}
# }}}
];
};
};
}