mirror of
https://github.com/danbulant/dotfiles
synced 2026-06-24 17:22:10 +00:00
Compare commits
No commits in common. "6472fa80cf6e49cfa80796c139cabcd86c5eecd8" and "f12e603497aa39bfa1f8e781eed1bcf8e8696706" have entirely different histories.
6472fa80cf
...
f12e603497
6 changed files with 227 additions and 342 deletions
|
|
@ -1,13 +1,13 @@
|
|||
font_family Fira Code Retina
|
||||
font_features FiraCode-Retina +zero
|
||||
background_opacity 0.6
|
||||
background_opacity 0.4
|
||||
shell nu
|
||||
#map ctrl+shift+c copy_to_clipboard
|
||||
#map ctrl+shift+v paste_from_clipboard
|
||||
|
||||
include dank-tabs.conf
|
||||
|
||||
tab_bar_edge bottom
|
||||
tab_bar_edge top
|
||||
tab_bar_style powerline
|
||||
tab_powerline_style round
|
||||
tab_activity_symbol *
|
||||
|
|
|
|||
78
flake.lock
78
flake.lock
|
|
@ -91,11 +91,11 @@
|
|||
"nixpkgs": "nixpkgs_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775866625,
|
||||
"narHash": "sha256-NfzRZ5DZo8Mwb31ocimy3IMhr3kmYGQ3/ImfnEQkQLw=",
|
||||
"lastModified": 1775776853,
|
||||
"narHash": "sha256-qEYbkG9vhwCSDydV8o/RrSM5TjDafJdlcCwRqFlRnMk=",
|
||||
"owner": "9001",
|
||||
"repo": "copyparty",
|
||||
"rev": "a5d859d2b18f53ccf236bc6229856f79139d531c",
|
||||
"rev": "ed516ddc20493e670c141c4a3811f93632be046e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -208,11 +208,11 @@
|
|||
"nixpkgs": "nixpkgs_8"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775943689,
|
||||
"narHash": "sha256-0XBCoR1L5gYmh8VqZu0HcHsL4GeGXQMC0f3ARshf/rk=",
|
||||
"lastModified": 1743892246,
|
||||
"narHash": "sha256-AHeavUWjnDPT/hffE5hM8RIew+mZJSSr9tUEiSvZW30=",
|
||||
"owner": "rumboon",
|
||||
"repo": "dolphin-overlay",
|
||||
"rev": "c32758737a0cb02d0bf380753d11df1b8537a944",
|
||||
"rev": "55fec3268972876890d6081d3d76a701c37c01d7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -494,11 +494,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775585728,
|
||||
"narHash": "sha256-8Psjt+TWvE4thRKktJsXfR6PA/fWWsZ04DVaY6PUhr4=",
|
||||
"lastModified": 1775036584,
|
||||
"narHash": "sha256-zW0lyy7ZNNT/x8JhzFHBsP2IPx7ATZIPai4FJj12BgU=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "580633fa3fe5fc0379905986543fd7495481913d",
|
||||
"rev": "4e0eb042b67d863b1b34b3f64d52ceb9cd926735",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -582,11 +582,11 @@
|
|||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1776004579,
|
||||
"narHash": "sha256-9uEVLUueMTPu85dJMXLZ4NU36rCVbvUS/gGO1Eae5mw=",
|
||||
"lastModified": 1775727767,
|
||||
"narHash": "sha256-vef6j024ZaMFT2CJXPEmyPLxwho4+tDc1FzKWV8XUhE=",
|
||||
"owner": "schembriaiden",
|
||||
"repo": "helium-browser-nix-flake",
|
||||
"rev": "d69553db8dd48fb6cab8c646b81892890f611a14",
|
||||
"rev": "a22cee25640671f6e21b693b7e8cd0ca1349eb55",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -602,11 +602,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1776015217,
|
||||
"narHash": "sha256-PUb9TTfqsA1g+aHJt5s8tIP7QdX8xHeOtDMPVRuylfM=",
|
||||
"lastModified": 1775781825,
|
||||
"narHash": "sha256-L5yKTpR+alrZU2XYYvIxCeCP4LBHU5jhwSj7H1VAavg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "f6196e5b4d3f0168d09feab9ba678fa18ca58cbb",
|
||||
"rev": "e35c39fca04fee829cecdf839a50eb9b54d8a701",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -796,11 +796,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1776007698,
|
||||
"narHash": "sha256-1baTmNmnYJwSKyim7pJoy5s5dYnO3BdU/oZHoJa06sI=",
|
||||
"lastModified": 1771865848,
|
||||
"narHash": "sha256-xwNa+1D8WPsDnJtUofDrtyDCZKZotbUymzV/R5s+M0I=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-plugins",
|
||||
"rev": "3e38db916aaecba0a7c7698c6df0c68acb89f312",
|
||||
"rev": "b85a56b9531013c79f2f3846fd6ee2ff014b8960",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1025,11 +1025,11 @@
|
|||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775877135,
|
||||
"narHash": "sha256-nAqtUMy22olwyiOJB0CASVrbu5XB5+43GjlbIJ1KuvQ=",
|
||||
"lastModified": 1775802594,
|
||||
"narHash": "sha256-miydzsK4cMzBXoHw+/5Am4PwB/P/ifWOlfHHqFe7FKU=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "f943da038fd668d435c2d17916577f295faa8839",
|
||||
"rev": "63213c63766e5bb28e0e0b078c4628b01b24c92f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1099,11 +1099,11 @@
|
|||
"nixpkgs": "nixpkgs_10"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775964335,
|
||||
"narHash": "sha256-HfdUaZRiws8vCoWznWD9hHBl2j5JNRBO8/tAEtfxwHw=",
|
||||
"lastModified": 1775791406,
|
||||
"narHash": "sha256-uou25Y8kHz477am/W4b9mIrxYY+qxO5CEcjW/LJPs6w=",
|
||||
"owner": "fufexan",
|
||||
"repo": "nix-gaming",
|
||||
"rev": "7e4f954102c0b51f08512b3d7ce03d21582ad9c5",
|
||||
"rev": "feff81fb337e4fc23c730b51e9367e42a282e53e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1140,11 +1140,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775970782,
|
||||
"narHash": "sha256-7jt9Vpm48Yy5yAWigYpde+HxtYEpEuyzIQJF4VYehhk=",
|
||||
"lastModified": 1775365369,
|
||||
"narHash": "sha256-DgH5mveLoau20CuTnaU5RXZWgFQWn56onQ4Du2CqYoI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "bedba5989b04614fc598af9633033b95a937933f",
|
||||
"rev": "cef5cf82671e749ac87d69aadecbb75967e6f6c3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1263,11 +1263,11 @@
|
|||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1775811116,
|
||||
"narHash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=",
|
||||
"lastModified": 1775595990,
|
||||
"narHash": "sha256-OEf7YqhF9IjJFYZJyuhAypgU+VsRB5lD4DuiMws5Ltc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "54170c54449ea4d6725efd30d719c5e505f1c10e",
|
||||
"rev": "4e92bbcdb030f3b4782be4751dc08e6b6cb6ccf2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1311,11 +1311,11 @@
|
|||
},
|
||||
"nixpkgs_10": {
|
||||
"locked": {
|
||||
"lastModified": 1775888245,
|
||||
"narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
|
||||
"lastModified": 1775126147,
|
||||
"narHash": "sha256-J0dZU4atgcfo4QvM9D92uQ0Oe1eLTxBVXjJzdEMQpD0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "13043924aaa7375ce482ebe2494338e058282925",
|
||||
"rev": "8d8c1fa5b412c223ffa47410867813290cdedfef",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1599,11 +1599,11 @@
|
|||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775941509,
|
||||
"narHash": "sha256-NlNzLZmr2ugPxruIM20XiOeMMhCpV+jMoDWiH4ZbTnM=",
|
||||
"lastModified": 1775833726,
|
||||
"narHash": "sha256-WOoaKroRdoiSCGOxNKbFvP0Q+qp30l2dPHBDmCh3fO4=",
|
||||
"owner": "temidaradev",
|
||||
"repo": "rusic",
|
||||
"rev": "34e87aa43374af774a56d011648d0229b69a3fb0",
|
||||
"rev": "74e395f818b6bd8d25ef8315039be7416f173aa0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1816,11 +1816,11 @@
|
|||
"nixpkgs": "nixpkgs_13"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775961625,
|
||||
"narHash": "sha256-8SjilptVv9dSTvn0Z5j65vHHu+flmPXeyrGaSyRJm7U=",
|
||||
"lastModified": 1775744672,
|
||||
"narHash": "sha256-Qg3Wnn3WYiiii35CE9kE+XX4ooSFzupAnGC1/NjI5C8=",
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "0eaab249f5ca1c55921e99cfe07187410758c9fa",
|
||||
"rev": "14a238beb0621977e9bf04cba68919d5650deea9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -1,43 +1,40 @@
|
|||
{
|
||||
# config,
|
||||
nix-index-database,
|
||||
pkgs,
|
||||
lib,
|
||||
name ? "eisen",
|
||||
# copyparty,
|
||||
...
|
||||
}:
|
||||
let
|
||||
# these are used both in service configuration but also to
|
||||
# create mappings {name}.eisen.danbulant.cloud to port in caddy
|
||||
ports = {
|
||||
status = 3001;
|
||||
glance = 5678;
|
||||
jellyfin = 8096;
|
||||
qb = 8081;
|
||||
sonarr = 8989;
|
||||
radarr = 7878;
|
||||
jackett = 9117;
|
||||
keep = 8100;
|
||||
grafana = 3002;
|
||||
# ntfy = 3003;
|
||||
};
|
||||
internalPorts = {
|
||||
prometheus-node = 9000;
|
||||
prometheus-qb = 9200;
|
||||
prometheus-sonarr = 9101;
|
||||
prometheus-radarr = 9102;
|
||||
prometheus = 9090;
|
||||
"status" = 3001;
|
||||
"glance" = 5678;
|
||||
"jellyfin" = 8096;
|
||||
# "copyparty" = 3210;
|
||||
# "syncthing" = 8384;
|
||||
# "gitea" = 3000;
|
||||
# "immich" = 2283;
|
||||
# "grafana" = 3002;
|
||||
"ntfy" = 3003;
|
||||
# "suwayomi" = 3004;
|
||||
};
|
||||
in
|
||||
{
|
||||
deployment = {
|
||||
buildOnTarget = true;
|
||||
targetHost = "192.168.1.114";
|
||||
};
|
||||
|
||||
# nixpkgs.overlays = [ copyparty.overlays.default ];
|
||||
|
||||
programs.nix-index-database.comma.enable = true;
|
||||
|
||||
imports = [
|
||||
nix-index-database.nixosModules.nix-index
|
||||
# copyparty.nixosModules.default
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
|
|
@ -79,30 +76,45 @@ in
|
|||
enable = true;
|
||||
};
|
||||
|
||||
sonarr = {
|
||||
enable = true;
|
||||
settings.server.port = ports.sonarr;
|
||||
};
|
||||
# syncthing = {
|
||||
# enable = true;
|
||||
# openDefaultPorts = true;
|
||||
# settings = {
|
||||
# gui = {
|
||||
# insecureSkipHostCheck = true;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
radarr = {
|
||||
enable = true;
|
||||
settings.server.port = ports.radarr;
|
||||
};
|
||||
# copyparty = {
|
||||
# enable = true;
|
||||
|
||||
jackett = {
|
||||
enable = true;
|
||||
port = ports.jackett;
|
||||
};
|
||||
# settings = {
|
||||
# p = ports.copyparty;
|
||||
# idp-hm-usr = "^X-Webauth-Login^danbulant@github^dan";
|
||||
# rproxy = 1;
|
||||
# xff-hdr = "X-Forwarded-For";
|
||||
# ipu = [ "100.103.148.81/32=dan" /*"100.79.186.114/32=dan" "100.76.144.133/32=dan" "100.114.62.113/32=dan" */ ];
|
||||
# };
|
||||
|
||||
karakeep = {
|
||||
enable = true;
|
||||
extraEnvironment = {
|
||||
PORT = toString ports.keep;
|
||||
# DISABLE_SIGNUPS = "true";
|
||||
DISABLE_NEW_RELEASE_CHECK = "true";
|
||||
};
|
||||
environmentFile = "/etc/secrets/karakeep.env";
|
||||
};
|
||||
# accounts = {
|
||||
# dan = {
|
||||
# passwordFile = "/dev/null";
|
||||
# };
|
||||
# };
|
||||
|
||||
# volumes = {
|
||||
# "/" = {
|
||||
# path = "/media/large";
|
||||
# access = {
|
||||
# rwa = [ "dan" ];
|
||||
# r = [ "*" ];
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
# openFilesLimit = 8192;
|
||||
# };
|
||||
|
||||
dnsmasq = {
|
||||
enable = true;
|
||||
|
|
@ -115,80 +127,36 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
grafana = {
|
||||
enable = true;
|
||||
settings = {
|
||||
server.http_port = ports.grafana;
|
||||
security = {
|
||||
secret_key = "$__file{/etc/secrets/gf_secret_key}";
|
||||
};
|
||||
};
|
||||
};
|
||||
prometheus = {
|
||||
enable = true;
|
||||
exporters = {
|
||||
exportarr-radarr = {
|
||||
enable = true;
|
||||
url = "http://127.0.0.1:${toString ports.radarr}";
|
||||
port = internalPorts.prometheus-radarr;
|
||||
apiKeyFile = "/etc/secrets/radarr_api_key";
|
||||
};
|
||||
exportarr-sonarr = {
|
||||
enable = true;
|
||||
url = "http://127.0.0.1:${toString ports.sonarr}";
|
||||
port = internalPorts.prometheus-sonarr;
|
||||
apiKeyFile = "/etc/secrets/sonarr_api_key";
|
||||
};
|
||||
node = {
|
||||
enable = true;
|
||||
port = internalPorts.prometheus-node;
|
||||
};
|
||||
};
|
||||
|
||||
scrapeConfigs = [
|
||||
{
|
||||
job_name = "node";
|
||||
static_configs = [
|
||||
{
|
||||
targets = [ "localhost:${toString internalPorts.prometheus-node}" ];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "qb";
|
||||
static_configs = [
|
||||
{
|
||||
targets = [ "localhost:${toString internalPorts.prometheus-qb}" ];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "sonarr";
|
||||
static_configs = [
|
||||
{
|
||||
targets = [ "localhost:${toString internalPorts.prometheus-sonarr}" ];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "radarr";
|
||||
static_configs = [
|
||||
{
|
||||
targets = [ "localhost:${toString internalPorts.prometheus-radarr}" ];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# ntfy-sh = {
|
||||
# grafana = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# listen-http = ":${toString ports.ntfy}";
|
||||
# base-url = "http://ntfy.eisen";
|
||||
# settings.server.http_port = ports.grafana;
|
||||
# };
|
||||
# prometheus.enable = true;
|
||||
|
||||
# suwayomi-server = {
|
||||
# enable = true;
|
||||
# settings.server = {
|
||||
# port = ports.suwayomi;
|
||||
# extensionRepos = [
|
||||
# "https://raw.githubusercontent.com/keiyoushi/extensions/repo/index.min.json"
|
||||
# ];
|
||||
# };
|
||||
# };
|
||||
|
||||
# flaresolverr.enable = true;
|
||||
|
||||
# immich = {
|
||||
# enable = true;
|
||||
# };
|
||||
|
||||
ntfy-sh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
listen-http = ":${toString ports.ntfy}";
|
||||
base-url = "http://ntfy.eisen";
|
||||
};
|
||||
};
|
||||
|
||||
# grafana-to-ntfy = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
|
|
@ -248,68 +216,9 @@ in
|
|||
};
|
||||
# systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true";
|
||||
|
||||
virtualisation = {
|
||||
docker = {
|
||||
enable = true;
|
||||
enableOnBoot = true;
|
||||
};
|
||||
|
||||
oci-containers = {
|
||||
backend = "docker";
|
||||
containers = {
|
||||
gluetun = {
|
||||
image = "qmcgaw/gluetun";
|
||||
capabilities = {
|
||||
NET_ADMIN = true;
|
||||
};
|
||||
devices = [ "/dev/net/tun" ];
|
||||
environmentFiles = [ "/etc/secrets/gluetun.env" ];
|
||||
ports = [
|
||||
"${toString ports.qb}:${toString ports.qb}"
|
||||
];
|
||||
# VPN_SERVICE_PROVIDER=protonvpn
|
||||
# VPN_TYPE=wireguard
|
||||
# WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU
|
||||
# SERVER_COUNTRIES=Denmark
|
||||
environment = {
|
||||
VPN_PORT_FORWARDING = "on";
|
||||
# TOR_ONLY = "on";
|
||||
PORT_FORWARD_ONLY = "on";
|
||||
FIREWALL_OUTBOUND_SUBNETS = "192.168.1.0/24,100.64.0.0/10";
|
||||
FIREWALL_INPUT_PORTS = "41641,22,80,443,53";
|
||||
|
||||
VPN_PORT_FORWARDING_UP_COMMAND = ''
|
||||
/bin/sh -c 'wget -O- -nv --retry-connrefused --post-data "json={\"listen_port\":{{PORT}},\"current_network_interface\":\"{{VPN_INTERFACE}}\",\"random_port\":false,\"upnp\":false}" http://172.17.0.1:${toString ports.qb}/api/v2/app/setPreferences'
|
||||
'';
|
||||
VPN_PORT_FORWARDING_DOWN_COMMAND = ''
|
||||
/bin/sh -c 'wget -O- -nv --retry-connrefused --post-data "json={\"listen_port\":0,\"current_network_interface\":\"lo\"}" http://172.17.0.1:${toString ports.qb}/api/v2/app/setPreferences'
|
||||
'';
|
||||
};
|
||||
# extraOptions = [ "--network=host" ];
|
||||
};
|
||||
qbittorrent = {
|
||||
image = "lscr.io/linuxserver/qbittorrent";
|
||||
|
||||
environment = {
|
||||
WEBUI_PORT = toString ports.qb;
|
||||
};
|
||||
|
||||
volumes = [ "/media/large/downloads:/large" ];
|
||||
|
||||
extraOptions = [ "--network=container:gluetun" ];
|
||||
};
|
||||
prometheus-qb = {
|
||||
image = "ghcr.io/esanchezm/prometheus-qbittorrent-exporter";
|
||||
environment = {
|
||||
QBITTORRENT_PORT = toString ports.qb;
|
||||
QBITTORRENT_HOST = "localhost";
|
||||
EXPORTER_PORT = toString internalPorts.prometheus-qb;
|
||||
};
|
||||
extraOptions = [ "--network=host" ];
|
||||
# ports = [ "8000:${toString internalPorts.prometheus-qb}" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
enableOnBoot = true;
|
||||
};
|
||||
# hardware.nvidia-container-toolkit.enable = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -10,10 +10,29 @@
|
|||
"first-day-of-week" = "monday";
|
||||
}
|
||||
{
|
||||
type = "server-stats";
|
||||
servers = [
|
||||
type = "rss";
|
||||
limit = 10;
|
||||
"collapse-after" = 3;
|
||||
cache = "12h";
|
||||
feeds = [
|
||||
{
|
||||
type = "local";
|
||||
url = "https://selfh.st/rss/";
|
||||
title = "selfh.st";
|
||||
limit = 4;
|
||||
}
|
||||
{
|
||||
url = "https://ciechanow.ski/atom.xml";
|
||||
}
|
||||
{
|
||||
url = "https://www.joshwcomeau.com/rss.xml";
|
||||
title = "Josh Comeau";
|
||||
}
|
||||
{
|
||||
url = "https://samwho.dev/rss.xml";
|
||||
}
|
||||
{
|
||||
url = "https://ishadeed.com/feed.xml";
|
||||
title = "Ahmad Shadeed";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
@ -46,7 +65,7 @@
|
|||
<a class="size-title-dynamic color-highlight text-truncate block grow" href="http://status.eisen/dashboard/{{ $id }}"
|
||||
target="_blank" rel="noreferrer">
|
||||
{{ .String "name" }} </a>
|
||||
|
||||
|
||||
{{ if gt (len $hbArray) 0 }}
|
||||
{{ $latest := index $hbArray (sub (len $hbArray) 1) }}
|
||||
{{ if eq ($latest.Int "status") 1 }}
|
||||
|
|
@ -97,56 +116,30 @@
|
|||
];
|
||||
}
|
||||
{
|
||||
type = "monitor";
|
||||
cache = "1m";
|
||||
title = "Services";
|
||||
|
||||
sites = [
|
||||
type = "videos";
|
||||
channels = [
|
||||
"UCXuqSBlHAE6Xw-yeJA0Tunw" # Linus Tech Tips
|
||||
"UCR-DXc1voovS8nhAvccRZhg" # Jeff Geerling
|
||||
"UCsBjURrPoezykLs9EqgamOA" # Fireship
|
||||
"UCBJycsmduvYEL83R_U4JriQ" # Marques Brownlee
|
||||
"UCHnyfMqiRRG1u-2MsSQLbXA" # Veritasium
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "group";
|
||||
widgets = [
|
||||
{
|
||||
title = "Jellyfin";
|
||||
url = "http://jellyfin.eisen.danbulant.cloud";
|
||||
icon = "si:jellyfin";
|
||||
type = "reddit";
|
||||
subreddit = "technology";
|
||||
"show-thumbnails" = true;
|
||||
}
|
||||
{
|
||||
title = "qBittorrent";
|
||||
url = "http://qb.eisen.danbulant.cloud";
|
||||
icon = "si:qbittorrent";
|
||||
}
|
||||
{
|
||||
title = "Radarr";
|
||||
url = "http://radarr.eisen.danbulant.cloud";
|
||||
icon = "si:radarr";
|
||||
}
|
||||
{
|
||||
title = "Sonarr";
|
||||
url = "http://sonarr.eisen.danbulant.cloud";
|
||||
icon = "si:sonarr";
|
||||
}
|
||||
{
|
||||
title = "Vaultwarden";
|
||||
url = "https://vaultwarden.danbulant.cloud";
|
||||
icon = "si:vaultwarden";
|
||||
}
|
||||
{
|
||||
title = "Nextcloud";
|
||||
url = "https://direct.danbulant.cloud";
|
||||
icon = "si:nextcloud";
|
||||
}
|
||||
{
|
||||
title = "Grafana";
|
||||
url = "http://grafana.eisen.danbulant.cloud";
|
||||
icon = "si:grafana";
|
||||
}
|
||||
{
|
||||
title = "Karakeep";
|
||||
url = "http://keep.eisen.danbulant.cloud";
|
||||
icon = "si:karakeep";
|
||||
type = "reddit";
|
||||
subreddit = "selfhosted";
|
||||
"show-thumbnails" = true;
|
||||
}
|
||||
];
|
||||
}
|
||||
# {
|
||||
# type = "docker-containers";
|
||||
# }
|
||||
];
|
||||
}
|
||||
{
|
||||
|
|
@ -172,23 +165,57 @@
|
|||
}
|
||||
{
|
||||
type = "custom-api";
|
||||
title = "Steam specials";
|
||||
cache = "12h";
|
||||
url = "https://store.steampowered.com/api/featuredcategories?cc=us";
|
||||
title = "Epic Games";
|
||||
cache = "1h";
|
||||
url = "https://store-site-backend-static.ak.epicgames.com/freeGamesPromotions?locale=en&country=US&allowCountries=US";
|
||||
template = ''
|
||||
<ul class="list list-gap-10 collapsible-container" data-collapse-after="5">
|
||||
{{ range .JSON.Array "specials.items" }}
|
||||
<li>
|
||||
<a class="size-h4 color-highlight block text-truncate" href="https://store.steampowered.com/app/{{ .Int "id" }}/">{{ .String "name" }}</a>
|
||||
<ul class="list-horizontal-text">
|
||||
<li>{{ div (.Int "final_price" | toFloat) 100 | printf "$%.2f" }}</li>
|
||||
{{ $discount := .Int "discount_percent" }}
|
||||
<li{{ if ge $discount 40 }} class="color-positive"{{ end }}>{{ $discount }}% off</li>
|
||||
</ul>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
'';
|
||||
<div>
|
||||
{{ if eq .Response.StatusCode 200 }}
|
||||
<div class="horizontal-cards-2">
|
||||
{{ range .JSON.Array "data.Catalog.searchStore.elements" }}
|
||||
{{ $price := .String "price.totalPrice.discountPrice" }}
|
||||
{{ $hasPromo := gt (len (.Array "promotions.promotionalOffers")) 0 }}
|
||||
{{ if and $hasPromo (eq $price "0") }}
|
||||
{{ $gamePage := .String "productSlug" }}
|
||||
{{ if gt (len (.Array "offerMappings")) 0 }}
|
||||
{{ $gamePage = .String "offerMappings.0.pageSlug" }}
|
||||
{{end }}
|
||||
<a href="https://store.epicgames.com/en-US/p/{{ $gamePage }}" target="_blank" class="card">
|
||||
{{ $title := .String "title" }}
|
||||
{{ range .Array "keyImages" }}
|
||||
{{ if eq (.String "type") "OfferImageWide" }}
|
||||
<img src="{{ .String "url" }}" alt="{{ $title }}" style="width: 100%; max-width: 300px; height: 150px; object-fit: cover; border-radius: var(--border-radius);">
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<div class="card-content">
|
||||
<span class="size-base color-primary">{{ $title }}</span><br>
|
||||
<span class="size-h5 color-subdue">
|
||||
{{ if $hasPromo }}
|
||||
{{ $promotions := .Array "promotions.promotionalOffers" }}
|
||||
{{ if gt (len $promotions) 0 }}
|
||||
{{ $firstPromo := index $promotions 0 }}
|
||||
{{ $offers := $firstPromo.Array "promotionalOffers" }}
|
||||
{{ if gt (len $offers) 0 }}
|
||||
{{ $firstOffer := index $offers 0 }}
|
||||
Free until {{ slice ($firstOffer.String "endDate") 0 10 }}
|
||||
{{ else }}
|
||||
Free this week!
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
Free this week!
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ else }}
|
||||
<p class="color-negative">Error fetching Epic Games data.</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
'';
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,32 +22,6 @@
|
|||
"udev.log_priority=3"
|
||||
];
|
||||
};
|
||||
|
||||
# vr
|
||||
services.monado = {
|
||||
enable = true;
|
||||
defaultRuntime = true; # Register as default OpenXR runtime
|
||||
};
|
||||
systemd.user.services.monado.environment = {
|
||||
STEAMVR_LH_ENABLE = "1";
|
||||
XRT_COMPOSITOR_COMPUTE = "1";
|
||||
WMR_HANDTRACKING = "0";
|
||||
VIT_SYSTEM_LIBRARY_PATH = "${pkgs.basalt-monado}/lib/libbasalt.so";
|
||||
};
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
package = pkgs.steam.override {
|
||||
extraProfile = ''
|
||||
# Fixes timezones on VRChat
|
||||
unset TZ
|
||||
# Allows Monado/WiVRn to be used
|
||||
export PRESSURE_VESSEL_IMPORT_OPENXR_1_RUNTIMES=1
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
hardware.cpu.amd.updateMicrocode = true;
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
# package = unstable-pkgs.mesa.drivers;
|
||||
|
|
@ -60,7 +34,6 @@
|
|||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
nvitop
|
||||
basalt-monado
|
||||
];
|
||||
hardware.nvidia = {
|
||||
open = true;
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
inputs,
|
||||
nix-monitor,
|
||||
rusic,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
|
@ -39,7 +38,6 @@ in
|
|||
stateVersion = "25.11";
|
||||
|
||||
packages = with pkgs; [
|
||||
ddcutil
|
||||
unstable.gearlever
|
||||
linux-wallpaperengine
|
||||
lmstudio
|
||||
|
|
@ -63,6 +61,7 @@ in
|
|||
kdePackages.kimageformats
|
||||
power-profiles-daemon
|
||||
tail-tray
|
||||
steam
|
||||
helium
|
||||
opencode
|
||||
perf
|
||||
|
|
@ -447,44 +446,21 @@ in
|
|||
services.kdeconnect.indicator = true;
|
||||
services.blueman-applet.enable = true;
|
||||
services.mpris-proxy.enable = true;
|
||||
xdg = {
|
||||
configFile."openxr/1/active_runtime.json".source =
|
||||
"${pkgs.monado}/share/openxr/1/openxr_monado.json";
|
||||
configFile."openvr/openvrpaths.vrpath".text = ''
|
||||
{
|
||||
"config" :
|
||||
[
|
||||
"${config.xdg.dataHome}/Steam/config"
|
||||
],
|
||||
"external_drivers" : null,
|
||||
"jsonid" : "vrpathreg",
|
||||
"log" :
|
||||
[
|
||||
"${config.xdg.dataHome}/Steam/logs"
|
||||
],
|
||||
"runtime" :
|
||||
[
|
||||
"${pkgs.opencomposite}/lib/opencomposite"
|
||||
],
|
||||
"version" : 1
|
||||
}
|
||||
'';
|
||||
mimeApps = {
|
||||
enable = true;
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
|
||||
defaultApplications = {
|
||||
"x-scheme-handler/http" = "zen-beta.desktop";
|
||||
"x-scheme-handler/https" = "zen-beta.desktop";
|
||||
"x-scheme-handler/chrome" = "zen-beta.desktop";
|
||||
"text/html" = "zen-beta.desktop";
|
||||
"application/x-extension-htm" = "zen-beta.desktop";
|
||||
"application/x-extension-html" = "zen-beta.desktop";
|
||||
"application/x-extension-shtml" = "zen-beta.desktop";
|
||||
"application/xhtml+xml" = "zen-beta.desktop";
|
||||
"application/x-extension-xhtml" = "zen-beta.desktop";
|
||||
"application/x-extension-xht" = "zen-beta.desktop";
|
||||
"x-scheme-handler/discord" = "vesktop.desktop";
|
||||
};
|
||||
defaultApplications = {
|
||||
"x-scheme-handler/http" = "zen-beta.desktop";
|
||||
"x-scheme-handler/https" = "zen-beta.desktop";
|
||||
"x-scheme-handler/chrome" = "zen-beta.desktop";
|
||||
"text/html" = "zen-beta.desktop";
|
||||
"application/x-extension-htm" = "zen-beta.desktop";
|
||||
"application/x-extension-html" = "zen-beta.desktop";
|
||||
"application/x-extension-shtml" = "zen-beta.desktop";
|
||||
"application/xhtml+xml" = "zen-beta.desktop";
|
||||
"application/x-extension-xhtml" = "zen-beta.desktop";
|
||||
"application/x-extension-xht" = "zen-beta.desktop";
|
||||
"x-scheme-handler/discord" = "vesktop.desktop";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue