yuki: remove homepage, add glance + komga
fmt jellyfin update traefik sops: remove homepage
This commit is contained in:
parent
c05cdf7605
commit
667d99e2e9
10 changed files with 435 additions and 523 deletions
|
@ -19,7 +19,3 @@ creation_rules:
|
|||
key_groups:
|
||||
- age:
|
||||
- *notoh
|
||||
- path_regex: secrets/homepage/[^/]+\.yaml$
|
||||
key_groups:
|
||||
- age:
|
||||
- *notoh
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{...}: {
|
||||
imports = [
|
||||
./hass
|
||||
./homepage
|
||||
./restic.nix
|
||||
./traefik.nix
|
||||
./stash.nix
|
||||
|
@ -10,6 +9,8 @@
|
|||
./anki-sync-server.nix
|
||||
./hoarder.nix
|
||||
./immich.nix
|
||||
./komga.nix
|
||||
./glance.nix
|
||||
# ./botoh.nix
|
||||
];
|
||||
}
|
||||
|
|
399
hosts/yuki/services/glance.nix
Normal file
399
hosts/yuki/services/glance.nix
Normal file
|
@ -0,0 +1,399 @@
|
|||
_: {
|
||||
services.glance = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
settings = {
|
||||
asset-path = "";
|
||||
server = {
|
||||
host = "0.0.0.0";
|
||||
port = 7676;
|
||||
};
|
||||
branding = {
|
||||
custom-footer = ''<b><p>ᓚᘏᗢ</p></b>'';
|
||||
};
|
||||
pages = [
|
||||
### home
|
||||
{
|
||||
name = "home";
|
||||
columns = [
|
||||
# left column
|
||||
{
|
||||
size = "small";
|
||||
widgets = [
|
||||
{
|
||||
type = "clock";
|
||||
hour-format = "24h";
|
||||
timezones = [
|
||||
{
|
||||
timezone = "America/Los_Angeles";
|
||||
label = "Los Angeles";
|
||||
}
|
||||
{
|
||||
timezone = "Asia/Tokyo";
|
||||
label = "Tokyo";
|
||||
}
|
||||
{
|
||||
timezone = "Europe/London";
|
||||
label = "London";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "weather";
|
||||
location = "New York, USA";
|
||||
}
|
||||
{
|
||||
type = "twitch-channels";
|
||||
collapse-after = 10;
|
||||
sort-by = "viewers";
|
||||
channels = [
|
||||
"forsen"
|
||||
"marisnot12"
|
||||
"elis"
|
||||
"elistard"
|
||||
"fallenshadow"
|
||||
"gamergirl"
|
||||
"sinder"
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
# middle column
|
||||
{
|
||||
size = "full";
|
||||
widgets = [
|
||||
{
|
||||
type = "search";
|
||||
search-engine = "google";
|
||||
bangs = [
|
||||
{
|
||||
title = "youtube";
|
||||
shortcut = "!yt";
|
||||
url = "https://www.youtube.com/results?search_query={QUERY}";
|
||||
}
|
||||
{
|
||||
title = "nixpkgs";
|
||||
shortcut = "!np";
|
||||
url = "https://search.nixos.org/packages?channel=unstable&query={QUERY}";
|
||||
}
|
||||
{
|
||||
title = "nixos";
|
||||
shortcut = "!no";
|
||||
url = "https://search.nixos.org/options?channel=unstable&query={QUERY}";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "split-column";
|
||||
widgets = [
|
||||
{
|
||||
type = "group";
|
||||
collapse-after = 5;
|
||||
widgets = [
|
||||
{
|
||||
type = "reddit";
|
||||
subreddit = "hatsune";
|
||||
collapse-after = 6;
|
||||
show-thumbnails = true;
|
||||
}
|
||||
{
|
||||
type = "reddit";
|
||||
subreddit = "2007scape";
|
||||
collapse-after = 6;
|
||||
show-thumbnails = true;
|
||||
}
|
||||
{
|
||||
type = "reddit";
|
||||
subreddit = "osugame";
|
||||
collapse-after = 6;
|
||||
show-thumbnails = true;
|
||||
}
|
||||
{
|
||||
type = "reddit";
|
||||
subreddit = "hololive";
|
||||
collapse-after = 6;
|
||||
show-thumbnails = true;
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "videos";
|
||||
include-shorts = false;
|
||||
channels = [
|
||||
"UC3n5uGu18FoCy23ggWWp8tA" # Mumei
|
||||
"UCIfAvpeIWGHb0duCkMkmm2Q" # Nimi
|
||||
"UCNa9i8ifGJRlK2yWgM9DcOA" # dnsl
|
||||
"UCSveVd5CV6-c5Qz64QVw91A" # 1dnsl
|
||||
"UCkwy4YhSUdXyv1JhuhjRFOw" # 2dnsl
|
||||
"UCfbnTUxUech4P1XgYUwYuKA" # Cold Ones
|
||||
"UCJWKjrrUh2KL1d3zXQW79cQ" # EWU
|
||||
"UCRmnt09hfWo6hD574tLVVDQ" # EWU Bodycam
|
||||
"UCBNG0osIBAprVcZZ3ic84vw" # Jim Browning
|
||||
"UCRcgy6GzDeccI7dkbbBna3Q" # LEMMiNO
|
||||
"UC31msahuXK0g6Keb27d1wog" # Nanobaiter
|
||||
"UCpFFItkfZz1qz5PpHpqzYBw" # Nexpo
|
||||
"UCMeRgqzTfC5ja40B6kM6pdg" # osu!
|
||||
"UC3Vuq4Q1bKFtAiKYlwRv3oA" # Peter Santenello
|
||||
"UCV_w9-UYod7bPbazMW7Zp4A" # Scambaiter
|
||||
"UCDKJdFer1phQI95UinPZehw" # Turkey Tom
|
||||
"UCCAfRoTJrKPbSrh_Eg3i4vg" # TomDark
|
||||
"UCZ4HyRUXSg62i9dWT6oIGIQ" # The Tape Library
|
||||
"UCFQMnBA3CS502aghlcr0_aw" # Coffezilla
|
||||
"UC28n0tlcNSa1iPe5mettocg" # voidzilla
|
||||
"UCjw9YUv4UoA3d0V_Pc6zLTQ" # Brick Immortar
|
||||
"UCODHrzPMGbNv67e84WDZhQQ" # fern
|
||||
"UCYO_jab_esuFRV4b17AJtAw" # 3Blue1Brown
|
||||
"UCsBjURrPoezykLs9EqgamOA" # Fireship
|
||||
"UCS0N5baNlQWJCUrhCEo8WlA" # Ben Eater
|
||||
"UCKGe7fZ_S788Jaspxg-_5Sg" # PC Security Channel
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
# right column
|
||||
{
|
||||
size = "small";
|
||||
widgets = [
|
||||
{
|
||||
type = "calendar";
|
||||
}
|
||||
{
|
||||
type = "bookmarks";
|
||||
groups = [
|
||||
{
|
||||
title = "media";
|
||||
links = [
|
||||
{
|
||||
title = "youtube";
|
||||
url = "https://www.youtube.com";
|
||||
}
|
||||
{
|
||||
title = "twitch";
|
||||
url = "https://www.twitch.tv";
|
||||
}
|
||||
{
|
||||
title = "reddit";
|
||||
url = "https://www.reddit.com";
|
||||
}
|
||||
{
|
||||
title = "lastfm";
|
||||
url = "https://www.last.fm/user/notoh";
|
||||
}
|
||||
{
|
||||
title = "anilist";
|
||||
url = "https://anilist.co/user/notoh/animelist";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
### dev
|
||||
{
|
||||
name = "dev";
|
||||
columns = [
|
||||
# left column
|
||||
{
|
||||
size = "small";
|
||||
widgets = [
|
||||
{
|
||||
type = "clock";
|
||||
hour-format = "24h";
|
||||
timezones = [
|
||||
{
|
||||
timezone = "America/Los_Angeles";
|
||||
label = "Los Angeles";
|
||||
}
|
||||
{
|
||||
timezone = "Asia/Tokyo";
|
||||
label = "Tokyo";
|
||||
}
|
||||
{
|
||||
timezone = "Europe/London";
|
||||
label = "London";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
# middle column
|
||||
{
|
||||
size = "full";
|
||||
widgets = [
|
||||
{
|
||||
type = "split-column";
|
||||
widgets = [
|
||||
{
|
||||
type = "group";
|
||||
collapse-after = 5;
|
||||
widgets = [
|
||||
{
|
||||
type = "reddit";
|
||||
subreddit = "nixos";
|
||||
collapse-after = 3;
|
||||
show-thumbnails = true;
|
||||
}
|
||||
{
|
||||
type = "reddit";
|
||||
subreddit = "selfhosted";
|
||||
collapse-after = 3;
|
||||
show-thumbnails = true;
|
||||
}
|
||||
{
|
||||
type = "reddit";
|
||||
subreddit = "linux";
|
||||
collapse-after = 3;
|
||||
show-thumbnails = true;
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "group";
|
||||
collapse-after = 5;
|
||||
widgets = [
|
||||
{
|
||||
type = "repository";
|
||||
repository = "nixos/nixpkgs";
|
||||
}
|
||||
{
|
||||
type = "releases";
|
||||
collapse-after = 5;
|
||||
show-source-icon = true;
|
||||
repositories = [
|
||||
"hyprwm/hyprland"
|
||||
"Vencord/Vesktop"
|
||||
"dani-garcia/vaultwarden"
|
||||
"Kesomannen/gale"
|
||||
"immich-app/immich"
|
||||
"LizardByte/Sunshine "
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "group";
|
||||
widgets = [
|
||||
{
|
||||
type = "monitor";
|
||||
title = "infra";
|
||||
sites = [
|
||||
{
|
||||
title = "proxmox";
|
||||
url = "https://pve.internal.flake.sh:8006";
|
||||
allow-insecure = true;
|
||||
}
|
||||
{
|
||||
title = "truenas";
|
||||
url = "https://truenas.internal.flake.sh/";
|
||||
allow-insecure = true;
|
||||
}
|
||||
{
|
||||
title = "ubiquiti";
|
||||
url = "https://udm.internal.flake.sh/network/default";
|
||||
allow-insecure = true;
|
||||
}
|
||||
{
|
||||
title = "uptime-kuma";
|
||||
url = "https://status.flake.sh";
|
||||
}
|
||||
{
|
||||
title = "grafana";
|
||||
url = "https://metrics.flake.sh";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "monitor";
|
||||
title = "media";
|
||||
sites = [
|
||||
{
|
||||
title = "jellyfin";
|
||||
url = "https://jellyfin.internal.flake.sh";
|
||||
allow-insecure = true;
|
||||
}
|
||||
{
|
||||
title = "jellyseerr";
|
||||
url = "https://jellyseerr.internal.flake.sh";
|
||||
allow-insecure = true;
|
||||
}
|
||||
{
|
||||
title = "sonarr";
|
||||
url = "https://sonarr.internal.flake.sh";
|
||||
allow-insecure = true;
|
||||
}
|
||||
{
|
||||
title = "radarr";
|
||||
url = "https://radarr.internal.flake.sh";
|
||||
allow-insecure = true;
|
||||
}
|
||||
{
|
||||
title = "prowlarr";
|
||||
url = "https://prowlarr.internal.flake.sh";
|
||||
allow-insecure = true;
|
||||
}
|
||||
{
|
||||
title = "qbittorrent";
|
||||
url = "http://192.168.1.54:8080/";
|
||||
allow-insecure = true;
|
||||
}
|
||||
{
|
||||
title = "immich";
|
||||
url = "https://immich.internal.flake.sh";
|
||||
allow-insecure = true;
|
||||
}
|
||||
{
|
||||
title = "komga";
|
||||
url = "https://komga.internal.flake.sh";
|
||||
allow-insecure = true;
|
||||
}
|
||||
{
|
||||
title = "stash";
|
||||
url = "https://stash.internal.flake.sh";
|
||||
allow-insecure = true;
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "monitor";
|
||||
title = "misc";
|
||||
sites = [
|
||||
{
|
||||
title = "wallos";
|
||||
url = "https://wallos.internal.flake.sh";
|
||||
allow-insecure = true;
|
||||
}
|
||||
|
||||
{
|
||||
title = "hoarder";
|
||||
url = "https://hoarder.internal.flake.sh";
|
||||
allow-insecure = true;
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
# right column
|
||||
{
|
||||
size = "small";
|
||||
widgets = [
|
||||
{
|
||||
type = "weather";
|
||||
location = "New York, USA";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,88 +0,0 @@
|
|||
{config, ...}: {
|
||||
imports = [
|
||||
./widgets.nix
|
||||
./services.nix
|
||||
];
|
||||
|
||||
sops.secrets.homepage-secrets = {
|
||||
sopsFile = ../../../../secrets/homepage/secrets.yaml;
|
||||
};
|
||||
|
||||
services.homepage-dashboard = {
|
||||
enable = true;
|
||||
listenPort = 7676;
|
||||
openFirewall = true;
|
||||
environmentFile = config.sops.secrets.homepage-secrets.path;
|
||||
settings = {
|
||||
base = "https://dashboard.internal.flake.sh/";
|
||||
title = "kumo";
|
||||
language = "en";
|
||||
headerStyle = "boxedWidgets";
|
||||
disableCollape = true;
|
||||
favicon = "https://em-content.zobj.net/source/twitter/376/cloud_2601-fe0f.png";
|
||||
cardBlur = "md";
|
||||
theme = "dark";
|
||||
color = "gray";
|
||||
fiveColumns = true;
|
||||
statusStyle = "dot";
|
||||
hideVersion = true;
|
||||
background = {
|
||||
image = "https://git.flake.sh/notohh/assets/raw/branch/main/wallpapers/miku/miku.png";
|
||||
brightness = 75;
|
||||
};
|
||||
providers = {
|
||||
openweathermap = "{{HOMEPAGE_VAR_OPENWEATHERMAP}}";
|
||||
};
|
||||
layout = [
|
||||
{
|
||||
"Sora" = {
|
||||
style = "row";
|
||||
columns = 3;
|
||||
};
|
||||
}
|
||||
{
|
||||
"News" = {
|
||||
style = "row";
|
||||
columns = 1;
|
||||
};
|
||||
}
|
||||
{
|
||||
"Infra" = {
|
||||
style = "row";
|
||||
columns = 4;
|
||||
};
|
||||
}
|
||||
{
|
||||
"Networking" = {
|
||||
style = "row";
|
||||
columns = 1;
|
||||
};
|
||||
}
|
||||
{
|
||||
"Monitoring" = {
|
||||
style = "row";
|
||||
columns = 2;
|
||||
};
|
||||
}
|
||||
{
|
||||
"Media" = {
|
||||
style = "row";
|
||||
columns = 2;
|
||||
};
|
||||
}
|
||||
{
|
||||
"Misc apps" = {
|
||||
style = "row";
|
||||
columns = 2;
|
||||
};
|
||||
}
|
||||
{
|
||||
"Misc" = {
|
||||
style = "row";
|
||||
columns = 5;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,366 +0,0 @@
|
|||
_: {
|
||||
services.homepage-dashboard.services = [
|
||||
{
|
||||
"Sora" = let
|
||||
glancesUrl = "http://100.104.42.96:61208";
|
||||
in [
|
||||
{
|
||||
"INF" = {
|
||||
widget = {
|
||||
type = "glances";
|
||||
url = glancesUrl;
|
||||
metric = "info";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"CPU" = {
|
||||
widget = {
|
||||
type = "glances";
|
||||
url = glancesUrl;
|
||||
metric = "cpu";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"RAM" = {
|
||||
widget = {
|
||||
type = "glances";
|
||||
url = glancesUrl;
|
||||
metric = "memory";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"PROC" = {
|
||||
widget = {
|
||||
type = "glances";
|
||||
url = glancesUrl;
|
||||
metric = "process";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"NET" = {
|
||||
widget = {
|
||||
type = "glances";
|
||||
url = glancesUrl;
|
||||
metric = "network:eth0";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"FS" = {
|
||||
widget = {
|
||||
type = "glances";
|
||||
url = glancesUrl;
|
||||
metric = "fs:/etc/hosts";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"Infra" = [
|
||||
{
|
||||
"Proxmox" = {
|
||||
icon = "proxmox";
|
||||
href = "https://pve.internal.flake.sh:8006";
|
||||
widget = {
|
||||
type = "proxmox";
|
||||
url = "https://192.168.1.36:8006";
|
||||
username = "{{HOMEPAGE_VAR_PROXMOX_USER}}";
|
||||
password = "{{HOMEPAGE_VAR_PROXMOX_PWD}}";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Proxmox Backup Server" = {
|
||||
icon = "proxmox";
|
||||
href = "https://pbs.internal.flake.sh:8007";
|
||||
widget = {
|
||||
type = "proxmoxbackupserver";
|
||||
url = "https://192.168.1.38:8007";
|
||||
username = "{{HOMEPAGE_VAR_PBS_USER}}";
|
||||
password = "{{HOMEPAGE_VAR_PBS_PWD}}";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"TrueNAS" = {
|
||||
icon = "truenas-scale";
|
||||
href = "https://truenas.internal.flake.sh";
|
||||
widget = {
|
||||
type = "truenas";
|
||||
url = "https://192.168.1.199";
|
||||
key = "{{HOMEPAGE_VAR_TRUENAS_KEY}}";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Home Assistant" = {
|
||||
icon = "home-assistant";
|
||||
href = "http://hass.internal.flake.sh:8123";
|
||||
widget = {
|
||||
type = "homeassistant";
|
||||
url = "http://192.168.1.98:8123";
|
||||
key = "{{HOMEPAGE_VAR_HASS_KEY}}";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"Networking" = [
|
||||
{
|
||||
"Ubiquiti" = {
|
||||
icon = "ubiquiti";
|
||||
href = "https://udm.internal.flake.sh";
|
||||
widget = {
|
||||
type = "unifi";
|
||||
url = "https://192.168.1.1";
|
||||
username = "api";
|
||||
password = "{{HOMEPAGE_VAR_UBIQUITI_PWD}}";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Traefik" = {
|
||||
icon = "traefik";
|
||||
href = "http://192.168.1.98:8080/dashboard";
|
||||
widget = {
|
||||
type = "traefik";
|
||||
url = "http://192.168.1.98:8080";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Gluetun" = {
|
||||
icon = "gluetun";
|
||||
href = "http://192.168.1.54:8000";
|
||||
widget = {
|
||||
type = "gluetun";
|
||||
url = "http://192.168.1.54:8000";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Tailscale" = {
|
||||
icon = "tailscale";
|
||||
href = "https://login.tailscale.com/admin/machines";
|
||||
widget = {
|
||||
type = "tailscale";
|
||||
deviceid = "{{HOMEPAGE_VAR_TAILSCALE_DEVICE_ID}}";
|
||||
key = "{{HOMEPAGE_VAR_TAILSCALE_KEY}}";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Blocky" = {
|
||||
icon = "blocky";
|
||||
href = "http://192.168.1.103:4000";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"Monitoring" = [
|
||||
{
|
||||
"Grafana" = {
|
||||
icon = "grafana";
|
||||
href = "https://metrics.flake.sh";
|
||||
widget = {
|
||||
type = "grafana";
|
||||
url = "https://metrics.flake.sh";
|
||||
username = "{{HOMEPAGE_VAR_GRAFANA_USER}}";
|
||||
password = "{{HOMEPAGE_VAR_GRAFANA_PWD}}";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Prometheus" = {
|
||||
icon = "prometheus";
|
||||
widget = {
|
||||
type = "prometheus";
|
||||
url = "http://100.104.42.96:9090";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Uptime Kuma" = {
|
||||
icon = "uptime-kuma";
|
||||
href = "https://status.flake.sh/dashboard";
|
||||
widget = {
|
||||
type = "uptimekuma";
|
||||
url = "https://status.flake.sh";
|
||||
slug = "kumo";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"ntfy" = {
|
||||
icon = "ntfy";
|
||||
href = "https://ntfy.flake.sh";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"Media" = let
|
||||
kariruIp = "http://192.168.1.54:";
|
||||
in [
|
||||
{
|
||||
"Jellyfin" = {
|
||||
icon = "jellyfin";
|
||||
href = "https://jellyfin.internal.flake.sh/";
|
||||
widget = {
|
||||
type = "jellyfin";
|
||||
url = "http://192.168.1.98:8096";
|
||||
key = "{{HOMEPAGE_VAR_JELLYFIN_KEY}}";
|
||||
enableBlocks = true;
|
||||
enableNowPlaying = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Jellyseerr" = {
|
||||
icon = "jellyseerr";
|
||||
href = "https://jellyseerr.internal.flake.sh";
|
||||
widget = {
|
||||
type = "jellyseerr";
|
||||
url = "http://192.168.1.98:5055";
|
||||
key = "{{HOMEPAGE_VAR_JELLYSEERR_KEY}}";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Sonarr" = {
|
||||
icon = "sonarr";
|
||||
href = "https://sonarr.internal.flake.sh";
|
||||
widget = {
|
||||
type = "sonarr";
|
||||
url = "${kariruIp}8989";
|
||||
key = "{{HOMEPAGE_VAR_SONARR_KEY}}";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Radarr" = {
|
||||
icon = "radarr";
|
||||
href = "https://radarr.internal.flake.sh";
|
||||
widget = {
|
||||
type = "radarr";
|
||||
url = "${kariruIp}7878";
|
||||
key = "{{HOMEPAGE_VAR_RADARR_KEY}}";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Prowlarr" = {
|
||||
icon = "prowlarr";
|
||||
href = "https://prowlarr.internal.flake.sh";
|
||||
widget = {
|
||||
type = "prowlarr";
|
||||
url = "${kariruIp}9696";
|
||||
key = "{{HOMEPAGE_VAR_PROWLARR_KEY}}";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"qBittorrent" = {
|
||||
icon = "qbittorrent";
|
||||
href = "http://192.168.1.54:8080";
|
||||
widget = {
|
||||
type = "qbittorrent";
|
||||
url = "http://192.168.1.54:8080";
|
||||
username = "notoh";
|
||||
password = "{{HOMEPAGE_VAR_QBIT_PWD}}";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Stash" = {
|
||||
icon = "stash";
|
||||
href = "https://stash.internal.flake.sh";
|
||||
widget = {
|
||||
type = "stash";
|
||||
url = "https://stash.internal.flake.sh";
|
||||
key = "{{HOMEPAGE_VAR_STASH_KEY}}";
|
||||
fields = ["scenes" "sceneSize" "performers"];
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Immich" = {
|
||||
icon = "immich";
|
||||
href = "https://immich.internal.flake.sh";
|
||||
widget = {
|
||||
type = "immich";
|
||||
url = "https://immich.internal.flake.sh";
|
||||
key = "{{HOMEPAGE_VAR_IMMICH_KEY}}";
|
||||
version = 2;
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
"Whisparr" = {
|
||||
icon = "whisparr";
|
||||
href = "http://whisparr.internal.flake.sh/";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Servarr" = {
|
||||
icon = "servarr";
|
||||
href = "https://wiki.servarr.com/";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"Misc" = [
|
||||
{
|
||||
"Forgejo" = {
|
||||
icon = "forgejo";
|
||||
href = "https://git.flake.sh/explore/repos";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Hetzner" = {
|
||||
icon = "hetzner";
|
||||
href = "https://accounts.hetzner.com/login";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Cloudflare" = {
|
||||
icon = "cloudflare";
|
||||
href = "https://dash.cloudflare.com";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Tailscale" = {
|
||||
icon = "tailscale";
|
||||
href = "https://login.tailscale.com/admin/machines";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Hoarder" = {
|
||||
icon = "hoarder";
|
||||
href = "https://hoarder.internal.flake.sh";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Wallos" = {
|
||||
icon = null;
|
||||
href = "https://wallos.internal.flake.sh";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Ganymede" = {
|
||||
icon = null;
|
||||
href = "https://ganymede.internal.flake.sh";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
|
@ -1,30 +0,0 @@
|
|||
_: {
|
||||
services.homepage-dashboard.widgets = [
|
||||
{
|
||||
greeting = {
|
||||
text_size = "l";
|
||||
text = "おかえりなさい!";
|
||||
};
|
||||
}
|
||||
{
|
||||
datetime = {
|
||||
text_size = "l";
|
||||
format = {
|
||||
timeStyle = "short";
|
||||
dateStyle = "short";
|
||||
hourCycle = "h23";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
openweathermap = {
|
||||
label = "New York";
|
||||
latitude = "40.730610";
|
||||
longitude = "-73.935242";
|
||||
units = "metric";
|
||||
provider = "openweathermap";
|
||||
cache = 5;
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
|
@ -1,10 +1,12 @@
|
|||
_: {
|
||||
services.jellyfin = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
services.jellyseerr = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
services = {
|
||||
jellyfin = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
jellyseerr = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
11
hosts/yuki/services/komga.nix
Normal file
11
hosts/yuki/services/komga.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
_: {
|
||||
services.komga = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
settings = {
|
||||
server = {
|
||||
port = 8081;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{config, ...}: {
|
||||
networking.firewall.allowedTCPPorts = [80 443 8080];
|
||||
networking.firewall.allowedTCPPorts = [80 443];
|
||||
sops.secrets.cloudflare-api-key = {};
|
||||
systemd.services.traefik = {
|
||||
environment = {
|
||||
|
@ -22,10 +22,10 @@
|
|||
entryPoints = ["websecure"];
|
||||
service = "api@internal";
|
||||
};
|
||||
homepage = {
|
||||
glance = {
|
||||
rule = "Host(`dashboard.${fqdn}`)";
|
||||
entrypoints = ["websecure"];
|
||||
service = "homepage";
|
||||
service = "glance";
|
||||
tls.domains = [{main = "*.${fqdn}";}];
|
||||
tls.certresolver = "production";
|
||||
};
|
||||
|
@ -128,13 +128,20 @@
|
|||
tls.domains = [{main = "*.${fqdn}";}];
|
||||
tls.certresolver = "production";
|
||||
};
|
||||
komga = {
|
||||
rule = "Host(`komga.${fqdn}`)";
|
||||
entrypoints = ["websecure"];
|
||||
service = "komga";
|
||||
tls.domains = [{main = "*.${fqdn}";}];
|
||||
tls.certresolver = "production";
|
||||
};
|
||||
};
|
||||
services = let
|
||||
kariruHost = "192.168.1.54:";
|
||||
in {
|
||||
# local
|
||||
stash.loadBalancer.servers = [{url = "http://localhost:9999";}];
|
||||
homepage.loadBalancer.servers = [{url = "http://localhost:7676";}];
|
||||
glance.loadBalancer.servers = [{url = "http://localhost:7676";}];
|
||||
jellyfin.loadBalancer.servers = [{url = "http://localhost:8096";}];
|
||||
jellyseerr.loadBalancer.servers = [{url = "http://localhost:5055";}];
|
||||
wallos.loadBalancer.servers = [{url = "http://localhost:8282";}];
|
||||
|
@ -143,6 +150,7 @@
|
|||
miniflux.loadBalancer.servers = [{url = "http://localhost:9000";}];
|
||||
hoarder.loadBalancer.servers = [{url = "http://localhost:3000";}];
|
||||
immich.loadBalancer.servers = [{url = "http://localhost:2283";}];
|
||||
komga.loadBalancer.servers = [{url = "http://localhost:8081";}];
|
||||
# kariru
|
||||
sonarr.loadBalancer.servers = [{url = "http://${kariruHost}8989";}];
|
||||
radarr.loadBalancer.servers = [{url = "http://${kariruHost}7878";}];
|
||||
|
@ -155,8 +163,8 @@
|
|||
};
|
||||
staticConfigOptions = {
|
||||
log.level = "DEBUG";
|
||||
api.dashboard = true;
|
||||
api.insecure = true;
|
||||
api.dashboard = false;
|
||||
api.insecure = false;
|
||||
global = {
|
||||
checkNewVersion = false;
|
||||
sendAnonymousUsage = false;
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
homepage-secrets: ENC[AES256_GCM,data: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,iv:a+cySZfyNn1u8sOos9VPV/owgUD0lIb3P8JGkjbTLX8=,tag:GF1G4g6jAN+1fwmDdZvO+g==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1ckvmyqkwk69j64ev3fmckytz6k2dv79z4gn5qf6gxqyevp5yjfesdfkxmn
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6dkVBejE1bHZqVkRZRmFo
|
||||
SStUSjBSbmZLdXpVZUt5L1kwK1pEM3pGL0VZCmFsQ2xkaHIxV2lxbzZzWnM3ZDE1
|
||||
bm44L25RTnRFVzl1cGQ3Q3g1THFXTkEKLS0tIFViRmN0anF5SmNBVWd5N2h0NElF
|
||||
bGM5b1BLMTVlUDBDY0Z3L2dRbVZrb00Kj641oh4R7VfmWFmCaq5aRWcDTvzJvZBR
|
||||
aIJdMFJEB4B43dlv2/bLYsoFs8LJJ2CHu1my9/BlNI+345ZlrFpQgQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-03-04T01:42:21Z"
|
||||
mac: ENC[AES256_GCM,data:MCLnZfiwXqrz4uy2ywTYqe2WxrfKDk2o05wJIccNtmp4WXUBoIu/xuHuY7+OG1LzB3KiisnSt68TVy32AcuMY0NlsZB968Bhm1WLgWbbAfqS3nR84j7uurHxHKfBqjxwRj0MjujhuOqrZD6TPfQiELIP7ysUEzEKz/PQC0WC2rI=,iv:hkwFEy/5L2VVddgMZ5tbPp64AJbH8qLTAJQtU4tHBFk=,tag:PJ0TelFYse27BapThwXm4A==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.9.4
|
Loading…
Add table
Reference in a new issue