commit 075e3db8dd3343d230cece2997109bb55ba78598 from: mtmn date: Tue Jul 21 16:01:42 2026 UTC random fixes, loki, etc. commit - 34df38c7207c83a80e4f88140e33d2e8af877f71 commit + 075e3db8dd3343d230cece2997109bb55ba78598 blob - 3677ec78531a77c7d00104428b4ca9328e98a2af blob + 40c1f959c86c57c52accc32e0ef36f420fef31bc --- flake.lock +++ flake.lock @@ -164,11 +164,11 @@ ] }, "locked": { - "lastModified": 1784588016, - "narHash": "sha256-ouZe80aWEhMLVMkqICFDN+JUw+0FJtCr/bh+hHtRtMg=", + "lastModified": 1784690067, + "narHash": "sha256-t86pRs7IPs3RTMPueWvvdcxyTFrctHAv2Jl7jnjsSf8=", "owner": "nix-community", "repo": "home-manager", - "rev": "deeb6b7eb7e0c44ae1819c051ce175bd92a85100", + "rev": "6d8d61567802997f9ec3086b2a837e3ef31fac16", "type": "github" }, "original": { blob - cdb0fb125d64b0bfb072decf1d72f3cbaebac80a blob + 65c4695fc4b0e1abc7a7d486fee6d33403be2153 --- home.nix +++ home.nix @@ -41,6 +41,7 @@ builtins.elem (lib.getName pkg) [ "xnviewmp" "tarsnap" + "winbox" ]; nix = { blob - 90e1e523ff9499702fd77d3fed84785dd024183c blob + 0c19f876b3ac142fb09bccbb6507d8baacda4689 Binary files hosts/nixaran/configuration.nix and hosts/nixaran/configuration.nix differ blob - 1cecb4b0beab7cccba7e2cf7d22ffd0a9e78f87a blob + ea419444a3a9d8fbe34d9f69ec9e8c90b3e39e8c --- hosts/void/default.nix +++ hosts/void/default.nix @@ -90,6 +90,7 @@ boring oha rathole + winbox ]; media = [ @@ -180,6 +181,7 @@ picard xnviewmp tigervnc + gittyup ]; llm = [ blob - b885959136cef2078a895995944c708a0d60c2cd blob + faaec611de4cacda20f5c12b7064f2d068d78817 --- hosts/void/overlays/home/nbrc +++ hosts/void/overlays/home/nbrc @@ -1,5 +1,5 @@ #!/usr/bin/env bash -export EDITOR="emacsclient -n" +export EDITOR="emacs" export NB_DEFAULT_EXTENSION="${NB_DEFAULT_EXTENSION:-org}" export NB_SYNTAX_THEME="${NB_SYNTAX_THEME:-base16}" export NB_COLOR_THEME="${NB_COLOR_THEME:-smoke}" blob - 837a5010228521a56e7caca4b08dde3dc90c17d6 blob + 561ba65bc279b4a58c40003ed71888359da22734 --- modules/mixins/dotfiles/bin/bum +++ modules/mixins/dotfiles/bin/bum @@ -6,11 +6,6 @@ REGION="$(pass show bum/region)" BASE="$HOME/misc/mnt/puck" -tailscale status >/dev/null 2>&1 || { - echo "tailscale not up" >&2 - exit 1 -} - bucket=$( aws --profile "$PROFILE" --endpoint-url "$ENDPOINT" --region "$REGION" s3 ls 2>/dev/null | awk '{print $NF}' | blob - d40a8b614bde6e36e2c67dbde1163912ca7bb7fd blob + 957acd3923d0ad08c8b8285b102a34836b50e078 --- modules/mixins/dotfiles/bin/givecover +++ modules/mixins/dotfiles/bin/givecover @@ -3,16 +3,18 @@ process_file() { local file="$1" - local COVER_NAMES=("cover.jpg" "Cover.jpg" "cover.png" "Cover.png") local dir dir=$(dirname "$file") + shopt -s nocaseglob + local COVER_NAMES=("$dir"/cover.* "$dir"/front.* "$dir"/folder.*) local cover="" for name in "${COVER_NAMES[@]}"; do - if [ -f "$dir/$name" ]; then - cover="$dir/$name" + if [[ ${name,,} =~ (cover|front|folder)\.(jpg|jpeg|png)$ ]] && [ -f "$name" ]; then + cover="$name" break fi done + shopt -u nocaseglob if [ -z "$cover" ]; then echo "[—] $file (no cover found in $dir)" blob - 759cb26226059447aac845d82a50f5b60903dc38 blob + 6a78ab59255fda852a702e8d05216b7cd8f15e99 --- modules/mixins/dotfiles/config/aerc/aerc.conf +++ modules/mixins/dotfiles/config/aerc/aerc.conf @@ -30,4 +30,4 @@ text/html=pandoc -f html -t plain x-scheme-handler/http*=printf '%s' {} | wl-copy [hooks] -mail-received=pimsync sync contacts >/dev/null 2>&1 & [ "$AERC_ACCOUNT" = "fastmail" ] && [ "$AERC_FOLDER" != "Spam" ] && [ "$AERC_FOLDER" != "Trash" ] && [ "$AERC_FROM_ADDRESS" != "notifications@github.com" ] && notify-send -a aerc "$AERC_FROM_ADDRESS" "$AERC_SUBJECT" || true +mail-received=pimsync sync contacts >/dev/null 2>&1 & [ "$AERC_ACCOUNT" = "fastmail" ] && [ "$AERC_FOLDER" != "Spam" ] && [ "$AERC_FOLDER" != "Trash" ] && [ "$AERC_FOLDER" != "misc/freebsd" ] && [ "$AERC_FROM_ADDRESS" != "notifications@github.com" ] && notify-send -a aerc "$AERC_FROM_ADDRESS" "$AERC_SUBJECT" || true blob - bb9cbedee9b07dbcb63a4638b92888161133f101 blob + 2d13389ae309f841e6033fab4dd11276e74ee727 --- modules/services/monitoring/loki.nix +++ modules/services/monitoring/loki.nix @@ -17,6 +17,11 @@ in { default = 3100; description = "Port for Loki HTTP listener"; }; + pushPort = lib.mkOption { + type = lib.types.port; + default = 3101; + description = "Tailnet port for Alloy's remote log-push receiver"; + }; dataDir = lib.mkOption { type = lib.types.str; default = "/var/lib/loki"; @@ -60,14 +65,20 @@ in { services.alloy = { enable = true; configPath = pkgs.writeText "alloy-config.river" '' - // ── Logs ──────────────────────────────────────────────────────────── - loki.write "default" { endpoint { url = "http://127.0.0.1:${toString cfg.loki.port}/loki/api/v1/push" } } + loki.source.api "remote_push" { + http { + listen_address = "100.64.0.2" + listen_port = ${toString cfg.loki.pushPort} + } + forward_to = [loki.write.default.receiver] + } + loki.relabel "journal" { forward_to = [] @@ -124,6 +135,45 @@ in { forward_to = [loki.write.default.receiver] tail_from_end = true } + + loki.relabel "openbsd_syslog" { + forward_to = [] + + rule { + source_labels = ["__syslog_message_app_name"] + target_label = "app" + } + + rule { + source_labels = ["__syslog_message_severity"] + target_label = "level" + } + + rule { + source_labels = ["__syslog_message_facility"] + target_label = "facility" + } + } + + loki.source.syslog "openbsd" { + listener { + // OpenBSD syslogd forwards in traditional RFC3164 format, whose + // timestamps carry no timezone so we stamp on receive. + address = "100.64.0.2:1514" + protocol = "tcp" + syslog_format = "rfc3164" + use_incoming_timestamp = false + labels = { + job = "openbsd-syslog", + // RFC3164 from OpenBSD doesn't yield a parseable hostname here, + // and this listener only serves helios, so label it statically. + host = "helios", + } + } + + relabel_rules = loki.relabel.openbsd_syslog.rules + forward_to = [loki.write.default.receiver] + } ''; }; };