1
0
mirror of https://github.com/kmein/niveum synced 2026-03-30 01:01:10 +02:00

7 Commits

14 changed files with 82 additions and 130 deletions

View File

@@ -12,7 +12,6 @@
in {
imports = [
inputs.self.nixosModules.system-dependent
inputs.self.nixosModules.traadfri
inputs.self.nixosModules.power-action
{
boot.supportedFilesystems = ["ntfs"];
@@ -286,7 +285,6 @@ in {
./sound.nix
./sudo.nix
./tmux.nix
./traadfri.nix
./unclutter.nix
./vscode.nix
./watson.nix

View File

@@ -212,11 +212,7 @@ in {
"${modifier}+r" = "mode resize";
"${modifier}+v" = "split v";
"${modifier}+w" = "layout tabbed";
"${modifier}+q" = "exec ${pkgs.writers.writeDash "newsboat-sync" ''
notify-send --app-name="newsboat" "Updating ..."
newsboat -x reload
notify-send --app-name="newsboat" "Finished updating."
''}";
"${modifier}+q" = "exec ${config.services.clipmenu.package}/bin/clipmenu";
"${modifier}+Return" = "exec ${(defaultApplications pkgs).terminal}";
"${modifier}+t" = "exec ${(defaultApplications pkgs).fileManager}";

View File

@@ -275,7 +275,7 @@ in {
libreoffice
# gnumeric
dia
pandoc
unstablePackages.pandoc
niveumPackages.man-pandoc
typst
# proselint

View File

@@ -1,43 +0,0 @@
{
config,
pkgs,
lib,
...
}: let
inherit (import ../lib) localAddresses;
living-room-id = 131090;
in {
environment.systemPackages = [
(pkgs.writers.writeDashBin "traadfri-party" ''
while true; do
for color in $(traadfri colours | shuf); do
echo "$color"
traadfri group "''${2:-${toString living-room-id}}" --on --colour="$color"
sleep "''${1:-2}"
done
done
'')
];
age.secrets.traadfri-key = {
file = ../secrets/traadfri-key.age;
owner = config.users.users.me.name;
group = config.users.users.me.group;
mode = "400";
};
niveum.traadfri = {
enable = true;
user = "kmein";
host = localAddresses.tradfri;
keyFile = config.age.secrets.traadfri-key.path;
rooms = {
corridor = 131080;
kitchen = 131081;
bedroom = 131082;
living-room = living-room-id;
bedside = 131087;
chain = 131089;
};
};
}

24
flake.lock generated
View File

@@ -541,7 +541,6 @@
"stylix": "stylix",
"telebots": "telebots",
"tinc-graph": "tinc-graph",
"traadfri": "traadfri",
"voidrice": "voidrice",
"wallpaper-generator": "wallpaper-generator",
"wallpapers": "wallpapers"
@@ -682,29 +681,6 @@
"type": "github"
}
},
"traadfri": {
"inputs": {
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs-old"
]
},
"locked": {
"lastModified": 1677165914,
"narHash": "sha256-3N08NabgDwTUy1n5wxpT27iddFrgXW35E1x2UgAKkDQ=",
"owner": "kmein",
"repo": "traadfri",
"rev": "11571116ed5d2c6478c615d663d1f96f57a97ba9",
"type": "github"
},
"original": {
"owner": "kmein",
"repo": "traadfri",
"type": "github"
}
},
"voidrice": {
"flake": false,
"locked": {

View File

@@ -21,7 +21,6 @@
stylix.url = "github:danth/stylix/release-23.05";
telebots.url = "github:kmein/telebots";
tinc-graph.url = "github:kmein/tinc-graph";
traadfri.url = "github:kmein/traadfri";
voidrice.url = "github:Lukesmithxyz/voidrice";
wallpaper-generator.url = "github:pinpox/wallpaper-generator/v1.1";
wallpapers.url = "github:kmein/wallpapers";
@@ -51,8 +50,6 @@
tinc-graph.inputs.flake-utils.follows = "flake-utils";
tinc-graph.inputs.nixpkgs.follows = "nixpkgs";
tinc-graph.inputs.rust-overlay.follows = "rust-overlay";
traadfri.inputs.flake-utils.follows = "flake-utils";
traadfri.inputs.nixpkgs.follows = "nixpkgs-old";
voidrice.flake = false;
wallpaper-generator.inputs.flake-utils.follows = "flake-utils";
wallpapers.flake = false;
@@ -109,7 +106,6 @@
power-action = import modules/power-action.nix;
system-dependent = import modules/system-dependent.nix;
telegram-bot = import modules/telegram-bot.nix;
traadfri = import modules/traadfri.nix;
};
lib = {

View File

@@ -5,7 +5,6 @@
android = "192.168.178.35";
manakish = "192.168.178.29";
tradfri = "192.168.178.28";
officejet = "192.168.178.27";
fritzbox = "192.168.178.1";
}

View File

@@ -1,47 +0,0 @@
{
pkgs,
lib,
config,
inputs,
...
}:
with lib; let
cfg = config.niveum.traadfri;
in {
options.niveum.traadfri = {
enable = mkEnableOption "Trådfri CLI";
user = mkOption {type = types.str;};
host = mkOption {type = types.str;};
keyFile = mkOption {type = types.path;};
rooms = mkOption {
type = types.attrsOf types.int;
default = {};
};
bulbs = mkOption {
type = types.attrsOf types.int;
default = {};
};
};
config = mkIf cfg.enable {
environment.systemPackages =
[
(pkgs.writers.writeDashBin "traadfri" ''
export TRAADFRI_USER="${cfg.user}"
export TRAADFRI_KEY="$(cat ${lib.escapeShellArg cfg.keyFile})"
export TRAADFRI_HUB="${cfg.host}"
${inputs.traadfri.defaultPackage.x86_64-linux}/bin/traadfri $@
'')
]
++ lib.mapAttrsToList (name: value:
pkgs.writers.writeDashBin "traadfri-${name}" ''
exec traadfri --target Room ${toString value} "$@"
'')
cfg.rooms
++ lib.mapAttrsToList (name: value:
pkgs.writers.writeDashBin "traadfri-${name}" ''
exec traadfri --target Bulb ${toString value} "$@"
'')
cfg.bulbs;
};
}

Submodule secrets updated: aac75be4fd...9efd6ac7e1

View File

@@ -24,6 +24,7 @@ secrets/kabsa-specus-privateKey.age
secrets/kabsa-syncthing-cert.age
secrets/kabsa-syncthing-key.age
secrets/kfm-password.age
secrets/ledger-basicAuth.age
secrets/makanek-retiolum-privateKey-ed25519.age
secrets/makanek-retiolum-privateKey-rsa.age
secrets/makanek-specus-privateKey.age
@@ -55,7 +56,6 @@ secrets/telegram-token-menstruation.age
secrets/telegram-token-nachtischsatan.age
secrets/telegram-token-proverb.age
secrets/telegram-token-reverse.age
secrets/traadfri-key.age
secrets/weechat-sec.conf.age
secrets/zaatar-moodle-dl-basicAuth.age
secrets/zaatar-moodle-dl-tokens.json.age

View File

@@ -11,6 +11,7 @@ in {
./matomo.nix
./radio.nix
./panoptikon.nix
./ledger.nix
../../configs/monitoring.nix
../../configs/tor.nix
../../configs/save-space.nix

54
systems/ful/ledger.nix Normal file
View File

@@ -0,0 +1,54 @@
{
config,
pkgs,
...
}: {
services.hledger-web = {
enable = true;
capabilities = {
add = true;
view = true;
manage = false;
};
serveApi = false; # serve only the JSON API
baseUrl = "https://ledger.kmein.de";
journalFiles = [
"privat.journal"
];
};
systemd.services.hledger-backup = {
enable = true;
startAt = "hourly";
wants = ["network-online.target"];
wantedBy = ["multi-user.target"];
script = ''
${pkgs.git}/bin/git config user.name "hledger-web"
${pkgs.git}/bin/git config user.email "hledger-web@${config.networking.hostName}"
${pkgs.git}/bin/git commit -am $(date -Ih)
${pkgs.git}/bin/git pull --rebase
${pkgs.git}/bin/git push
'';
serviceConfig = {
User = "hledger";
Group = "hledger";
WorkingDirectory = config.services.hledger-web.stateDir;
};
};
age.secrets = {
ledger-basicAuth = {
file = ../../secrets/ledger-basicAuth.age;
owner = "nginx";
group = "nginx";
mode = "400";
};
};
services.nginx.virtualHosts."ledger.kmein.de" = {
enableACME = true;
basicAuthFile = config.age.secrets.ledger-basicAuth.path;
forceSSL = true;
locations."/".proxyPass = "http://127.0.0.1:${toString config.services.hledger-web.port}";
};
}

View File

@@ -247,6 +247,12 @@ in {
group = "prometheus";
mode = "440";
};
home-assistant-token = {
file = ../../../secrets/home-assistant-token.age;
owner = "prometheus";
group = "prometheus";
mode = "440";
};
};
services.prometheus.alertmanagers = [
@@ -315,6 +321,14 @@ in {
}
];
}
{
job_name = "home_assistant";
scrape_interval = "60s";
metrics_path = "/api/prometheus";
scheme = "http";
static_configs = [{targets = ["zaatar.r:8123"];}];
bearer_token_file = config.age.secrets.home-assistant-token.path;
}
{
job_name = "ful";
static_configs = [

View File

@@ -1,9 +1,10 @@
{config, ...}: let
port = 8123;
inherit (import ../../lib) restic;
influxPort = 9100;
volumeName = "home-assistant.bak";
in {
networking.firewall.allowedTCPPorts = [port];
networking.firewall.allowedTCPPorts = [port influxPort];
services.nginx.virtualHosts."home.kmein.r" = {
locations."/" = {
@@ -11,6 +12,13 @@ in {
};
};
services.influxdb = {
enable = true;
extraConfig = {
http.bind-address = ":${toString influxPort}";
};
};
services.restic.backups.niveum = {
initialize = true;
inherit (restic) repository;