diff --git a/runtime/history/nfro-260806-1630-9c2f.json b/runtime/history/nfro-260806-1630-9c2f.json new file mode 100644 index 0000000..49257ab --- /dev/null +++ b/runtime/history/nfro-260806-1630-9c2f.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "nfro-260806-1630-9c2f", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "verify", + "component": "newfi-portal", + "started_at_utc": "2026-08-06T13:44:40Z", + "finished_at_utc": "2026-08-06T13:44:51Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", + "command_sha256": "0f5beea2185628e7b6e33ef92110753cad5b9a009ab6203ce75c06fe1bca17cd", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": false, + "result_contract_valid": true, + "result_contract_status": null, + "result_contract_error": null, + "command_rc": 0, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "738dc788a996093e6210ccfb7ae6ff47b280283a48c7bc4f053efe73b3bddf43", + "sanitized_output_sha256": "5933d6e26c09a66ec65d3698e388094d233f305a883381a7e3a83bac5cff8790", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "HOMELAB_READ_ONLY_INVENTORY_BEGIN\ncommand_id=nfro-260806-1630-9c2f\ncomponent=newfi-portal\nstarted_at_utc=2026-08-06T13:44:40Z\nread_only=true\nproduction_change_declared=false\n\n===== HOST IDENTITY =====\n\n--- date and timezone ---\nCOMMAND: date -Is 2>/dev/null || date; date -u -Is 2>/dev/null || date -u; printf \"TZ=%s\\n\" \"${TZ:-}\"\n2026-08-06T16:44:40+03:00\n2026-08-06T13:44:40+00:00\nTZ=Europe/Moscow\n[command_rc=0]\n\n--- identity ---\nCOMMAND: hostname -f 2>/dev/null || hostname; id; whoami; pwd; umask\npve01.gram1.ru\nuid=0(root) gid=990(homelab-command-portal) groups=990(homelab-command-portal)\nroot\n/\n0077\n[command_rc=0]\n\n--- operating system ---\nCOMMAND: uname -a; test -r /etc/os-release && cat /etc/os-release || true\nLinux pve01 7.0.12-1-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.12-1 (2026-06-09T21:07Z) x86_64 GNU/Linux\nPRETTY_NAME=\"Debian GNU/Linux 13 (trixie)\"\nNAME=\"Debian GNU/Linux\"\nVERSION_ID=\"13\"\nVERSION=\"13 (trixie)\"\nVERSION_CODENAME=trixie\nDEBIAN_VERSION_FULL=13.5\nID=debian\nHOME_URL=\"https://www.debian.org/\"\nSUPPORT_URL=\"https://www.debian.org/support\"\nBUG_REPORT_URL=\"https://bugs.debian.org/\"\n[command_rc=0]\n\n--- resources ---\nCOMMAND: uptime 2>/dev/null || true; free -h 2>/dev/null || true; df -hT 2>/dev/null || df -h\n 16:44:40 up 9 days, 2:39, 0 users, load average: 0.42, 0.38, 0.38\n total used free shared buff/cache available\nMem: 31Gi 22Gi 3.8Gi 169Mi 5.0Gi 8.3Gi\nSwap: 9Gi 0B 9Gi\nFilesystem Type Size Used Avail Use% Mounted on\n/dev/mapper/pve-root ext4 98G 15G 79G 16% /\nudev devtmpfs 15G 0 15G 0% /dev\ntmpfs tmpfs 16G 66M 16G 1% /dev/shm\ntmpfs tmpfs 3.2G 3.8M 3.2G 1% /run\ntmpfs tmpfs 5.0M 0 5.0M 0% /run/lock\nefivarfs efivarfs 192K 135K 53K 72% /sys/firmware/efi/efivars\ntmpfs tmpfs 16G 89M 16G 1% /tmp\n/dev/nvme0n1p2 vfat 1022M 9.1M 1013M 1% /boot/efi\n/dev/mapper/pve-homelab--staging ext4 295G 148G 132G 53% /mnt/staging\n/dev/fuse fuse 128M 1.4M 127M 2% /etc/pve\noverlay overlay 98G 15G 79G 16% /var/lib/containers/storage/overlay/c638354547700f5f06ca229429e8a557150144d8c21fb899d880f76665f74690/merged\nshm tmpfs 63M 0 63M 0% /var/lib/containers/storage/overlay-containers/aa350cac62aa0235a41c70f8650092e69fa92e815c08c8e4e2aeea65a8accc46/userdata/shm\n[command_rc=0]\n\n--- processes relevant to portal ---\nCOMMAND: ps auxww 2>/dev/null | grep -Ei \"[g]itea|[x]enforo|[n]ewfi|[n]ginx|[p]hp-fpm|[m]ariadb|[m]ysqld|[r]edis|[k]3s|[k]ube\" | head -300 || true\nroot 3334259 0.0 0.0 7620 3540 ? Ss 16:44 0:00 bash /usr/local/sbin/homelab-chat-run nfro-260806-1630-9c2f verify newfi-portal -- /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh\nroot 3334282 0.0 0.0 6016 1948 ? S 16:44 0:00 timeout --foreground --preserve-status 900 /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh\nroot 3334283 0.0 0.0 7620 3524 ? S 16:44 0:00 /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh\nroot 3334319 0.0 0.0 7620 2024 ? S 16:44 0:00 /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh\n[command_rc=0]\n\n--- listeners ---\nCOMMAND: ss -lntup 2>/dev/null | head -300 || netstat -lntup 2>/dev/null | head -300 || true\nNetid State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess \nudp UNCONN 0 0 0.0.0.0:51820 0.0.0.0:* \nudp UNCONN 0 0 127.0.0.1:3128 0.0.0.0:* users:((\"netbird\",pid=1286,fd=17)) \nudp UNCONN 0 0 [PRIVATE_IP]:5405 0.0.0.0:* users:((\"corosync\",pid=1741,fd=28)) \nudp UNCONN 0 0 100.100.131.41:53 0.0.0.0:* users:((\"netbird\",pid=1286,fd=24)) \nudp UNCONN 0 0 0.0.0.0:111 0.0.0.0:* users:((\"rpcbind\",pid=883,fd=5),(\"systemd\",pid=1,fd=311)) \nudp UNCONN 0 0 127.0.0.1:323 0.0.0.0:* users:((\"chronyd\",pid=1177,fd=5)) \nudp UNCONN 0 0 [::]:51820 [::]:* \nudp UNCONN 0 0 [::]:111 [::]:* users:((\"rpcbind\",pid=883,fd=7),(\"systemd\",pid=1,fd=313)) \nudp UNCONN 0 0 [::1]:323 [::]:* users:((\"chronyd\",pid=1177,fd=6)) \ntcp LISTEN 0 100 127.0.0.1:25 0.0.0.0:* users:((\"master\",pid=1521,fd=13)) \ntcp LISTEN 0 4096 127.0.0.1:85 0.0.0.0:* users:((\"pvedaemon worke\",pid=3306169,fd=6),(\"pvedaemon worke\",pid=2967018,fd=6),(\"pvedaemon worke\",pid=2621560,fd=6),(\"pvedaemon\",pid=1799,fd=6))\ntcp LISTEN 0 5 0.0.0.0:8099 0.0.0.0:* users:((\"python3\",pid=1279,fd=3)) \ntcp LISTEN 0 16 127.0.0.1:3493 0.0.0.0:* users:((\"upsd\",pid=1820,fd=4)) \ntcp LISTEN 0 4096 100.100.131.41:53 0.0.0.0:* users:((\"netbird\",pid=1286,fd=25)) \ntcp LISTEN 0 5 127.0.0.1:18787 0.0.0.0:* users:((\"python3\",pid=3558039,fd=6)) \ntcp LISTEN 0 4096 0.0.0.0:111 0.0.0.0:* users:((\"rpcbind\",pid=883,fd=4),(\"systemd\",pid=1,fd=310)) \ntcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((\"sshd\",pid=1327,fd=6)) \ntcp LISTEN 0 4096 127.0.0.1:8086 0.0.0.0:* users:((\"conmon\",pid=1583,fd=5)) \ntcp LISTEN 0 5 [PRIVATE_IP]:18788 0.0.0.0:* users:((\"python3\",pid=1282,fd=3)) \ntcp LISTEN 0 5 0.0.0.0:9101 0.0.0.0:* users:((\"python3\",pid=1278,fd=3)) \ntcp LISTEN 0 16 [PRIVATE_IP]:3493 0.0.0.0:* users:((\"upsd\",pid=1820,fd=5)) \ntcp LISTEN 0 5 [PRIVATE_IP]:18094 0.0.0.0:* users:((\"python3\",pid=1131485,fd=3)) \ntcp LISTEN 0 5 [PRIVATE_IP]:18095 0.0.0.0:* users:((\"python3\",pid=1516647,fd=3)) \ntcp LISTEN 0 4096 *:8006 *:* users:((\"pveproxy worker\",pid=3306165,fd=6),(\"pveproxy worker\",pid=3199145,fd=6),(\"pveproxy worker\",pid=3074659,fd=6),(\"pveproxy\",pid=1846,fd=6)) \ntcp LISTEN 0 4096 [::]:111 [::]:* users:((\"rpcbind\",pid=883,fd=6),(\"systemd\",pid=1,fd=312)) \ntcp LISTEN 0 128 [::]:22 [::]:* users:((\"sshd\",pid=1327,fd=7)) \ntcp LISTEN 0 4096 *:3128 *:* users:((\"spiceproxy work\",pid=381351,fd=6),(\"spiceproxy\",pid=1855,fd=6)) \ntcp LISTEN 0 100 [::1]:25 [::]:* users:((\"master\",pid=1521,fd=14)) \ntcp LISTEN 0 4096 *:9100 *:* users:((\"prometheus-node\",pid=980,fd=3)) \n[command_rc=0]\n\n--- systemd services ---\nCOMMAND: systemctl list-units --type=service --all --no-pager 2>/dev/null | grep -Ei \"gitea|newfi|xenforo|nginx|php|maria|mysql|redis|docker|containerd|k3s|kube\" | head -300 || true\n● docker.service not-found inactive dead docker.service\n homelab-docker-health.service loaded inactive dead Homelab Docker health readonly collector\n[command_rc=0]\n\n--- systemd timers ---\nCOMMAND: systemctl list-timers --all --no-pager 2>/dev/null | grep -Ei \"backup|gitea|newfi|xenforo|cert|renew|database|mysql|maria\" | head -300 || true\nFri 2026-08-07 00:00:00 MSK 7h Thu 2026-08-06 00:00:07 MSK 16h ago dpkg-db-backup.timer dpkg-db-backup.service\n[command_rc=0]\n\n===== DNS HTTP TLS FOR NEWFI.RU =====\n\n--- resolver configuration ---\nCOMMAND: cat /etc/resolv.conf 2>/dev/null || true; getent hosts newfi.ru 2>/dev/null || true; getent ahosts newfi.ru 2>/dev/null || true\n# Generated by NetBird\n# The original file can be restored from /etc/resolv.conf.original.netbird\n\nsearch netbird.selfhosted gram1.ru\nnameserver 100.100.131.41\n95.84.154.183 newfi.ru\n95.84.154.183 STREAM newfi.ru\n95.84.154.183 DGRAM \n95.84.154.183 RAW \n[command_rc=0]\n\n--- DNS records ---\nCOMMAND: if command -v dig >/dev/null 2>&1; then for t in A AAAA CNAME NS MX TXT SOA CAA; do echo \"### $t\"; timeout 15 dig +time=3 +tries=1 newfi.ru \"$t\"; done; elif command -v nslookup >/dev/null 2>&1; then nslookup newfi.ru; else echo \"NO_DNS_TOOL\"; fi\n### A\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru A\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32658\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tA\n\n;; ANSWER SECTION:\nnewfi.ru.\t\t134\tIN\tA\t95.84.154.183\n\n;; Query time: 1 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 61\n\n### AAAA\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru AAAA\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1055\n;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tAAAA\n\n;; AUTHORITY SECTION:\nnewfi.ru.\t\t1634\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800\n\n;; Query time: 1 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 121\n\n### CNAME\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru CNAME\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12283\n;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tCNAME\n\n;; AUTHORITY SECTION:\nnewfi.ru.\t\t1800\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800\n\n;; Query time: 7 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 121\n\n### NS\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru NS\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57211\n;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tNS\n\n;; ANSWER SECTION:\nnewfi.ru.\t\t6873\tIN\tNS\tvern.ns.cloudflare.com.\nnewfi.ru.\t\t6873\tIN\tNS\tsara.ns.cloudflare.com.\n\n;; Query time: 1 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 125\n\n### MX\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru MX\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36967\n;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tMX\n\n;; AUTHORITY SECTION:\nnewfi.ru.\t\t1800\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800\n\n;; Query time: 7 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 121\n\n### TXT\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru TXT\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14684\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tTXT\n\n;; ANSWER SECTION:\nnewfi.ru.\t\t300\tIN\tTXT\t\"v=spf1 -all\"\n\n;; Query time: 8 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 69\n\n### SOA\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru SOA\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56593\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tSOA\n\n;; ANSWER SECTION:\nnewfi.ru.\t\t1800\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800\n\n;; Query time: 8 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 121\n\n### CAA\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru CAA\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42605\n;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tCAA\n\n;; AUTHORITY SECTION:\nnewfi.ru.\t\t1800\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800\n\n;; Query time: 8 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 121\n\n[command_rc=0]\n\n--- HTTP probe ---\nCOMMAND: if command -v curl >/dev/null 2>&1; then for u in http://newfi.ru/ https://newfi.ru/ https://www.newfi.ru/; do echo \"### $u\"; timeout 25 curl -k -sS -L --max-redirs 5 --connect-timeout 7 --max-time 20 -D - -o /dev/null \"$u\" || true; done; else echo \"NO_CURL\"; fi\n### http://newfi.ru/\nHTTP/1.1 301 Moved Permanently\nDate: Thu, 06 Aug 2026 13:44:40 GMT\nContent-Type: text/html\nContent-Length: 140\nConnection: keep-alive\nLocation: https://newfi.ru/\nOrigin-Agent-Cluster: ?1\nX-DNS-Prefetch-Control: off\nX-Content-Type-Options: nosniff\nX-Permitted-Cross-Domain-Policies: none\nReferrer-Policy: strict-origin-when-cross-origin\n\nHTTP/2 200 \ndate: Thu, 06 Aug 2026 13:44:40 GMT\ncontent-type: text/html\ncontent-length: 3999\nvary: Accept-Encoding\nlast-modified: Wed, 01 Jul 2026 16:54:46 GMT\norigin-agent-cluster: ?1\nx-dns-prefetch-control: off\nx-content-type-options: nosniff\nx-permitted-cross-domain-policies: none\nreferrer-policy: strict-origin-when-cross-origin\nx-parked-domains: managed\n\n### https://newfi.ru/\nHTTP/2 200 \ndate: Thu, 06 Aug 2026 13:44:40 GMT\ncontent-type: text/html\ncontent-length: 3999\nvary: Accept-Encoding\nlast-modified: Wed, 01 Jul 2026 16:54:46 GMT\norigin-agent-cluster: ?1\nx-dns-prefetch-control: off\nx-content-type-options: nosniff\nx-permitted-cross-domain-policies: none\nreferrer-policy: strict-origin-when-cross-origin\nx-parked-domains: managed\n\n### https://www.newfi.ru/\nHTTP/2 200 \ndate: Thu, 06 Aug 2026 13:44:43 GMT\ncontent-type: text/html\ncontent-length: 3999\nvary: Accept-Encoding\nlast-modified: Wed, 01 Jul 2026 16:54:46 GMT\norigin-agent-cluster: ?1\nx-dns-prefetch-control: off\nx-content-type-options: nosniff\nx-permitted-cross-domain-policies: none\nreferrer-policy: strict-origin-when-cross-origin\nx-parked-domains: managed\n\n[command_rc=0]\n\n--- HTTPS body prefix ---\nCOMMAND: if command -v curl >/dev/null 2>&1; then timeout 25 curl -k -sS -L --max-redirs 5 --connect-timeout 7 --max-time 20 --range 0-65535 https://newfi.ru/ | head -c 65536; printf \"\\n\"; else echo \"NO_CURL\"; fi\n\n\n\n \n \n \n Домен припаркован\n \n\n\n
\n
\n
PARKED_PAGE_OK · homelab
\n

Здесь скоро появится новый проект.

\n

Домен уже подключён к инфраструктуре, но основной сервис пока не опубликован. Сейчас это аккуратная техническая заглушка для свободных доменов.

\n
\n
\n \n
\n\n\n\n[command_rc=0]\n\n--- TLS certificate ---\nCOMMAND: if command -v openssl >/dev/null 2>&1; then timeout 20 sh -c \"printf \\\"\\\" | openssl s_client -connect newfi.ru:443 -servername newfi.ru 2>/dev/null | openssl x509 -noout -subject -issuer -serial -dates -ext subjectAltName\"; else echo \"NO_OPENSSL\"; fi\nsubject=CN=newfi.ru\nissuer=C=US, O=Let's Encrypt, CN=YE1\nserial=05857CDD0AC0102BE9D7AA729B23F41AA698\nnotBefore=Jul 1 14:53:39 2026 GMT\nnotAfter=Sep 29 14:53:38 2026 GMT\nX509v3 Subject Alternative Name: \n DNS:newfi.ru, DNS:www.newfi.ru\n[command_rc=0]\n\n===== CONTAINER RUNTIMES =====\n\n--- tool versions ---\nCOMMAND: for c in git curl jq python3 php docker podman kubectl helm k3s crictl nerdctl mysql mariadb redis-cli openssl; do if command -v \"$c\" >/dev/null 2>&1; then printf \"%-12s %s\\n\" \"$c\" \"$(command -v \"$c\")\"; case \"$c\" in git) git --version;; curl) curl --version | head -1;; jq) jq --version;; python3) python3 --version;; php) php -v | head -2;; docker) docker --version;; podman) podman --version;; kubectl) kubectl version --client 2>/dev/null || true;; helm) helm version --short 2>/dev/null || true;; k3s) k3s --version | head -2;; crictl) crictl --version;; nerdctl) nerdctl --version;; mysql|mariadb) \"$c\" --version;; redis-cli) redis-cli --version;; openssl) openssl version;; esac; fi; done\ngit /usr/bin/git\ngit version 2.47.3\ncurl /usr/bin/curl\ncurl 8.14.1 (x86_64-pc-linux-gnu) libcurl/8.14.1 OpenSSL/3.5.6 zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.64.0 nghttp3/1.8.0 librtmp/2.3 OpenLDAP/2.6.10\njq /usr/bin/jq\njq-1.7\npython3 /usr/bin/python3\nPython 3.13.5\npodman /usr/bin/podman\npodman version 5.4.2\nopenssl /usr/bin/openssl\nOpenSSL 3.5.6 7 Apr 2026 (Library: OpenSSL 3.5.6 7 Apr 2026)\n[command_rc=0]\n\n--- Docker containers ---\nCOMMAND: if command -v docker >/dev/null 2>&1; then docker ps -a --no-trunc --format \"table {{.ID}}\\t{{.Names}}\\t{{.Image}}\\t{{.Status}}\\t{{.Ports}}\"; docker volume ls; docker network ls; else echo \"NO_DOCKER\"; fi\nNO_DOCKER\n[command_rc=0]\n\n--- Docker relevant mounts ---\nCOMMAND: if command -v docker >/dev/null 2>&1; then for c in $(docker ps -a --format \"{{.Names}}\" | grep -Ei \"gitea|newfi|xenforo|maria|mysql|redis\" | head -50); do echo \"### $c\"; docker inspect --format \"Image={{.Config.Image}} Restart={{.HostConfig.RestartPolicy.Name}} Mounts={{range .Mounts}}{{.Type}}:{{.Source}}->{{.Destination}};{{end}}\" \"$c\" 2>/dev/null || true; done; else echo \"NO_DOCKER\"; fi\nNO_DOCKER\n[command_rc=0]\n\n--- Podman containers ---\nCOMMAND: if command -v podman >/dev/null 2>&1; then podman ps -a --no-trunc; podman volume ls; else echo \"NO_PODMAN\"; fi\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\naa350cac62aa0235a41c70f8650092e69fa92e815c08c8e4e2aeea65a8accc46 ghcr.io/analogj/scrutiny:latest-omnibus /init 9 days ago Up 9 days 127.0.0.1:8086->8080/tcp scrutiny\n[command_rc=0]\n\n===== KUBERNETES INVENTORY =====\nKUBECTL_NOT_AVAILABLE\n\n===== GITEA DISCOVERY =====\n\n--- Gitea binary and safe configuration keys ---\nCOMMAND: \n if command -v gitea >/dev/null 2>&1; then gitea --version; fi\n find /etc /var/lib/gitea /data /srv /opt /home -maxdepth 6 -type f \\\n \\( -name app.ini -o -name gitea.ini \\) -print 2>/dev/null | head -100 \\\n | while read -r f; do\n echo \"### CONFIG $f\"\n stat -c \"%A %U:%G %s %y %n\" \"$f\" 2>/dev/null || true\n grep -nE \"^[[:space:]]*(APP_NAME|RUN_USER|RUN_MODE|DOMAIN|SSH_DOMAIN|HTTP_ADDR|HTTP_PORT|ROOT_URL|DISABLE_REGISTRATION|INSTALL_LOCK|DB_TYPE|PATH|LFS_START_SERVER|OFFLINE_MODE)[[:space:]]*=\" \"$f\" 2>/dev/null || true\n done\n\n[command_rc=0]\n\n--- Gitea API probes ---\nCOMMAND: \n if command -v curl >/dev/null 2>&1; then\n for base in \\\n http://127.0.0.1:3000 \\\n http://127.0.0.1:3001 \\\n http://gitea:3000 \\\n http://gitea-http:3000 \\\n http://gitea-http.gitea.svc.cluster.local:3000 \\\n https://git.gram1.ru\n do\n echo \"### BASE $base\"\n timeout 12 curl -k -fsS --connect-timeout 4 --max-time 10 \"$base/api/v1/version\" || true\n printf \"\\n\"\n for q in newfi newfdom newf xenforo; do\n echo \"QUERY=$q\"\n timeout 15 curl -k -fsS -G --connect-timeout 4 --max-time 12 \\\n --data-urlencode \"q=$q\" --data-urlencode \"limit=50\" \\\n \"$base/api/v1/repos/search\" || true\n printf \"\\n\"\n done\n done\n else\n echo \"NO_CURL\"\n fi\n\n### BASE http://127.0.0.1:3000\ncurl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server\n\nQUERY=newfi\ncurl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server\n\nQUERY=newfdom\ncurl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server\n\nQUERY=newf\ncurl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server\n\nQUERY=xenforo\ncurl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server\n\n### BASE http://127.0.0.1:3001\ncurl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server\n\nQUERY=newfi\ncurl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server\n\nQUERY=newfdom\ncurl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server\n\nQUERY=newf\ncurl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server\n\nQUERY=xenforo\ncurl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server\n\n### BASE http://gitea:3000\ncurl: (6) Could not resolve host: gitea\n\nQUERY=newfi\ncurl: (6) Could not resolve host: gitea\n\nQUERY=newfdom\ncurl: (6) Could not resolve host: gitea\n\nQUERY=newf\ncurl: (6) Could not resolve host: gitea\n\nQUERY=xenforo\ncurl: (6) Could not resolve host: gitea\n\n### BASE http://gitea-http:3000\ncurl: (6) Could not resolve host: gitea-http\n\nQUERY=newfi\ncurl: (6) Could not resolve host: gitea-http\n\nQUERY=newfdom\ncurl: (6) Could not resolve host: gitea-http\n\nQUERY=newf\ncurl: (6) Could not resolve host: gitea-http\n\nQUERY=xenforo\ncurl: (6) Could not resolve host: gitea-http\n\n### BASE http://gitea-http.gitea.svc.cluster.local:3000\ncurl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local\n\nQUERY=newfi\ncurl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local\n\nQUERY=newfdom\ncurl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local\n\nQUERY=newf\ncurl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local\n\nQUERY=xenforo\ncurl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local\n\n### BASE https://git.gram1.ru\n{\"version\":\"1.26.2\"}\nQUERY=newfi\n{\"ok\":true,\"data\":[]}\nQUERY=newfdom\n{\"ok\":true,\"data\":[]}\nQUERY=newf\n{\"ok\":true,\"data\":[]}\nQUERY=xenforo\n{\"ok\":true,\"data\":[]}\n[command_rc=0]\n\n===== GITEA REPOSITORY FILESYSTEM =====\n\n--- known repository roots ---\nCOMMAND: \n for d in \\\n /var/lib/gitea/data/gitea-repositories \\\n /var/lib/gitea/gitea-repositories \\\n /data/git/repositories \\\n /data/gitea/gitea-repositories \\\n /srv/gitea/data/gitea-repositories \\\n /home/git/gitea-repositories\n do\n if [ -d \"$d\" ]; then\n echo \"ROOT=$d\"\n stat -c \"%A %U:%G %s %y %n\" \"$d\" 2>/dev/null || true\n find \"$d\" -maxdepth 3 -type d -name \"*.git\" -print 2>/dev/null | sort | head -1000\n fi\n done\n\n[command_rc=0]\n\n===== WORKING COPY DISCOVERY =====\n\n--- candidate Git worktrees ---\nCOMMAND: \n for root in /srv /opt /var/www /data /home /workspace /workspaces /mnt; do\n [ -d \"$root\" ] || continue\n find \"$root\" -maxdepth 7 -type d -name .git -print 2>/dev/null\n done | sed \"s#/.git$##\" | sort -u | grep -Ei \"newfi|newfdom|newf|xenforo|portal\" | head -200\n\nsed: -e expression #1, char 9: unterminated `s' command\n[command_rc=0]\n\n===== XENFORO DISCOVERY =====\n\n--- XenForo files ---\nCOMMAND: \n for root in /srv /opt /var/www /data /home /workspace /workspaces /mnt; do\n [ -d \"$root\" ] || continue\n find \"$root\" -maxdepth 9 -type f -path \"*/src/XF.php\" -print 2>/dev/null\n done | sort -u | head -100\n\n[command_rc=0]\n\n===== KUBERNETES POD INTERNAL READ-ONLY PROBES =====\n\n===== BACKUP AND STORAGE EVIDENCE =====\n\n--- backup directories metadata ---\nCOMMAND: \n for d in /backup /backups /var/backups /srv/backup /srv/backups /data/backup /data/backups /mnt/backup /mnt/backups; do\n [ -d \"$d\" ] || continue\n echo \"### $d\"\n stat -c \"%A %U:%G %s %y %n\" \"$d\" 2>/dev/null || true\n find \"$d\" -maxdepth 3 -type f -printf \"%TY-%Tm-%TdT%TH:%TM:%TS %s %p\\n\" 2>/dev/null \\\n | sort -r | head -200\n done\n\n### /var/backups\ndrwxr-xr-x root:root 4096 2026-08-05 19:26:22.485925089 +0300 /var/backups\n2026-08-05T19:26:22.4871881170 1676 /var/backups/skladchik-moderator-assistant/HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z/manifest.json\n2026-08-05T18:23:38.8848347980 1064 /var/backups/homelab-cluster-admin/HOMELAB-CLUSTER-ADMIN-UPDATES-V30-INDEX-WATCHER-ATOMIC-CHANGE-20260805T151800Z/manifest.json\n2026-08-05T18:03:06.2838781070 1064 /var/backups/homelab-cluster-admin/HOMELAB-CLUSTER-ADMIN-UPDATES-V28-MEMBERS-FIXED-ATOMIC-CHANGE-20260805T150500Z/manifest.json\n2026-07-24T13:17:50.1829042900 9886 /var/backups/homelab-vm-local-dumps-2cloud/desired.pre-drain-442.sh\n2026-07-24T13:17:50.1767855920 9886 /var/backups/homelab-vm-local-dumps-2cloud/runtime.pre-drain-442.sh\n2026-07-24T04:27:35.8455169720 121 /var/backups/gitea-relay/gitea-20260724T012733Z.zip.sha256\n2026-07-24T04:27:35.7305152140 38476973 /var/backups/gitea-relay/gitea-20260724T012733Z.zip\n2026-07-23T04:30:17.1876546570 121 /var/backups/gitea-relay/gitea-20260723T013014Z.zip.sha256\n2026-07-23T04:30:17.0676528050 35213513 /var/backups/gitea-relay/gitea-20260723T013014Z.zip\n2026-07-22T23:44:23.5207990880 1176 /var/backups/homelab-reader/homelab-chat-run-linked.pre-270.20260722T205130Z\n2026-07-22T23:38:55.8093299500 686 /var/backups/homelab-reader/homelab-chat-run-linked.pre-267.20260722T204423Z\n2026-07-22T17:07:19.0811873920 482 /var/backups/homelab-reference/OPERATIONS.md.before-tail-closeout.20260722T140719Z\n2026-07-22T11:03:47.1137759030 561 /var/backups/homelab-reference/20260722T081210949547Z/README.md\n2026-07-22T11:03:47.1132880790 1471 /var/backups/homelab-reference/20260722T081210949547Z/manifest.json\n2026-07-22T10:34:58.6978834310 603 /var/backups/homelab-reference/20260722T080015404968Z/README.md\n2026-07-22T10:34:58.6966043260 1743 /var/backups/homelab-reference/20260722T080015404968Z/manifest.json\n2026-07-18T13:52:30.4157800660 20463 /var/backups/skladchik-reports-monitor-supervisor/supervisor.pre-cookie-race-fix-423.py\n2026-07-06T18:49:49.7406450500 7272 /var/backups/homelab-vm-local-dumps-2cloud/runtime.pre-434.sh\n2026-07-06T18:49:49.7406450500 7272 /var/backups/homelab-vm-local-dumps-2cloud/desired.pre-434.sh\n2026-06-30T16:24:58.9872367120 819301 /var/backups/dpkg.status.0\n2026-06-29T21:03:45.6401889080 221140 /var/backups/dpkg.status.1.gz\n2026-06-29T21:03:44.2631678590 6098 /var/backups/apt.extended_states.0\n2026-06-24T11:54:21.1275314850 220453 /var/backups/dpkg.status.2.gz\n2026-06-23T03:39:15.2281940980 219584 /var/backups/dpkg.status.3.gz\n2026-06-23T03:38:46.5077573390 810 /var/backups/apt.extended_states.1.gz\n2026-06-21T01:09:08.3504122800 219552 /var/backups/dpkg.status.4.gz\n2026-06-21T01:08:56.4252370290 799 /var/backups/apt.extended_states.2.gz\n2026-06-20T23:27:28.6047672330 209054 /var/backups/dpkg.status.5.gz\n2026-06-17T11:19:07.3554401710 193756 /var/backups/dpkg.status.6.gz\n2026-06-16T23:16:02.5625482060 256 /var/backups/apt.extended_states.3.gz\n2026-06-15T20:15:32.5513041750 198 /var/backups/apt.extended_states.4.gz\n2026-06-15T00:00:23.6784006090 40960 /var/backups/alternatives.tar.0\n2026-06-14T17:55:00.1310108600 180 /var/backups/apt.extended_states.5.gz\n2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.6.gz\n2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.5.gz\n2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.4.gz\n2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.3.gz\n2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.2.gz\n2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.1.gz\n2026-06-14T12:00:14.9378376070 1709 /var/backups/dpkg.diversions.0\n2026-06-14T10:03:00.2421098020 290 /var/backups/dpkg.statoverride.0\n2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.6.gz\n2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.5.gz\n2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.4.gz\n2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.3.gz\n2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.2.gz\n2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.1.gz\n2026-05-21T14:31:34.0000000000 6 /var/backups/dpkg.arch.0\n2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.6.gz\n2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.5.gz\n2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.4.gz\n2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.3.gz\n2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.2.gz\n2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.1.gz\n[command_rc=0]\n\n--- cron backup references ---\nCOMMAND: for f in /etc/crontab /etc/cron.d/*; do [ -f \"$f\" ] || continue; echo \"### $f\"; grep -nEi \"backup|dump|mysqldump|mariadb|gitea|newfi|xenforo|restic|borg|rclone\" \"$f\" 2>/dev/null || true; done\n### /etc/crontab\n### /etc/cron.d/e2scrub_all\n### /etc/cron.d/homelab-context-refresh\n### /etc/cron.d/homelab-context-refresh.bak.20260721T105117Z\n### /etc/cron.d/homelab-context-refresh.bak.20260721T110341Z\n### /etc/cron.d/homelab-context-refresh.bak.20260721T110857Z\n### /etc/cron.d/homelab-context-refresh.bak.20260721T110932Z\n### /etc/cron.d/vzdump\n1:# cluster wide vzdump cron schedule\n### /etc/cron.d/zfsutils-linux\n[command_rc=0]\n\n--- backup tools ---\nCOMMAND: for c in restic borg rclone duplicity pg_dump mysqldump mariadb-dump; do command -v \"$c\" >/dev/null 2>&1 && { echo \"### $c\"; \"$c\" --version 2>&1 | head -5; }; done\n### restic\nunknown flag: --version\n### rclone\nrclone v1.60.1-DEV\n- os/version: debian 13.5 (64 bit)\n- os/kernel: 7.0.12-1-pve (x86_64)\n- os/type: linux\n- os/arch: amd64\n[command_rc=1]\n\n===== FINAL READ-ONLY ASSERTIONS =====\nchanges_made=false\nmutation_outcome=NO_MUTATION\nproduction_changed=false\nrollback_started=false\nrollback_restored=null\ninventory_finished_at_utc=2026-08-06T13:44:51Z\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"nfro-260806-1630-9c2f\",\"status\":\"SUCCESS\",\"rc\":0,\"changes_made\":false,\"mutation_outcome\":\"NO_MUTATION\",\"production_changed\":false,\"rollback_started\":false,\"rollback_restored\":null,\"control_plane_error\":null}\n" +} diff --git a/runtime/history/nfro-260806-1630-9c2f.txt b/runtime/history/nfro-260806-1630-9c2f.txt new file mode 100644 index 0000000..c9db6a5 --- /dev/null +++ b/runtime/history/nfro-260806-1630-9c2f.txt @@ -0,0 +1,852 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=nfro-260806-1630-9c2f +STATUS=OK +RC=0 +HOST=pve01 +MODE=verify +COMPONENT=newfi-portal +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 +COMMAND_SHA256=0f5beea2185628e7b6e33ef92110753cad5b9a009ab6203ce75c06fe1bca17cd +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=false +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=0 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=738dc788a996093e6210ccfb7ae6ff47b280283a48c7bc4f053efe73b3bddf43 +SANITIZED_OUTPUT_SHA256=5933d6e26c09a66ec65d3698e388094d233f305a883381a7e3a83bac5cff8790 +OUTPUT_BEGIN +HOMELAB_READ_ONLY_INVENTORY_BEGIN +command_id=nfro-260806-1630-9c2f +component=newfi-portal +started_at_utc=2026-08-06T13:44:40Z +read_only=true +production_change_declared=false + +===== HOST IDENTITY ===== + +--- date and timezone --- +COMMAND: date -Is 2>/dev/null || date; date -u -Is 2>/dev/null || date -u; printf "TZ=%s\n" "${TZ:-}" +2026-08-06T16:44:40+03:00 +2026-08-06T13:44:40+00:00 +TZ=Europe/Moscow +[command_rc=0] + +--- identity --- +COMMAND: hostname -f 2>/dev/null || hostname; id; whoami; pwd; umask +pve01.gram1.ru +uid=0(root) gid=990(homelab-command-portal) groups=990(homelab-command-portal) +root +/ +0077 +[command_rc=0] + +--- operating system --- +COMMAND: uname -a; test -r /etc/os-release && cat /etc/os-release || true +Linux pve01 7.0.12-1-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.12-1 (2026-06-09T21:07Z) x86_64 GNU/Linux +PRETTY_NAME="Debian GNU/Linux 13 (trixie)" +NAME="Debian GNU/Linux" +VERSION_ID="13" +VERSION="13 (trixie)" +VERSION_CODENAME=trixie +DEBIAN_VERSION_FULL=13.5 +ID=debian +HOME_URL="https://www.debian.org/" +SUPPORT_URL="https://www.debian.org/support" +BUG_REPORT_URL="https://bugs.debian.org/" +[command_rc=0] + +--- resources --- +COMMAND: uptime 2>/dev/null || true; free -h 2>/dev/null || true; df -hT 2>/dev/null || df -h + 16:44:40 up 9 days, 2:39, 0 users, load average: 0.42, 0.38, 0.38 + total used free shared buff/cache available +Mem: 31Gi 22Gi 3.8Gi 169Mi 5.0Gi 8.3Gi +Swap: 9Gi 0B 9Gi +Filesystem Type Size Used Avail Use% Mounted on +/dev/mapper/pve-root ext4 98G 15G 79G 16% / +udev devtmpfs 15G 0 15G 0% /dev +tmpfs tmpfs 16G 66M 16G 1% /dev/shm +tmpfs tmpfs 3.2G 3.8M 3.2G 1% /run +tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock +efivarfs efivarfs 192K 135K 53K 72% /sys/firmware/efi/efivars +tmpfs tmpfs 16G 89M 16G 1% /tmp +/dev/nvme0n1p2 vfat 1022M 9.1M 1013M 1% /boot/efi +/dev/mapper/pve-homelab--staging ext4 295G 148G 132G 53% /mnt/staging +/dev/fuse fuse 128M 1.4M 127M 2% /etc/pve +overlay overlay 98G 15G 79G 16% /var/lib/containers/storage/overlay/c638354547700f5f06ca229429e8a557150144d8c21fb899d880f76665f74690/merged +shm tmpfs 63M 0 63M 0% /var/lib/containers/storage/overlay-containers/aa350cac62aa0235a41c70f8650092e69fa92e815c08c8e4e2aeea65a8accc46/userdata/shm +[command_rc=0] + +--- processes relevant to portal --- +COMMAND: ps auxww 2>/dev/null | grep -Ei "[g]itea|[x]enforo|[n]ewfi|[n]ginx|[p]hp-fpm|[m]ariadb|[m]ysqld|[r]edis|[k]3s|[k]ube" | head -300 || true +root 3334259 0.0 0.0 7620 3540 ? Ss 16:44 0:00 bash /usr/local/sbin/homelab-chat-run nfro-260806-1630-9c2f verify newfi-portal -- /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh +root 3334282 0.0 0.0 6016 1948 ? S 16:44 0:00 timeout --foreground --preserve-status 900 /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh +root 3334283 0.0 0.0 7620 3524 ? S 16:44 0:00 /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh +root 3334319 0.0 0.0 7620 2024 ? S 16:44 0:00 /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh +[command_rc=0] + +--- listeners --- +COMMAND: ss -lntup 2>/dev/null | head -300 || netstat -lntup 2>/dev/null | head -300 || true +Netid State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess +udp UNCONN 0 0 0.0.0.0:51820 0.0.0.0:* +udp UNCONN 0 0 127.0.0.1:3128 0.0.0.0:* users:(("netbird",pid=1286,fd=17)) +udp UNCONN 0 0 [PRIVATE_IP]:5405 0.0.0.0:* users:(("corosync",pid=1741,fd=28)) +udp UNCONN 0 0 100.100.131.41:53 0.0.0.0:* users:(("netbird",pid=1286,fd=24)) +udp UNCONN 0 0 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=883,fd=5),("systemd",pid=1,fd=311)) +udp UNCONN 0 0 127.0.0.1:323 0.0.0.0:* users:(("chronyd",pid=1177,fd=5)) +udp UNCONN 0 0 [::]:51820 [::]:* +udp UNCONN 0 0 [::]:111 [::]:* users:(("rpcbind",pid=883,fd=7),("systemd",pid=1,fd=313)) +udp UNCONN 0 0 [::1]:323 [::]:* users:(("chronyd",pid=1177,fd=6)) +tcp LISTEN 0 100 127.0.0.1:25 0.0.0.0:* users:(("master",pid=1521,fd=13)) +tcp LISTEN 0 4096 127.0.0.1:85 0.0.0.0:* users:(("pvedaemon worke",pid=3306169,fd=6),("pvedaemon worke",pid=2967018,fd=6),("pvedaemon worke",pid=2621560,fd=6),("pvedaemon",pid=1799,fd=6)) +tcp LISTEN 0 5 0.0.0.0:8099 0.0.0.0:* users:(("python3",pid=1279,fd=3)) +tcp LISTEN 0 16 127.0.0.1:3493 0.0.0.0:* users:(("upsd",pid=1820,fd=4)) +tcp LISTEN 0 4096 100.100.131.41:53 0.0.0.0:* users:(("netbird",pid=1286,fd=25)) +tcp LISTEN 0 5 127.0.0.1:18787 0.0.0.0:* users:(("python3",pid=3558039,fd=6)) +tcp LISTEN 0 4096 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=883,fd=4),("systemd",pid=1,fd=310)) +tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1327,fd=6)) +tcp LISTEN 0 4096 127.0.0.1:8086 0.0.0.0:* users:(("conmon",pid=1583,fd=5)) +tcp LISTEN 0 5 [PRIVATE_IP]:18788 0.0.0.0:* users:(("python3",pid=1282,fd=3)) +tcp LISTEN 0 5 0.0.0.0:9101 0.0.0.0:* users:(("python3",pid=1278,fd=3)) +tcp LISTEN 0 16 [PRIVATE_IP]:3493 0.0.0.0:* users:(("upsd",pid=1820,fd=5)) +tcp LISTEN 0 5 [PRIVATE_IP]:18094 0.0.0.0:* users:(("python3",pid=1131485,fd=3)) +tcp LISTEN 0 5 [PRIVATE_IP]:18095 0.0.0.0:* users:(("python3",pid=1516647,fd=3)) +tcp LISTEN 0 4096 *:8006 *:* users:(("pveproxy worker",pid=3306165,fd=6),("pveproxy worker",pid=3199145,fd=6),("pveproxy worker",pid=3074659,fd=6),("pveproxy",pid=1846,fd=6)) +tcp LISTEN 0 4096 [::]:111 [::]:* users:(("rpcbind",pid=883,fd=6),("systemd",pid=1,fd=312)) +tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1327,fd=7)) +tcp LISTEN 0 4096 *:3128 *:* users:(("spiceproxy work",pid=381351,fd=6),("spiceproxy",pid=1855,fd=6)) +tcp LISTEN 0 100 [::1]:25 [::]:* users:(("master",pid=1521,fd=14)) +tcp LISTEN 0 4096 *:9100 *:* users:(("prometheus-node",pid=980,fd=3)) +[command_rc=0] + +--- systemd services --- +COMMAND: systemctl list-units --type=service --all --no-pager 2>/dev/null | grep -Ei "gitea|newfi|xenforo|nginx|php|maria|mysql|redis|docker|containerd|k3s|kube" | head -300 || true +● docker.service not-found inactive dead docker.service + homelab-docker-health.service loaded inactive dead Homelab Docker health readonly collector +[command_rc=0] + +--- systemd timers --- +COMMAND: systemctl list-timers --all --no-pager 2>/dev/null | grep -Ei "backup|gitea|newfi|xenforo|cert|renew|database|mysql|maria" | head -300 || true +Fri 2026-08-07 00:00:00 MSK 7h Thu 2026-08-06 00:00:07 MSK 16h ago dpkg-db-backup.timer dpkg-db-backup.service +[command_rc=0] + +===== DNS HTTP TLS FOR NEWFI.RU ===== + +--- resolver configuration --- +COMMAND: cat /etc/resolv.conf 2>/dev/null || true; getent hosts newfi.ru 2>/dev/null || true; getent ahosts newfi.ru 2>/dev/null || true +# Generated by NetBird +# The original file can be restored from /etc/resolv.conf.original.netbird + +search netbird.selfhosted gram1.ru +nameserver 100.100.131.41 +95.84.154.183 newfi.ru +95.84.154.183 STREAM newfi.ru +95.84.154.183 DGRAM +95.84.154.183 RAW +[command_rc=0] + +--- DNS records --- +COMMAND: if command -v dig >/dev/null 2>&1; then for t in A AAAA CNAME NS MX TXT SOA CAA; do echo "### $t"; timeout 15 dig +time=3 +tries=1 newfi.ru "$t"; done; elif command -v nslookup >/dev/null 2>&1; then nslookup newfi.ru; else echo "NO_DNS_TOOL"; fi +### A + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru A +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32658 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN A + +;; ANSWER SECTION: +newfi.ru. 134 IN A 95.84.154.183 + +;; Query time: 1 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 61 + +### AAAA + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru AAAA +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1055 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN AAAA + +;; AUTHORITY SECTION: +newfi.ru. 1634 IN SOA sara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800 + +;; Query time: 1 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 121 + +### CNAME + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru CNAME +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12283 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN CNAME + +;; AUTHORITY SECTION: +newfi.ru. 1800 IN SOA sara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800 + +;; Query time: 7 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 121 + +### NS + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru NS +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57211 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN NS + +;; ANSWER SECTION: +newfi.ru. 6873 IN NS vern.ns.cloudflare.com. +newfi.ru. 6873 IN NS sara.ns.cloudflare.com. + +;; Query time: 1 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 125 + +### MX + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru MX +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36967 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN MX + +;; AUTHORITY SECTION: +newfi.ru. 1800 IN SOA sara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800 + +;; Query time: 7 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 121 + +### TXT + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru TXT +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14684 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN TXT + +;; ANSWER SECTION: +newfi.ru. 300 IN TXT "v=spf1 -all" + +;; Query time: 8 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 69 + +### SOA + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru SOA +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56593 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN SOA + +;; ANSWER SECTION: +newfi.ru. 1800 IN SOA sara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800 + +;; Query time: 8 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 121 + +### CAA + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru CAA +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42605 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN CAA + +;; AUTHORITY SECTION: +newfi.ru. 1800 IN SOA sara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800 + +;; Query time: 8 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 121 + +[command_rc=0] + +--- HTTP probe --- +COMMAND: if command -v curl >/dev/null 2>&1; then for u in http://newfi.ru/ https://newfi.ru/ https://www.newfi.ru/; do echo "### $u"; timeout 25 curl -k -sS -L --max-redirs 5 --connect-timeout 7 --max-time 20 -D - -o /dev/null "$u" || true; done; else echo "NO_CURL"; fi +### http://newfi.ru/ +HTTP/1.1 301 Moved Permanently +Date: Thu, 06 Aug 2026 13:44:40 GMT +Content-Type: text/html +Content-Length: 140 +Connection: keep-alive +Location: https://newfi.ru/ +Origin-Agent-Cluster: ?1 +X-DNS-Prefetch-Control: off +X-Content-Type-Options: nosniff +X-Permitted-Cross-Domain-Policies: none +Referrer-Policy: strict-origin-when-cross-origin + +HTTP/2 200 +date: Thu, 06 Aug 2026 13:44:40 GMT +content-type: text/html +content-length: 3999 +vary: Accept-Encoding +last-modified: Wed, 01 Jul 2026 16:54:46 GMT +origin-agent-cluster: ?1 +x-dns-prefetch-control: off +x-content-type-options: nosniff +x-permitted-cross-domain-policies: none +referrer-policy: strict-origin-when-cross-origin +x-parked-domains: managed + +### https://newfi.ru/ +HTTP/2 200 +date: Thu, 06 Aug 2026 13:44:40 GMT +content-type: text/html +content-length: 3999 +vary: Accept-Encoding +last-modified: Wed, 01 Jul 2026 16:54:46 GMT +origin-agent-cluster: ?1 +x-dns-prefetch-control: off +x-content-type-options: nosniff +x-permitted-cross-domain-policies: none +referrer-policy: strict-origin-when-cross-origin +x-parked-domains: managed + +### https://www.newfi.ru/ +HTTP/2 200 +date: Thu, 06 Aug 2026 13:44:43 GMT +content-type: text/html +content-length: 3999 +vary: Accept-Encoding +last-modified: Wed, 01 Jul 2026 16:54:46 GMT +origin-agent-cluster: ?1 +x-dns-prefetch-control: off +x-content-type-options: nosniff +x-permitted-cross-domain-policies: none +referrer-policy: strict-origin-when-cross-origin +x-parked-domains: managed + +[command_rc=0] + +--- HTTPS body prefix --- +COMMAND: if command -v curl >/dev/null 2>&1; then timeout 25 curl -k -sS -L --max-redirs 5 --connect-timeout 7 --max-time 20 --range 0-65535 https://newfi.ru/ | head -c 65536; printf "\n"; else echo "NO_CURL"; fi + + + + + + + Домен припаркован + + + + +
+
PARKED_PAGE_OK · homelab
+

Здесь скоро появится новый проект.

+

Домен уже подключён к инфраструктуре, но основной сервис пока не опубликован. Сейчас это аккуратная техническая заглушка для свободных доменов.

+
+
+ +
+ + + +[command_rc=0] + +--- TLS certificate --- +COMMAND: if command -v openssl >/dev/null 2>&1; then timeout 20 sh -c "printf \"\" | openssl s_client -connect newfi.ru:443 -servername newfi.ru 2>/dev/null | openssl x509 -noout -subject -issuer -serial -dates -ext subjectAltName"; else echo "NO_OPENSSL"; fi +subject=CN=newfi.ru +issuer=C=US, O=Let's Encrypt, CN=YE1 +serial=05857CDD0AC0102BE9D7AA729B23F41AA698 +notBefore=Jul 1 14:53:39 2026 GMT +notAfter=Sep 29 14:53:38 2026 GMT +X509v3 Subject Alternative Name: + DNS:newfi.ru, DNS:www.newfi.ru +[command_rc=0] + +===== CONTAINER RUNTIMES ===== + +--- tool versions --- +COMMAND: for c in git curl jq python3 php docker podman kubectl helm k3s crictl nerdctl mysql mariadb redis-cli openssl; do if command -v "$c" >/dev/null 2>&1; then printf "%-12s %s\n" "$c" "$(command -v "$c")"; case "$c" in git) git --version;; curl) curl --version | head -1;; jq) jq --version;; python3) python3 --version;; php) php -v | head -2;; docker) docker --version;; podman) podman --version;; kubectl) kubectl version --client 2>/dev/null || true;; helm) helm version --short 2>/dev/null || true;; k3s) k3s --version | head -2;; crictl) crictl --version;; nerdctl) nerdctl --version;; mysql|mariadb) "$c" --version;; redis-cli) redis-cli --version;; openssl) openssl version;; esac; fi; done +git /usr/bin/git +git version 2.47.3 +curl /usr/bin/curl +curl 8.14.1 (x86_64-pc-linux-gnu) libcurl/8.14.1 OpenSSL/3.5.6 zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.64.0 nghttp3/1.8.0 librtmp/2.3 OpenLDAP/2.6.10 +jq /usr/bin/jq +jq-1.7 +python3 /usr/bin/python3 +Python 3.13.5 +podman /usr/bin/podman +podman version 5.4.2 +openssl /usr/bin/openssl +OpenSSL 3.5.6 7 Apr 2026 (Library: OpenSSL 3.5.6 7 Apr 2026) +[command_rc=0] + +--- Docker containers --- +COMMAND: if command -v docker >/dev/null 2>&1; then docker ps -a --no-trunc --format "table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"; docker volume ls; docker network ls; else echo "NO_DOCKER"; fi +NO_DOCKER +[command_rc=0] + +--- Docker relevant mounts --- +COMMAND: if command -v docker >/dev/null 2>&1; then for c in $(docker ps -a --format "{{.Names}}" | grep -Ei "gitea|newfi|xenforo|maria|mysql|redis" | head -50); do echo "### $c"; docker inspect --format "Image={{.Config.Image}} Restart={{.HostConfig.RestartPolicy.Name}} Mounts={{range .Mounts}}{{.Type}}:{{.Source}}->{{.Destination}};{{end}}" "$c" 2>/dev/null || true; done; else echo "NO_DOCKER"; fi +NO_DOCKER +[command_rc=0] + +--- Podman containers --- +COMMAND: if command -v podman >/dev/null 2>&1; then podman ps -a --no-trunc; podman volume ls; else echo "NO_PODMAN"; fi +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +aa350cac62aa0235a41c70f8650092e69fa92e815c08c8e4e2aeea65a8accc46 ghcr.io/analogj/scrutiny:latest-omnibus /init 9 days ago Up 9 days 127.0.0.1:8086->8080/tcp scrutiny +[command_rc=0] + +===== KUBERNETES INVENTORY ===== +KUBECTL_NOT_AVAILABLE + +===== GITEA DISCOVERY ===== + +--- Gitea binary and safe configuration keys --- +COMMAND: + if command -v gitea >/dev/null 2>&1; then gitea --version; fi + find /etc /var/lib/gitea /data /srv /opt /home -maxdepth 6 -type f \ + \( -name app.ini -o -name gitea.ini \) -print 2>/dev/null | head -100 \ + | while read -r f; do + echo "### CONFIG $f" + stat -c "%A %U:%G %s %y %n" "$f" 2>/dev/null || true + grep -nE "^[[:space:]]*(APP_NAME|RUN_USER|RUN_MODE|DOMAIN|SSH_DOMAIN|HTTP_ADDR|HTTP_PORT|ROOT_URL|DISABLE_REGISTRATION|INSTALL_LOCK|DB_TYPE|PATH|LFS_START_SERVER|OFFLINE_MODE)[[:space:]]*=" "$f" 2>/dev/null || true + done + +[command_rc=0] + +--- Gitea API probes --- +COMMAND: + if command -v curl >/dev/null 2>&1; then + for base in \ + http://127.0.0.1:3000 \ + http://127.0.0.1:3001 \ + http://gitea:3000 \ + http://gitea-http:3000 \ + http://gitea-http.gitea.svc.cluster.local:3000 \ + https://git.gram1.ru + do + echo "### BASE $base" + timeout 12 curl -k -fsS --connect-timeout 4 --max-time 10 "$base/api/v1/version" || true + printf "\n" + for q in newfi newfdom newf xenforo; do + echo "QUERY=$q" + timeout 15 curl -k -fsS -G --connect-timeout 4 --max-time 12 \ + --data-urlencode "q=$q" --data-urlencode "limit=50" \ + "$base/api/v1/repos/search" || true + printf "\n" + done + done + else + echo "NO_CURL" + fi + +### BASE http://127.0.0.1:3000 +curl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server + +QUERY=newfi +curl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server + +QUERY=newfdom +curl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server + +QUERY=newf +curl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server + +QUERY=xenforo +curl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server + +### BASE http://127.0.0.1:3001 +curl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server + +QUERY=newfi +curl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server + +QUERY=newfdom +curl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server + +QUERY=newf +curl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server + +QUERY=xenforo +curl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server + +### BASE http://gitea:3000 +curl: (6) Could not resolve host: gitea + +QUERY=newfi +curl: (6) Could not resolve host: gitea + +QUERY=newfdom +curl: (6) Could not resolve host: gitea + +QUERY=newf +curl: (6) Could not resolve host: gitea + +QUERY=xenforo +curl: (6) Could not resolve host: gitea + +### BASE http://gitea-http:3000 +curl: (6) Could not resolve host: gitea-http + +QUERY=newfi +curl: (6) Could not resolve host: gitea-http + +QUERY=newfdom +curl: (6) Could not resolve host: gitea-http + +QUERY=newf +curl: (6) Could not resolve host: gitea-http + +QUERY=xenforo +curl: (6) Could not resolve host: gitea-http + +### BASE http://gitea-http.gitea.svc.cluster.local:3000 +curl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local + +QUERY=newfi +curl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local + +QUERY=newfdom +curl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local + +QUERY=newf +curl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local + +QUERY=xenforo +curl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local + +### BASE https://git.gram1.ru +{"version":"1.26.2"} +QUERY=newfi +{"ok":true,"data":[]} +QUERY=newfdom +{"ok":true,"data":[]} +QUERY=newf +{"ok":true,"data":[]} +QUERY=xenforo +{"ok":true,"data":[]} +[command_rc=0] + +===== GITEA REPOSITORY FILESYSTEM ===== + +--- known repository roots --- +COMMAND: + for d in \ + /var/lib/gitea/data/gitea-repositories \ + /var/lib/gitea/gitea-repositories \ + /data/git/repositories \ + /data/gitea/gitea-repositories \ + /srv/gitea/data/gitea-repositories \ + /home/git/gitea-repositories + do + if [ -d "$d" ]; then + echo "ROOT=$d" + stat -c "%A %U:%G %s %y %n" "$d" 2>/dev/null || true + find "$d" -maxdepth 3 -type d -name "*.git" -print 2>/dev/null | sort | head -1000 + fi + done + +[command_rc=0] + +===== WORKING COPY DISCOVERY ===== + +--- candidate Git worktrees --- +COMMAND: + for root in /srv /opt /var/www /data /home /workspace /workspaces /mnt; do + [ -d "$root" ] || continue + find "$root" -maxdepth 7 -type d -name .git -print 2>/dev/null + done | sed "s#/.git$##" | sort -u | grep -Ei "newfi|newfdom|newf|xenforo|portal" | head -200 + +sed: -e expression #1, char 9: unterminated `s' command +[command_rc=0] + +===== XENFORO DISCOVERY ===== + +--- XenForo files --- +COMMAND: + for root in /srv /opt /var/www /data /home /workspace /workspaces /mnt; do + [ -d "$root" ] || continue + find "$root" -maxdepth 9 -type f -path "*/src/XF.php" -print 2>/dev/null + done | sort -u | head -100 + +[command_rc=0] + +===== KUBERNETES POD INTERNAL READ-ONLY PROBES ===== + +===== BACKUP AND STORAGE EVIDENCE ===== + +--- backup directories metadata --- +COMMAND: + for d in /backup /backups /var/backups /srv/backup /srv/backups /data/backup /data/backups /mnt/backup /mnt/backups; do + [ -d "$d" ] || continue + echo "### $d" + stat -c "%A %U:%G %s %y %n" "$d" 2>/dev/null || true + find "$d" -maxdepth 3 -type f -printf "%TY-%Tm-%TdT%TH:%TM:%TS %s %p\n" 2>/dev/null \ + | sort -r | head -200 + done + +### /var/backups +drwxr-xr-x root:root 4096 2026-08-05 19:26:22.485925089 +0300 /var/backups +2026-08-05T19:26:22.4871881170 1676 /var/backups/skladchik-moderator-assistant/HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z/manifest.json +2026-08-05T18:23:38.8848347980 1064 /var/backups/homelab-cluster-admin/HOMELAB-CLUSTER-ADMIN-UPDATES-V30-INDEX-WATCHER-ATOMIC-CHANGE-20260805T151800Z/manifest.json +2026-08-05T18:03:06.2838781070 1064 /var/backups/homelab-cluster-admin/HOMELAB-CLUSTER-ADMIN-UPDATES-V28-MEMBERS-FIXED-ATOMIC-CHANGE-20260805T150500Z/manifest.json +2026-07-24T13:17:50.1829042900 9886 /var/backups/homelab-vm-local-dumps-2cloud/desired.pre-drain-442.sh +2026-07-24T13:17:50.1767855920 9886 /var/backups/homelab-vm-local-dumps-2cloud/runtime.pre-drain-442.sh +2026-07-24T04:27:35.8455169720 121 /var/backups/gitea-relay/gitea-20260724T012733Z.zip.sha256 +2026-07-24T04:27:35.7305152140 38476973 /var/backups/gitea-relay/gitea-20260724T012733Z.zip +2026-07-23T04:30:17.1876546570 121 /var/backups/gitea-relay/gitea-20260723T013014Z.zip.sha256 +2026-07-23T04:30:17.0676528050 35213513 /var/backups/gitea-relay/gitea-20260723T013014Z.zip +2026-07-22T23:44:23.5207990880 1176 /var/backups/homelab-reader/homelab-chat-run-linked.pre-270.20260722T205130Z +2026-07-22T23:38:55.8093299500 686 /var/backups/homelab-reader/homelab-chat-run-linked.pre-267.20260722T204423Z +2026-07-22T17:07:19.0811873920 482 /var/backups/homelab-reference/OPERATIONS.md.before-tail-closeout.20260722T140719Z +2026-07-22T11:03:47.1137759030 561 /var/backups/homelab-reference/20260722T081210949547Z/README.md +2026-07-22T11:03:47.1132880790 1471 /var/backups/homelab-reference/20260722T081210949547Z/manifest.json +2026-07-22T10:34:58.6978834310 603 /var/backups/homelab-reference/20260722T080015404968Z/README.md +2026-07-22T10:34:58.6966043260 1743 /var/backups/homelab-reference/20260722T080015404968Z/manifest.json +2026-07-18T13:52:30.4157800660 20463 /var/backups/skladchik-reports-monitor-supervisor/supervisor.pre-cookie-race-fix-423.py +2026-07-06T18:49:49.7406450500 7272 /var/backups/homelab-vm-local-dumps-2cloud/runtime.pre-434.sh +2026-07-06T18:49:49.7406450500 7272 /var/backups/homelab-vm-local-dumps-2cloud/desired.pre-434.sh +2026-06-30T16:24:58.9872367120 819301 /var/backups/dpkg.status.0 +2026-06-29T21:03:45.6401889080 221140 /var/backups/dpkg.status.1.gz +2026-06-29T21:03:44.2631678590 6098 /var/backups/apt.extended_states.0 +2026-06-24T11:54:21.1275314850 220453 /var/backups/dpkg.status.2.gz +2026-06-23T03:39:15.2281940980 219584 /var/backups/dpkg.status.3.gz +2026-06-23T03:38:46.5077573390 810 /var/backups/apt.extended_states.1.gz +2026-06-21T01:09:08.3504122800 219552 /var/backups/dpkg.status.4.gz +2026-06-21T01:08:56.4252370290 799 /var/backups/apt.extended_states.2.gz +2026-06-20T23:27:28.6047672330 209054 /var/backups/dpkg.status.5.gz +2026-06-17T11:19:07.3554401710 193756 /var/backups/dpkg.status.6.gz +2026-06-16T23:16:02.5625482060 256 /var/backups/apt.extended_states.3.gz +2026-06-15T20:15:32.5513041750 198 /var/backups/apt.extended_states.4.gz +2026-06-15T00:00:23.6784006090 40960 /var/backups/alternatives.tar.0 +2026-06-14T17:55:00.1310108600 180 /var/backups/apt.extended_states.5.gz +2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.6.gz +2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.5.gz +2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.4.gz +2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.3.gz +2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.2.gz +2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.1.gz +2026-06-14T12:00:14.9378376070 1709 /var/backups/dpkg.diversions.0 +2026-06-14T10:03:00.2421098020 290 /var/backups/dpkg.statoverride.0 +2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.6.gz +2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.5.gz +2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.4.gz +2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.3.gz +2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.2.gz +2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.1.gz +2026-05-21T14:31:34.0000000000 6 /var/backups/dpkg.arch.0 +2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.6.gz +2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.5.gz +2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.4.gz +2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.3.gz +2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.2.gz +2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.1.gz +[command_rc=0] + +--- cron backup references --- +COMMAND: for f in /etc/crontab /etc/cron.d/*; do [ -f "$f" ] || continue; echo "### $f"; grep -nEi "backup|dump|mysqldump|mariadb|gitea|newfi|xenforo|restic|borg|rclone" "$f" 2>/dev/null || true; done +### /etc/crontab +### /etc/cron.d/e2scrub_all +### /etc/cron.d/homelab-context-refresh +### /etc/cron.d/homelab-context-refresh.bak.20260721T105117Z +### /etc/cron.d/homelab-context-refresh.bak.20260721T110341Z +### /etc/cron.d/homelab-context-refresh.bak.20260721T110857Z +### /etc/cron.d/homelab-context-refresh.bak.20260721T110932Z +### /etc/cron.d/vzdump +1:# cluster wide vzdump cron schedule +### /etc/cron.d/zfsutils-linux +[command_rc=0] + +--- backup tools --- +COMMAND: for c in restic borg rclone duplicity pg_dump mysqldump mariadb-dump; do command -v "$c" >/dev/null 2>&1 && { echo "### $c"; "$c" --version 2>&1 | head -5; }; done +### restic +unknown flag: --version +### rclone +rclone v1.60.1-DEV +- os/version: debian 13.5 (64 bit) +- os/kernel: 7.0.12-1-pve (x86_64) +- os/type: linux +- os/arch: amd64 +[command_rc=1] + +===== FINAL READ-ONLY ASSERTIONS ===== +changes_made=false +mutation_outcome=NO_MUTATION +production_changed=false +rollback_started=false +rollback_restored=null +inventory_finished_at_utc=2026-08-06T13:44:51Z +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"nfro-260806-1630-9c2f","status":"SUCCESS","rc":0,"changes_made":false,"mutation_outcome":"NO_MUTATION","production_changed":false,"rollback_started":false,"rollback_restored":null,"control_plane_error":null} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index c554b05..49257ab 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1 +1,38 @@ -{"schema_version":1,"channel":"homelab-runtime","command_id":"CONTEXT-AUTO-20260806T131701Z","status":"OK","rc":0,"host":"pve01","mode":"read-only","component":"cluster-context","started_at_utc":"2026-08-06T13:17:01Z","finished_at_utc":"2026-08-06T13:17:03Z","reference_register_checked":true,"reference_sha256":"5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e","error_register_checked":true,"error_register_sha256":"24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83","changes_made":false,"sanitized":true,"secrets_included":false,"private_addresses_included":false,"output":"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK"} +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "nfro-260806-1630-9c2f", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "verify", + "component": "newfi-portal", + "started_at_utc": "2026-08-06T13:44:40Z", + "finished_at_utc": "2026-08-06T13:44:51Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", + "command_sha256": "0f5beea2185628e7b6e33ef92110753cad5b9a009ab6203ce75c06fe1bca17cd", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": false, + "result_contract_valid": true, + "result_contract_status": null, + "result_contract_error": null, + "command_rc": 0, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "738dc788a996093e6210ccfb7ae6ff47b280283a48c7bc4f053efe73b3bddf43", + "sanitized_output_sha256": "5933d6e26c09a66ec65d3698e388094d233f305a883381a7e3a83bac5cff8790", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "HOMELAB_READ_ONLY_INVENTORY_BEGIN\ncommand_id=nfro-260806-1630-9c2f\ncomponent=newfi-portal\nstarted_at_utc=2026-08-06T13:44:40Z\nread_only=true\nproduction_change_declared=false\n\n===== HOST IDENTITY =====\n\n--- date and timezone ---\nCOMMAND: date -Is 2>/dev/null || date; date -u -Is 2>/dev/null || date -u; printf \"TZ=%s\\n\" \"${TZ:-}\"\n2026-08-06T16:44:40+03:00\n2026-08-06T13:44:40+00:00\nTZ=Europe/Moscow\n[command_rc=0]\n\n--- identity ---\nCOMMAND: hostname -f 2>/dev/null || hostname; id; whoami; pwd; umask\npve01.gram1.ru\nuid=0(root) gid=990(homelab-command-portal) groups=990(homelab-command-portal)\nroot\n/\n0077\n[command_rc=0]\n\n--- operating system ---\nCOMMAND: uname -a; test -r /etc/os-release && cat /etc/os-release || true\nLinux pve01 7.0.12-1-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.12-1 (2026-06-09T21:07Z) x86_64 GNU/Linux\nPRETTY_NAME=\"Debian GNU/Linux 13 (trixie)\"\nNAME=\"Debian GNU/Linux\"\nVERSION_ID=\"13\"\nVERSION=\"13 (trixie)\"\nVERSION_CODENAME=trixie\nDEBIAN_VERSION_FULL=13.5\nID=debian\nHOME_URL=\"https://www.debian.org/\"\nSUPPORT_URL=\"https://www.debian.org/support\"\nBUG_REPORT_URL=\"https://bugs.debian.org/\"\n[command_rc=0]\n\n--- resources ---\nCOMMAND: uptime 2>/dev/null || true; free -h 2>/dev/null || true; df -hT 2>/dev/null || df -h\n 16:44:40 up 9 days, 2:39, 0 users, load average: 0.42, 0.38, 0.38\n total used free shared buff/cache available\nMem: 31Gi 22Gi 3.8Gi 169Mi 5.0Gi 8.3Gi\nSwap: 9Gi 0B 9Gi\nFilesystem Type Size Used Avail Use% Mounted on\n/dev/mapper/pve-root ext4 98G 15G 79G 16% /\nudev devtmpfs 15G 0 15G 0% /dev\ntmpfs tmpfs 16G 66M 16G 1% /dev/shm\ntmpfs tmpfs 3.2G 3.8M 3.2G 1% /run\ntmpfs tmpfs 5.0M 0 5.0M 0% /run/lock\nefivarfs efivarfs 192K 135K 53K 72% /sys/firmware/efi/efivars\ntmpfs tmpfs 16G 89M 16G 1% /tmp\n/dev/nvme0n1p2 vfat 1022M 9.1M 1013M 1% /boot/efi\n/dev/mapper/pve-homelab--staging ext4 295G 148G 132G 53% /mnt/staging\n/dev/fuse fuse 128M 1.4M 127M 2% /etc/pve\noverlay overlay 98G 15G 79G 16% /var/lib/containers/storage/overlay/c638354547700f5f06ca229429e8a557150144d8c21fb899d880f76665f74690/merged\nshm tmpfs 63M 0 63M 0% /var/lib/containers/storage/overlay-containers/aa350cac62aa0235a41c70f8650092e69fa92e815c08c8e4e2aeea65a8accc46/userdata/shm\n[command_rc=0]\n\n--- processes relevant to portal ---\nCOMMAND: ps auxww 2>/dev/null | grep -Ei \"[g]itea|[x]enforo|[n]ewfi|[n]ginx|[p]hp-fpm|[m]ariadb|[m]ysqld|[r]edis|[k]3s|[k]ube\" | head -300 || true\nroot 3334259 0.0 0.0 7620 3540 ? Ss 16:44 0:00 bash /usr/local/sbin/homelab-chat-run nfro-260806-1630-9c2f verify newfi-portal -- /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh\nroot 3334282 0.0 0.0 6016 1948 ? S 16:44 0:00 timeout --foreground --preserve-status 900 /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh\nroot 3334283 0.0 0.0 7620 3524 ? S 16:44 0:00 /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh\nroot 3334319 0.0 0.0 7620 2024 ? S 16:44 0:00 /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh\n[command_rc=0]\n\n--- listeners ---\nCOMMAND: ss -lntup 2>/dev/null | head -300 || netstat -lntup 2>/dev/null | head -300 || true\nNetid State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess \nudp UNCONN 0 0 0.0.0.0:51820 0.0.0.0:* \nudp UNCONN 0 0 127.0.0.1:3128 0.0.0.0:* users:((\"netbird\",pid=1286,fd=17)) \nudp UNCONN 0 0 [PRIVATE_IP]:5405 0.0.0.0:* users:((\"corosync\",pid=1741,fd=28)) \nudp UNCONN 0 0 100.100.131.41:53 0.0.0.0:* users:((\"netbird\",pid=1286,fd=24)) \nudp UNCONN 0 0 0.0.0.0:111 0.0.0.0:* users:((\"rpcbind\",pid=883,fd=5),(\"systemd\",pid=1,fd=311)) \nudp UNCONN 0 0 127.0.0.1:323 0.0.0.0:* users:((\"chronyd\",pid=1177,fd=5)) \nudp UNCONN 0 0 [::]:51820 [::]:* \nudp UNCONN 0 0 [::]:111 [::]:* users:((\"rpcbind\",pid=883,fd=7),(\"systemd\",pid=1,fd=313)) \nudp UNCONN 0 0 [::1]:323 [::]:* users:((\"chronyd\",pid=1177,fd=6)) \ntcp LISTEN 0 100 127.0.0.1:25 0.0.0.0:* users:((\"master\",pid=1521,fd=13)) \ntcp LISTEN 0 4096 127.0.0.1:85 0.0.0.0:* users:((\"pvedaemon worke\",pid=3306169,fd=6),(\"pvedaemon worke\",pid=2967018,fd=6),(\"pvedaemon worke\",pid=2621560,fd=6),(\"pvedaemon\",pid=1799,fd=6))\ntcp LISTEN 0 5 0.0.0.0:8099 0.0.0.0:* users:((\"python3\",pid=1279,fd=3)) \ntcp LISTEN 0 16 127.0.0.1:3493 0.0.0.0:* users:((\"upsd\",pid=1820,fd=4)) \ntcp LISTEN 0 4096 100.100.131.41:53 0.0.0.0:* users:((\"netbird\",pid=1286,fd=25)) \ntcp LISTEN 0 5 127.0.0.1:18787 0.0.0.0:* users:((\"python3\",pid=3558039,fd=6)) \ntcp LISTEN 0 4096 0.0.0.0:111 0.0.0.0:* users:((\"rpcbind\",pid=883,fd=4),(\"systemd\",pid=1,fd=310)) \ntcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((\"sshd\",pid=1327,fd=6)) \ntcp LISTEN 0 4096 127.0.0.1:8086 0.0.0.0:* users:((\"conmon\",pid=1583,fd=5)) \ntcp LISTEN 0 5 [PRIVATE_IP]:18788 0.0.0.0:* users:((\"python3\",pid=1282,fd=3)) \ntcp LISTEN 0 5 0.0.0.0:9101 0.0.0.0:* users:((\"python3\",pid=1278,fd=3)) \ntcp LISTEN 0 16 [PRIVATE_IP]:3493 0.0.0.0:* users:((\"upsd\",pid=1820,fd=5)) \ntcp LISTEN 0 5 [PRIVATE_IP]:18094 0.0.0.0:* users:((\"python3\",pid=1131485,fd=3)) \ntcp LISTEN 0 5 [PRIVATE_IP]:18095 0.0.0.0:* users:((\"python3\",pid=1516647,fd=3)) \ntcp LISTEN 0 4096 *:8006 *:* users:((\"pveproxy worker\",pid=3306165,fd=6),(\"pveproxy worker\",pid=3199145,fd=6),(\"pveproxy worker\",pid=3074659,fd=6),(\"pveproxy\",pid=1846,fd=6)) \ntcp LISTEN 0 4096 [::]:111 [::]:* users:((\"rpcbind\",pid=883,fd=6),(\"systemd\",pid=1,fd=312)) \ntcp LISTEN 0 128 [::]:22 [::]:* users:((\"sshd\",pid=1327,fd=7)) \ntcp LISTEN 0 4096 *:3128 *:* users:((\"spiceproxy work\",pid=381351,fd=6),(\"spiceproxy\",pid=1855,fd=6)) \ntcp LISTEN 0 100 [::1]:25 [::]:* users:((\"master\",pid=1521,fd=14)) \ntcp LISTEN 0 4096 *:9100 *:* users:((\"prometheus-node\",pid=980,fd=3)) \n[command_rc=0]\n\n--- systemd services ---\nCOMMAND: systemctl list-units --type=service --all --no-pager 2>/dev/null | grep -Ei \"gitea|newfi|xenforo|nginx|php|maria|mysql|redis|docker|containerd|k3s|kube\" | head -300 || true\n● docker.service not-found inactive dead docker.service\n homelab-docker-health.service loaded inactive dead Homelab Docker health readonly collector\n[command_rc=0]\n\n--- systemd timers ---\nCOMMAND: systemctl list-timers --all --no-pager 2>/dev/null | grep -Ei \"backup|gitea|newfi|xenforo|cert|renew|database|mysql|maria\" | head -300 || true\nFri 2026-08-07 00:00:00 MSK 7h Thu 2026-08-06 00:00:07 MSK 16h ago dpkg-db-backup.timer dpkg-db-backup.service\n[command_rc=0]\n\n===== DNS HTTP TLS FOR NEWFI.RU =====\n\n--- resolver configuration ---\nCOMMAND: cat /etc/resolv.conf 2>/dev/null || true; getent hosts newfi.ru 2>/dev/null || true; getent ahosts newfi.ru 2>/dev/null || true\n# Generated by NetBird\n# The original file can be restored from /etc/resolv.conf.original.netbird\n\nsearch netbird.selfhosted gram1.ru\nnameserver 100.100.131.41\n95.84.154.183 newfi.ru\n95.84.154.183 STREAM newfi.ru\n95.84.154.183 DGRAM \n95.84.154.183 RAW \n[command_rc=0]\n\n--- DNS records ---\nCOMMAND: if command -v dig >/dev/null 2>&1; then for t in A AAAA CNAME NS MX TXT SOA CAA; do echo \"### $t\"; timeout 15 dig +time=3 +tries=1 newfi.ru \"$t\"; done; elif command -v nslookup >/dev/null 2>&1; then nslookup newfi.ru; else echo \"NO_DNS_TOOL\"; fi\n### A\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru A\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32658\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tA\n\n;; ANSWER SECTION:\nnewfi.ru.\t\t134\tIN\tA\t95.84.154.183\n\n;; Query time: 1 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 61\n\n### AAAA\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru AAAA\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1055\n;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tAAAA\n\n;; AUTHORITY SECTION:\nnewfi.ru.\t\t1634\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800\n\n;; Query time: 1 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 121\n\n### CNAME\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru CNAME\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12283\n;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tCNAME\n\n;; AUTHORITY SECTION:\nnewfi.ru.\t\t1800\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800\n\n;; Query time: 7 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 121\n\n### NS\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru NS\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57211\n;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tNS\n\n;; ANSWER SECTION:\nnewfi.ru.\t\t6873\tIN\tNS\tvern.ns.cloudflare.com.\nnewfi.ru.\t\t6873\tIN\tNS\tsara.ns.cloudflare.com.\n\n;; Query time: 1 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 125\n\n### MX\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru MX\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36967\n;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tMX\n\n;; AUTHORITY SECTION:\nnewfi.ru.\t\t1800\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800\n\n;; Query time: 7 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 121\n\n### TXT\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru TXT\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14684\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tTXT\n\n;; ANSWER SECTION:\nnewfi.ru.\t\t300\tIN\tTXT\t\"v=spf1 -all\"\n\n;; Query time: 8 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 69\n\n### SOA\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru SOA\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56593\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tSOA\n\n;; ANSWER SECTION:\nnewfi.ru.\t\t1800\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800\n\n;; Query time: 8 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 121\n\n### CAA\n\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru CAA\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42605\n;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1212\n;; QUESTION SECTION:\n;newfi.ru.\t\t\tIN\tCAA\n\n;; AUTHORITY SECTION:\nnewfi.ru.\t\t1800\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800\n\n;; Query time: 8 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Thu Aug 06 16:44:40 MSK 2026\n;; MSG SIZE rcvd: 121\n\n[command_rc=0]\n\n--- HTTP probe ---\nCOMMAND: if command -v curl >/dev/null 2>&1; then for u in http://newfi.ru/ https://newfi.ru/ https://www.newfi.ru/; do echo \"### $u\"; timeout 25 curl -k -sS -L --max-redirs 5 --connect-timeout 7 --max-time 20 -D - -o /dev/null \"$u\" || true; done; else echo \"NO_CURL\"; fi\n### http://newfi.ru/\nHTTP/1.1 301 Moved Permanently\nDate: Thu, 06 Aug 2026 13:44:40 GMT\nContent-Type: text/html\nContent-Length: 140\nConnection: keep-alive\nLocation: https://newfi.ru/\nOrigin-Agent-Cluster: ?1\nX-DNS-Prefetch-Control: off\nX-Content-Type-Options: nosniff\nX-Permitted-Cross-Domain-Policies: none\nReferrer-Policy: strict-origin-when-cross-origin\n\nHTTP/2 200 \ndate: Thu, 06 Aug 2026 13:44:40 GMT\ncontent-type: text/html\ncontent-length: 3999\nvary: Accept-Encoding\nlast-modified: Wed, 01 Jul 2026 16:54:46 GMT\norigin-agent-cluster: ?1\nx-dns-prefetch-control: off\nx-content-type-options: nosniff\nx-permitted-cross-domain-policies: none\nreferrer-policy: strict-origin-when-cross-origin\nx-parked-domains: managed\n\n### https://newfi.ru/\nHTTP/2 200 \ndate: Thu, 06 Aug 2026 13:44:40 GMT\ncontent-type: text/html\ncontent-length: 3999\nvary: Accept-Encoding\nlast-modified: Wed, 01 Jul 2026 16:54:46 GMT\norigin-agent-cluster: ?1\nx-dns-prefetch-control: off\nx-content-type-options: nosniff\nx-permitted-cross-domain-policies: none\nreferrer-policy: strict-origin-when-cross-origin\nx-parked-domains: managed\n\n### https://www.newfi.ru/\nHTTP/2 200 \ndate: Thu, 06 Aug 2026 13:44:43 GMT\ncontent-type: text/html\ncontent-length: 3999\nvary: Accept-Encoding\nlast-modified: Wed, 01 Jul 2026 16:54:46 GMT\norigin-agent-cluster: ?1\nx-dns-prefetch-control: off\nx-content-type-options: nosniff\nx-permitted-cross-domain-policies: none\nreferrer-policy: strict-origin-when-cross-origin\nx-parked-domains: managed\n\n[command_rc=0]\n\n--- HTTPS body prefix ---\nCOMMAND: if command -v curl >/dev/null 2>&1; then timeout 25 curl -k -sS -L --max-redirs 5 --connect-timeout 7 --max-time 20 --range 0-65535 https://newfi.ru/ | head -c 65536; printf \"\\n\"; else echo \"NO_CURL\"; fi\n\n\n\n \n \n \n Домен припаркован\n \n\n\n
\n
\n
PARKED_PAGE_OK · homelab
\n

Здесь скоро появится новый проект.

\n

Домен уже подключён к инфраструктуре, но основной сервис пока не опубликован. Сейчас это аккуратная техническая заглушка для свободных доменов.

\n
\n
\n \n
\n\n\n\n[command_rc=0]\n\n--- TLS certificate ---\nCOMMAND: if command -v openssl >/dev/null 2>&1; then timeout 20 sh -c \"printf \\\"\\\" | openssl s_client -connect newfi.ru:443 -servername newfi.ru 2>/dev/null | openssl x509 -noout -subject -issuer -serial -dates -ext subjectAltName\"; else echo \"NO_OPENSSL\"; fi\nsubject=CN=newfi.ru\nissuer=C=US, O=Let's Encrypt, CN=YE1\nserial=05857CDD0AC0102BE9D7AA729B23F41AA698\nnotBefore=Jul 1 14:53:39 2026 GMT\nnotAfter=Sep 29 14:53:38 2026 GMT\nX509v3 Subject Alternative Name: \n DNS:newfi.ru, DNS:www.newfi.ru\n[command_rc=0]\n\n===== CONTAINER RUNTIMES =====\n\n--- tool versions ---\nCOMMAND: for c in git curl jq python3 php docker podman kubectl helm k3s crictl nerdctl mysql mariadb redis-cli openssl; do if command -v \"$c\" >/dev/null 2>&1; then printf \"%-12s %s\\n\" \"$c\" \"$(command -v \"$c\")\"; case \"$c\" in git) git --version;; curl) curl --version | head -1;; jq) jq --version;; python3) python3 --version;; php) php -v | head -2;; docker) docker --version;; podman) podman --version;; kubectl) kubectl version --client 2>/dev/null || true;; helm) helm version --short 2>/dev/null || true;; k3s) k3s --version | head -2;; crictl) crictl --version;; nerdctl) nerdctl --version;; mysql|mariadb) \"$c\" --version;; redis-cli) redis-cli --version;; openssl) openssl version;; esac; fi; done\ngit /usr/bin/git\ngit version 2.47.3\ncurl /usr/bin/curl\ncurl 8.14.1 (x86_64-pc-linux-gnu) libcurl/8.14.1 OpenSSL/3.5.6 zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.64.0 nghttp3/1.8.0 librtmp/2.3 OpenLDAP/2.6.10\njq /usr/bin/jq\njq-1.7\npython3 /usr/bin/python3\nPython 3.13.5\npodman /usr/bin/podman\npodman version 5.4.2\nopenssl /usr/bin/openssl\nOpenSSL 3.5.6 7 Apr 2026 (Library: OpenSSL 3.5.6 7 Apr 2026)\n[command_rc=0]\n\n--- Docker containers ---\nCOMMAND: if command -v docker >/dev/null 2>&1; then docker ps -a --no-trunc --format \"table {{.ID}}\\t{{.Names}}\\t{{.Image}}\\t{{.Status}}\\t{{.Ports}}\"; docker volume ls; docker network ls; else echo \"NO_DOCKER\"; fi\nNO_DOCKER\n[command_rc=0]\n\n--- Docker relevant mounts ---\nCOMMAND: if command -v docker >/dev/null 2>&1; then for c in $(docker ps -a --format \"{{.Names}}\" | grep -Ei \"gitea|newfi|xenforo|maria|mysql|redis\" | head -50); do echo \"### $c\"; docker inspect --format \"Image={{.Config.Image}} Restart={{.HostConfig.RestartPolicy.Name}} Mounts={{range .Mounts}}{{.Type}}:{{.Source}}->{{.Destination}};{{end}}\" \"$c\" 2>/dev/null || true; done; else echo \"NO_DOCKER\"; fi\nNO_DOCKER\n[command_rc=0]\n\n--- Podman containers ---\nCOMMAND: if command -v podman >/dev/null 2>&1; then podman ps -a --no-trunc; podman volume ls; else echo \"NO_PODMAN\"; fi\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\naa350cac62aa0235a41c70f8650092e69fa92e815c08c8e4e2aeea65a8accc46 ghcr.io/analogj/scrutiny:latest-omnibus /init 9 days ago Up 9 days 127.0.0.1:8086->8080/tcp scrutiny\n[command_rc=0]\n\n===== KUBERNETES INVENTORY =====\nKUBECTL_NOT_AVAILABLE\n\n===== GITEA DISCOVERY =====\n\n--- Gitea binary and safe configuration keys ---\nCOMMAND: \n if command -v gitea >/dev/null 2>&1; then gitea --version; fi\n find /etc /var/lib/gitea /data /srv /opt /home -maxdepth 6 -type f \\\n \\( -name app.ini -o -name gitea.ini \\) -print 2>/dev/null | head -100 \\\n | while read -r f; do\n echo \"### CONFIG $f\"\n stat -c \"%A %U:%G %s %y %n\" \"$f\" 2>/dev/null || true\n grep -nE \"^[[:space:]]*(APP_NAME|RUN_USER|RUN_MODE|DOMAIN|SSH_DOMAIN|HTTP_ADDR|HTTP_PORT|ROOT_URL|DISABLE_REGISTRATION|INSTALL_LOCK|DB_TYPE|PATH|LFS_START_SERVER|OFFLINE_MODE)[[:space:]]*=\" \"$f\" 2>/dev/null || true\n done\n\n[command_rc=0]\n\n--- Gitea API probes ---\nCOMMAND: \n if command -v curl >/dev/null 2>&1; then\n for base in \\\n http://127.0.0.1:3000 \\\n http://127.0.0.1:3001 \\\n http://gitea:3000 \\\n http://gitea-http:3000 \\\n http://gitea-http.gitea.svc.cluster.local:3000 \\\n https://git.gram1.ru\n do\n echo \"### BASE $base\"\n timeout 12 curl -k -fsS --connect-timeout 4 --max-time 10 \"$base/api/v1/version\" || true\n printf \"\\n\"\n for q in newfi newfdom newf xenforo; do\n echo \"QUERY=$q\"\n timeout 15 curl -k -fsS -G --connect-timeout 4 --max-time 12 \\\n --data-urlencode \"q=$q\" --data-urlencode \"limit=50\" \\\n \"$base/api/v1/repos/search\" || true\n printf \"\\n\"\n done\n done\n else\n echo \"NO_CURL\"\n fi\n\n### BASE http://127.0.0.1:3000\ncurl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server\n\nQUERY=newfi\ncurl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server\n\nQUERY=newfdom\ncurl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server\n\nQUERY=newf\ncurl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server\n\nQUERY=xenforo\ncurl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server\n\n### BASE http://127.0.0.1:3001\ncurl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server\n\nQUERY=newfi\ncurl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server\n\nQUERY=newfdom\ncurl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server\n\nQUERY=newf\ncurl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server\n\nQUERY=xenforo\ncurl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server\n\n### BASE http://gitea:3000\ncurl: (6) Could not resolve host: gitea\n\nQUERY=newfi\ncurl: (6) Could not resolve host: gitea\n\nQUERY=newfdom\ncurl: (6) Could not resolve host: gitea\n\nQUERY=newf\ncurl: (6) Could not resolve host: gitea\n\nQUERY=xenforo\ncurl: (6) Could not resolve host: gitea\n\n### BASE http://gitea-http:3000\ncurl: (6) Could not resolve host: gitea-http\n\nQUERY=newfi\ncurl: (6) Could not resolve host: gitea-http\n\nQUERY=newfdom\ncurl: (6) Could not resolve host: gitea-http\n\nQUERY=newf\ncurl: (6) Could not resolve host: gitea-http\n\nQUERY=xenforo\ncurl: (6) Could not resolve host: gitea-http\n\n### BASE http://gitea-http.gitea.svc.cluster.local:3000\ncurl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local\n\nQUERY=newfi\ncurl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local\n\nQUERY=newfdom\ncurl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local\n\nQUERY=newf\ncurl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local\n\nQUERY=xenforo\ncurl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local\n\n### BASE https://git.gram1.ru\n{\"version\":\"1.26.2\"}\nQUERY=newfi\n{\"ok\":true,\"data\":[]}\nQUERY=newfdom\n{\"ok\":true,\"data\":[]}\nQUERY=newf\n{\"ok\":true,\"data\":[]}\nQUERY=xenforo\n{\"ok\":true,\"data\":[]}\n[command_rc=0]\n\n===== GITEA REPOSITORY FILESYSTEM =====\n\n--- known repository roots ---\nCOMMAND: \n for d in \\\n /var/lib/gitea/data/gitea-repositories \\\n /var/lib/gitea/gitea-repositories \\\n /data/git/repositories \\\n /data/gitea/gitea-repositories \\\n /srv/gitea/data/gitea-repositories \\\n /home/git/gitea-repositories\n do\n if [ -d \"$d\" ]; then\n echo \"ROOT=$d\"\n stat -c \"%A %U:%G %s %y %n\" \"$d\" 2>/dev/null || true\n find \"$d\" -maxdepth 3 -type d -name \"*.git\" -print 2>/dev/null | sort | head -1000\n fi\n done\n\n[command_rc=0]\n\n===== WORKING COPY DISCOVERY =====\n\n--- candidate Git worktrees ---\nCOMMAND: \n for root in /srv /opt /var/www /data /home /workspace /workspaces /mnt; do\n [ -d \"$root\" ] || continue\n find \"$root\" -maxdepth 7 -type d -name .git -print 2>/dev/null\n done | sed \"s#/.git$##\" | sort -u | grep -Ei \"newfi|newfdom|newf|xenforo|portal\" | head -200\n\nsed: -e expression #1, char 9: unterminated `s' command\n[command_rc=0]\n\n===== XENFORO DISCOVERY =====\n\n--- XenForo files ---\nCOMMAND: \n for root in /srv /opt /var/www /data /home /workspace /workspaces /mnt; do\n [ -d \"$root\" ] || continue\n find \"$root\" -maxdepth 9 -type f -path \"*/src/XF.php\" -print 2>/dev/null\n done | sort -u | head -100\n\n[command_rc=0]\n\n===== KUBERNETES POD INTERNAL READ-ONLY PROBES =====\n\n===== BACKUP AND STORAGE EVIDENCE =====\n\n--- backup directories metadata ---\nCOMMAND: \n for d in /backup /backups /var/backups /srv/backup /srv/backups /data/backup /data/backups /mnt/backup /mnt/backups; do\n [ -d \"$d\" ] || continue\n echo \"### $d\"\n stat -c \"%A %U:%G %s %y %n\" \"$d\" 2>/dev/null || true\n find \"$d\" -maxdepth 3 -type f -printf \"%TY-%Tm-%TdT%TH:%TM:%TS %s %p\\n\" 2>/dev/null \\\n | sort -r | head -200\n done\n\n### /var/backups\ndrwxr-xr-x root:root 4096 2026-08-05 19:26:22.485925089 +0300 /var/backups\n2026-08-05T19:26:22.4871881170 1676 /var/backups/skladchik-moderator-assistant/HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z/manifest.json\n2026-08-05T18:23:38.8848347980 1064 /var/backups/homelab-cluster-admin/HOMELAB-CLUSTER-ADMIN-UPDATES-V30-INDEX-WATCHER-ATOMIC-CHANGE-20260805T151800Z/manifest.json\n2026-08-05T18:03:06.2838781070 1064 /var/backups/homelab-cluster-admin/HOMELAB-CLUSTER-ADMIN-UPDATES-V28-MEMBERS-FIXED-ATOMIC-CHANGE-20260805T150500Z/manifest.json\n2026-07-24T13:17:50.1829042900 9886 /var/backups/homelab-vm-local-dumps-2cloud/desired.pre-drain-442.sh\n2026-07-24T13:17:50.1767855920 9886 /var/backups/homelab-vm-local-dumps-2cloud/runtime.pre-drain-442.sh\n2026-07-24T04:27:35.8455169720 121 /var/backups/gitea-relay/gitea-20260724T012733Z.zip.sha256\n2026-07-24T04:27:35.7305152140 38476973 /var/backups/gitea-relay/gitea-20260724T012733Z.zip\n2026-07-23T04:30:17.1876546570 121 /var/backups/gitea-relay/gitea-20260723T013014Z.zip.sha256\n2026-07-23T04:30:17.0676528050 35213513 /var/backups/gitea-relay/gitea-20260723T013014Z.zip\n2026-07-22T23:44:23.5207990880 1176 /var/backups/homelab-reader/homelab-chat-run-linked.pre-270.20260722T205130Z\n2026-07-22T23:38:55.8093299500 686 /var/backups/homelab-reader/homelab-chat-run-linked.pre-267.20260722T204423Z\n2026-07-22T17:07:19.0811873920 482 /var/backups/homelab-reference/OPERATIONS.md.before-tail-closeout.20260722T140719Z\n2026-07-22T11:03:47.1137759030 561 /var/backups/homelab-reference/20260722T081210949547Z/README.md\n2026-07-22T11:03:47.1132880790 1471 /var/backups/homelab-reference/20260722T081210949547Z/manifest.json\n2026-07-22T10:34:58.6978834310 603 /var/backups/homelab-reference/20260722T080015404968Z/README.md\n2026-07-22T10:34:58.6966043260 1743 /var/backups/homelab-reference/20260722T080015404968Z/manifest.json\n2026-07-18T13:52:30.4157800660 20463 /var/backups/skladchik-reports-monitor-supervisor/supervisor.pre-cookie-race-fix-423.py\n2026-07-06T18:49:49.7406450500 7272 /var/backups/homelab-vm-local-dumps-2cloud/runtime.pre-434.sh\n2026-07-06T18:49:49.7406450500 7272 /var/backups/homelab-vm-local-dumps-2cloud/desired.pre-434.sh\n2026-06-30T16:24:58.9872367120 819301 /var/backups/dpkg.status.0\n2026-06-29T21:03:45.6401889080 221140 /var/backups/dpkg.status.1.gz\n2026-06-29T21:03:44.2631678590 6098 /var/backups/apt.extended_states.0\n2026-06-24T11:54:21.1275314850 220453 /var/backups/dpkg.status.2.gz\n2026-06-23T03:39:15.2281940980 219584 /var/backups/dpkg.status.3.gz\n2026-06-23T03:38:46.5077573390 810 /var/backups/apt.extended_states.1.gz\n2026-06-21T01:09:08.3504122800 219552 /var/backups/dpkg.status.4.gz\n2026-06-21T01:08:56.4252370290 799 /var/backups/apt.extended_states.2.gz\n2026-06-20T23:27:28.6047672330 209054 /var/backups/dpkg.status.5.gz\n2026-06-17T11:19:07.3554401710 193756 /var/backups/dpkg.status.6.gz\n2026-06-16T23:16:02.5625482060 256 /var/backups/apt.extended_states.3.gz\n2026-06-15T20:15:32.5513041750 198 /var/backups/apt.extended_states.4.gz\n2026-06-15T00:00:23.6784006090 40960 /var/backups/alternatives.tar.0\n2026-06-14T17:55:00.1310108600 180 /var/backups/apt.extended_states.5.gz\n2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.6.gz\n2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.5.gz\n2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.4.gz\n2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.3.gz\n2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.2.gz\n2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.1.gz\n2026-06-14T12:00:14.9378376070 1709 /var/backups/dpkg.diversions.0\n2026-06-14T10:03:00.2421098020 290 /var/backups/dpkg.statoverride.0\n2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.6.gz\n2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.5.gz\n2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.4.gz\n2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.3.gz\n2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.2.gz\n2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.1.gz\n2026-05-21T14:31:34.0000000000 6 /var/backups/dpkg.arch.0\n2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.6.gz\n2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.5.gz\n2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.4.gz\n2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.3.gz\n2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.2.gz\n2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.1.gz\n[command_rc=0]\n\n--- cron backup references ---\nCOMMAND: for f in /etc/crontab /etc/cron.d/*; do [ -f \"$f\" ] || continue; echo \"### $f\"; grep -nEi \"backup|dump|mysqldump|mariadb|gitea|newfi|xenforo|restic|borg|rclone\" \"$f\" 2>/dev/null || true; done\n### /etc/crontab\n### /etc/cron.d/e2scrub_all\n### /etc/cron.d/homelab-context-refresh\n### /etc/cron.d/homelab-context-refresh.bak.20260721T105117Z\n### /etc/cron.d/homelab-context-refresh.bak.20260721T110341Z\n### /etc/cron.d/homelab-context-refresh.bak.20260721T110857Z\n### /etc/cron.d/homelab-context-refresh.bak.20260721T110932Z\n### /etc/cron.d/vzdump\n1:# cluster wide vzdump cron schedule\n### /etc/cron.d/zfsutils-linux\n[command_rc=0]\n\n--- backup tools ---\nCOMMAND: for c in restic borg rclone duplicity pg_dump mysqldump mariadb-dump; do command -v \"$c\" >/dev/null 2>&1 && { echo \"### $c\"; \"$c\" --version 2>&1 | head -5; }; done\n### restic\nunknown flag: --version\n### rclone\nrclone v1.60.1-DEV\n- os/version: debian 13.5 (64 bit)\n- os/kernel: 7.0.12-1-pve (x86_64)\n- os/type: linux\n- os/arch: amd64\n[command_rc=1]\n\n===== FINAL READ-ONLY ASSERTIONS =====\nchanges_made=false\nmutation_outcome=NO_MUTATION\nproduction_changed=false\nrollback_started=false\nrollback_restored=null\ninventory_finished_at_utc=2026-08-06T13:44:51Z\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"nfro-260806-1630-9c2f\",\"status\":\"SUCCESS\",\"rc\":0,\"changes_made\":false,\"mutation_outcome\":\"NO_MUTATION\",\"production_changed\":false,\"rollback_started\":false,\"rollback_restored\":null,\"control_plane_error\":null}\n" +} diff --git a/runtime/latest.txt b/runtime/latest.txt index 8b46d99..c9db6a5 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,165 +1,852 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=CONTEXT-AUTO-[PRIVATE_IP]701Z +COMMAND_ID=nfro-260806-1630-9c2f STATUS=OK RC=0 HOST=pve01 -COMPONENT=cluster-context -REFERENCE_SHA[PRIVATE_IP]f8edc75fcf[PRIVATE_IP]c[PRIVATE_IP]cc112ceccb6cf[PRIVATE_IP]a4deb8e -ERROR_REGISTER_SHA[PRIVATE_IP]c7fa[PRIVATE_IP]583c4aefac[PRIVATE_IP]1736ed[PRIVATE_IP]ab83 +MODE=verify +COMPONENT=newfi-portal +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 +COMMAND_SHA256=0f5beea2185628e7b6e33ef92110753cad5b9a009ab6203ce75c06fe1bca17cd +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=false +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=0 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=738dc788a996093e6210ccfb7ae6ff47b280283a48c7bc4f053efe73b3bddf43 +SANITIZED_OUTPUT_SHA256=5933d6e26c09a66ec65d3698e388094d233f305a883381a7e3a83bac5cff8790 OUTPUT_BEGIN -GENERATED_AT_UTC=[PRIVATE_IP]T13:17:01Z -Cluster information -------------------- -Name: homelab -Config Version: 3 -Transport: knet -Secure auth: on +HOMELAB_READ_ONLY_INVENTORY_BEGIN +command_id=nfro-260806-1630-9c2f +component=newfi-portal +started_at_utc=2026-08-06T13:44:40Z +read_only=true +production_change_declared=false -Quorum information ------------------- -Date: Thu Aug [PRIVATE_IP] 2026 -Quorum provider: corosync_votequorum -Nodes: 3 -Node ID: [PRIVATE_IP] -Ring ID: 1.db -Quorate: Yes +===== HOST IDENTITY ===== -Votequorum information ----------------------- -Expected votes: 3 -Highest expected: 3 -Total votes: 3 -Quorum: 2 -Flags: Quorate +--- date and timezone --- +COMMAND: date -Is 2>/dev/null || date; date -u -Is 2>/dev/null || date -u; printf "TZ=%s\n" "${TZ:-}" +2026-08-06T16:44:40+03:00 +2026-08-06T13:44:40+00:00 +TZ=Europe/Moscow +[command_rc=0] -Membership information ----------------------- - Nodeid Votes Name -[PRIVATE_IP] [PRIVATE_IP].11 (local) -[PRIVATE_IP] [PRIVATE_IP].13 -[PRIVATE_IP] [PRIVATE_IP].12 +--- identity --- +COMMAND: hostname -f 2>/dev/null || hostname; id; whoami; pwd; umask +pve01.gram1.ru +uid=0(root) gid=990(homelab-command-portal) groups=990(homelab-command-portal) +root +/ +0077 +[command_rc=0] -Membership information ----------------------- - Nodeid Votes Name - 1 1 pve01 (local) - 2 1 pve03 - 3 1 pve02 -[{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/110","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":785395,"vmid":110},{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/111","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":785479,"vmid":111},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/112","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":785440,"vmid":112},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/113","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":785482,"vmid":113},{"cpu":[PRIVATE_IP]68013,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"edge-vm","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":785429,"vmid":130},{"cpu":[PRIVATE_IP]02244,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/150","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"nextcloud","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":785392,"vmid":150},{"cpu":[PRIVATE_IP]915259,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/160","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"forum-prod","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":785475,"vmid":160},{"cpu":[PRIVATE_IP]26718,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/170","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"core-apps","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":785388,"vmid":170},{"cpu":[PRIVATE_IP]68904,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/171","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"monitoring","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":785385,"vmid":171},{"cpu":[PRIVATE_IP]3696,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/180","maxcpu":2,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"cluster-admin","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":785472,"vmid":180},{"cpu":[PRIVATE_IP]939861,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/190","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"homelab-ops-worker","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":785425,"vmid":190},{"cpu":0,"disk":0,"diskread":0,"diskwrite":0,"id":"qemu/9130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":0,"memhost":0,"name":"edge-cold-standby","netin":0,"netout":0,"node":"pve02","status":"stopped","template":0,"type":"qemu","uptime":0,"vmid":9130},{"cgroup-mode":2,"cpu":[PRIVATE_IP]37918,"disk":[PRIVATE_IP],"id":"node/pve02","level":"","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve02","status":"online","type":"node","uptime":785515},{"cgroup-mode":2,"cpu":[PRIVATE_IP]55309,"disk":[PRIVATE_IP],"id":"node/pve01","level":"","maxcpu":24,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve01","status":"online","type":"node","uptime":785497},{"cgroup-mode":2,"cpu":[PRIVATE_IP]24654,"disk":[PRIVATE_IP],"id":"node/pve03","level":"","maxcpu":8,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve03","status":"online","type":"node","uptime":785446},{"content":"iso,import,backup,vztmpl","disk":[PRIVATE_IP],"id":"storage/pve02/local","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"iso,import,backup,vztmpl","disk":[PRIVATE_IP],"id":"storage/pve01/local","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"iso,import,backup,vztmpl","disk":[PRIVATE_IP],"id":"storage/pve03/local","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve02/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve01/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve03/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"id":"network/pve02/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve02","status":"ok","type":"network"},{"id":"network/pve01/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve01","status":"ok","type":"network"},{"id":"network/pve03/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve03","status":"ok","type":"network"}] -Name Type Status Total (KiB) Used (KiB) Available (KiB) % -local dir active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 14.55% -local-lvm lvmthin active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 27.41% - UNIT LOAD ACTIVE SUB DESCRIPTION -● homelab-backup-matrix-refresh.service loaded failed failed Generate unified homelab backup matrix state -● homelab-crypto-portfolio-chart-health.service loaded failed failed Crypto portfolio chart health check -● skladchik-reports-monitor-supervisor.service loaded failed failed Skladchik reports monitor full supervisor +--- operating system --- +COMMAND: uname -a; test -r /etc/os-release && cat /etc/os-release || true +Linux pve01 7.0.12-1-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.12-1 (2026-06-09T21:07Z) x86_64 GNU/Linux +PRETTY_NAME="Debian GNU/Linux 13 (trixie)" +NAME="Debian GNU/Linux" +VERSION_ID="13" +VERSION="13 (trixie)" +VERSION_CODENAME=trixie +DEBIAN_VERSION_FULL=13.5 +ID=debian +HOME_URL="https://www.debian.org/" +SUPPORT_URL="https://www.debian.org/support" +BUG_REPORT_URL="https://bugs.debian.org/" +[command_rc=0] -Legend: LOAD → Reflects whether the unit definition was properly loaded. - ACTIVE → The high-level unit activation state, i.e. generalization of SUB. - SUB → The low-level unit activation state, values depend on unit type. +--- resources --- +COMMAND: uptime 2>/dev/null || true; free -h 2>/dev/null || true; df -hT 2>/dev/null || df -h + 16:44:40 up 9 days, 2:39, 0 users, load average: 0.42, 0.38, 0.38 + total used free shared buff/cache available +Mem: 31Gi 22Gi 3.8Gi 169Mi 5.0Gi 8.3Gi +Swap: 9Gi 0B 9Gi +Filesystem Type Size Used Avail Use% Mounted on +/dev/mapper/pve-root ext4 98G 15G 79G 16% / +udev devtmpfs 15G 0 15G 0% /dev +tmpfs tmpfs 16G 66M 16G 1% /dev/shm +tmpfs tmpfs 3.2G 3.8M 3.2G 1% /run +tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock +efivarfs efivarfs 192K 135K 53K 72% /sys/firmware/efi/efivars +tmpfs tmpfs 16G 89M 16G 1% /tmp +/dev/nvme0n1p2 vfat 1022M 9.1M 1013M 1% /boot/efi +/dev/mapper/pve-homelab--staging ext4 295G 148G 132G 53% /mnt/staging +/dev/fuse fuse 128M 1.4M 127M 2% /etc/pve +overlay overlay 98G 15G 79G 16% /var/lib/containers/storage/overlay/c638354547700f5f06ca229429e8a557150144d8c21fb899d880f76665f74690/merged +shm tmpfs 63M 0 63M 0% /var/lib/containers/storage/overlay-containers/aa350cac62aa0235a41c70f8650092e69fa92e815c08c8e4e2aeea65a8accc46/userdata/shm +[command_rc=0] -3 loaded units listed. -NEXT LEFT LAST PASSED UNIT ACTIVATES -Thu [PRIVATE_IP] 16:17:14 MSK 11s Thu [PRIVATE_IP] 16:12:14 MSK 4min 48s ago homelab-smartctl-textfile.timer homelab-smartctl-textfile.service -Thu [PRIVATE_IP] 16:17:14 MSK 11s Thu [PRIVATE_IP] 16:12:14 MSK 4min 48s ago netbird-peers-health.timer netbird-peers-health.service -Thu [PRIVATE_IP] 16:17:14 MSK 11s Thu [PRIVATE_IP] 16:16:14 MSK 48s ago homelab-cluster-admin-webpanel-sync.timer homelab-cluster-admin-webpanel-sync.service -Thu [PRIVATE_IP] 16:17:14 MSK 11s Thu [PRIVATE_IP] 16:16:14 MSK 48s ago homelab-private-vpn-hosts-health.timer homelab-private-vpn-hosts-health.service -Thu [PRIVATE_IP] 16:17:33 MSK 30s Thu [PRIVATE_IP] 16:16:30 MSK 32s ago homelab-router-watchdog.timer homelab-router-watchdog.service -Thu [PRIVATE_IP] 16:18:25 MSK 1min 22s Thu [PRIVATE_IP] 16:13:14 MSK 3min 48s ago homelab-crypto-portfolio-chart-health.timer homelab-crypto-portfolio-chart-health.service -Thu [PRIVATE_IP] 16:18:57 MSK 1min 54s Thu [PRIVATE_IP] 16:16:48 MSK 14s ago homelab-cluster-admin-inventory-sync.timer homelab-cluster-admin-inventory-sync.service -Thu [PRIVATE_IP] 16:19:16 MSK 2min 13s Thu [PRIVATE_IP] 16:14:07 MSK 2min 55s ago homelab-health-metrics.timer homelab-health-metrics.service -Thu [PRIVATE_IP] 16:22:27 MSK 5min Thu [PRIVATE_IP] 16:12:27 MSK 4min 36s ago skladchik-reports-monitor-supervisor.timer skladchik-reports-monitor-supervisor.service -Thu [PRIVATE_IP] 16:22:27 MSK 5min Thu [PRIVATE_IP] 16:07:27 MSK 9min ago prometheus-node-exporter-apt.timer prometheus-node-exporter-apt.service -Thu [PRIVATE_IP] 16:23:19 MSK 6min Thu [PRIVATE_IP] 15:50:36 MSK 26min ago homelab-reference-refresh.timer homelab-reference-refresh.service -Thu [PRIVATE_IP] 16:23:27 MSK 6min Thu [PRIVATE_IP] 16:08:27 MSK 8min ago homelab-disk-space-health.timer homelab-disk-space-health.service -Thu [PRIVATE_IP] 16:27:50 MSK 10min Thu [PRIVATE_IP] 16:12:50 MSK 4min 12s ago homelab-pve03-staging-capacity-health.timer homelab-pve03-staging-capacity-health.service -Thu [PRIVATE_IP] 16:27:50 MSK 10min Thu [PRIVATE_IP] 16:12:50 MSK 4min 12s ago prometheus-node-exporter-nvme.timer prometheus-node-exporter-nvme.service -Thu [PRIVATE_IP] 16:30:00 MSK 12min Thu [PRIVATE_IP] 16:15:14 MSK 1min 48s ago homelab-incident-journal.timer homelab-incident-journal.service -Thu [PRIVATE_IP] 16:30:14 MSK 13min Thu [PRIVATE_IP] 16:15:46 MSK 1min 16s ago homelab-forum-snuffleupagus-health.timer homelab-forum-snuffleupagus-health.service -Thu [PRIVATE_IP] 16:30:26 MSK 13min Thu [PRIVATE_IP] 16:03:07 MSK 13min ago homelab-mkdocs-auto-refresh.timer homelab-mkdocs-auto-refresh.service -Thu [PRIVATE_IP] 16:30:31 MSK 13min Thu [PRIVATE_IP] 16:16:27 MSK 36s ago homelab-external-probe-vps-health.timer homelab-external-probe-vps-health.service -Thu [PRIVATE_IP] 16:31:14 MSK 14min Thu [PRIVATE_IP] 16:16:27 MSK 36s ago homelab-duty-admin-v2.timer homelab-duty-admin-v2.service -Thu [PRIVATE_IP] 19:05:29 MSK 2h 48min Thu [PRIVATE_IP] 14:58:58 MSK 1h 18min ago homelab-cluster-admin-update-visibility.timer homelab-cluster-admin-update-visibility.service -Thu [PRIVATE_IP] 20:08:26 MSK 3h 51min Thu [PRIVATE_IP] 14:08:26 MSK 2h 8min ago homelab-vps-identity-audit.timer homelab-vps-identity-audit.service -Fri [PRIVATE_IP] 00:00:00 MSK 7h Thu [PRIVATE_IP] 00:00:07 MSK 16h ago dpkg-db-backup.timer dpkg-db-backup.service -Fri [PRIVATE_IP] 00:03:37 MSK 7h Thu [PRIVATE_IP] 00:08:45 MSK 16h ago homelab-evidence-catalog.timer homelab-evidence-catalog.service -Fri [PRIVATE_IP] 00:08:40 MSK 7h Thu [PRIVATE_IP] 00:15:08 MSK 16h ago homelab-quality-gate.timer homelab-quality-gate.service -Fri [PRIVATE_IP] 00:09:24 MSK 7h Thu [PRIVATE_IP] 00:14:50 MSK 16h ago homelab-docker-health.timer homelab-docker-health.service -Fri [PRIVATE_IP] 00:11:18 MSK 7h Thu [PRIVATE_IP] 00:17:00 MSK 16h ago homelab-storage-capacity.timer homelab-storage-capacity.service -Fri [PRIVATE_IP] 00:16:36 MSK 7h Thu [PRIVATE_IP] 00:55:50 MSK 15h ago logrotate.timer logrotate.service -Fri [PRIVATE_IP] 00:34:16 MSK 8h Thu [PRIVATE_IP] 15:46:29 MSK 30min ago apt-daily.timer apt-daily.service -Fri [PRIVATE_IP] 03:50:00 MSK 11h Thu [PRIVATE_IP] 03:50:07 MSK 12h ago filebrowser-offhost-sync.timer filebrowser-offhost-sync.service -Fri [PRIVATE_IP] 04:13:12 MSK 11h Thu [PRIVATE_IP] 05:58:07 MSK 10h ago pve-daily-update.timer pve-daily-update.service -Fri [PRIVATE_IP] 04:37:23 MSK 12h Thu [PRIVATE_IP] 04:43:05 MSK 11h ago homelab-edge-vm-offhost-freshness.timer homelab-edge-vm-offhost-freshness.service -Fri [PRIVATE_IP] 04:56:55 MSK 12h Thu [PRIVATE_IP] 05:04:07 MSK 11h ago homelab-sops-edge-secret-coverage.timer homelab-sops-edge-secret-coverage.service -Fri [PRIVATE_IP] 06:50:47 MSK 14h Thu [PRIVATE_IP] 06:44:24 MSK 9h ago apt-daily-upgrade.timer apt-daily-upgrade.service -Fri [PRIVATE_IP] 07:05:18 MSK 14h Thu [PRIVATE_IP] 07:04:50 MSK 9h ago homelab-drift-check.timer homelab-drift-check.service -Fri [PRIVATE_IP] 07:31:03 MSK 15h Thu [PRIVATE_IP] 07:30:07 MSK 8h ago homelab-service-registry-check.timer homelab-service-registry-check.service -Fri [PRIVATE_IP] 07:45:46 MSK 15h Thu [PRIVATE_IP] 07:45:37 MSK 8h ago homelab-alerting-health.timer homelab-alerting-health.service -Fri [PRIVATE_IP] 07:48:43 MSK 15h Thu [PRIVATE_IP] 07:51:14 MSK 8h ago homelab-desired-state-sync.timer homelab-desired-state-sync.service -Fri [PRIVATE_IP] 07:53:42 MSK 15h Thu [PRIVATE_IP] 07:42:07 MSK 8h ago homelab-runbook-generate.timer homelab-runbook-generate.service -Fri [PRIVATE_IP] 07:53:43 MSK 15h Thu [PRIVATE_IP] 07:54:14 MSK 8h ago homelab-dependency-map-check.timer homelab-dependency-map-check.service -Fri [PRIVATE_IP] 08:11:59 MSK 15h Thu [PRIVATE_IP] 08:00:50 MSK 8h ago homelab-duty-admin-report.timer homelab-duty-admin-report.service -Fri [PRIVATE_IP] 08:12:25 MSK 15h Thu [PRIVATE_IP] 08:25:50 MSK 7h ago homelab-kuma-monitor-policy.timer homelab-kuma-monitor-policy.service -Fri [PRIVATE_IP] 08:15:09 MSK 15h Thu [PRIVATE_IP] 08:04:07 MSK 8h ago homelab-overall-health.timer homelab-overall-health.service -Fri [PRIVATE_IP] 08:23:58 MSK 16h Thu [PRIVATE_IP] 08:18:07 MSK 7h ago homelab-final-readiness-gate.timer homelab-final-readiness-gate.service -Fri [PRIVATE_IP] 08:36:36 MSK 16h Thu [PRIVATE_IP] 08:30:07 MSK 7h ago homelab-capacity-risk.timer homelab-capacity-risk.service -Fri [PRIVATE_IP] 08:46:03 MSK 16h Thu [PRIVATE_IP] 08:51:50 MSK 7h ago immich-media-offhost-sync.timer immich-media-offhost-sync.service -Fri [PRIVATE_IP] 08:47:27 MSK 16h Thu [PRIVATE_IP] 08:38:50 MSK 7h ago homelab-secret-exposure-guard.timer homelab-secret-exposure-guard.service -Fri [PRIVATE_IP] 08:55:01 MSK 16h Thu [PRIVATE_IP] 08:55:57 MSK 7h ago homelab-cluster-passport.timer homelab-cluster-passport.service -Fri [PRIVATE_IP] 09:00:59 MSK 16h Thu [PRIVATE_IP] 08:53:50 MSK 7h ago homelab-golden-state-index.timer homelab-golden-state-index.service -Fri [PRIVATE_IP] 09:21:19 MSK 17h Thu [PRIVATE_IP] 09:15:26 MSK 7h ago memos-offhost-sync.timer memos-offhost-sync.service -Fri [PRIVATE_IP] 09:23:25 MSK 17h Thu [PRIVATE_IP] 00:30:50 MSK 15h ago man-db.timer man-db.service -Fri [PRIVATE_IP] 10:15:00 MSK 17h Thu [PRIVATE_IP] 10:15:07 MSK 6h ago skladchik-reports-monitor-monthly-selftest-watch.timer skladchik-reports-monitor-monthly-selftest-watch.service -Fri [PRIVATE_IP] 14:20:26 MSK 22h Thu [PRIVATE_IP] 14:20:26 MSK 1h 56min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service -Sun [PRIVATE_IP] 03:10:03 MSK 2 days Sun [PRIVATE_IP] 03:10:25 MSK 4 days ago xfs_scrub_all.timer xfs_scrub_all.service -Sun [PRIVATE_IP] 03:10:43 MSK 2 days Sun [PRIVATE_IP] 03:10:50 MSK 4 days ago e2scrub_all.timer e2scrub_all.service -Mon [PRIVATE_IP] 00:03:20 MSK 3 days Mon [PRIVATE_IP] 00:11:50 MSK 3 days ago homelab-secret-sanity.timer homelab-secret-sanity.service -Mon [PRIVATE_IP] 01:30:42 MSK 3 days Mon [PRIVATE_IP] 01:17:56 MSK 3 days ago fstrim.timer fstrim.service -- - - - prometheus-node-exporter-ipmitool-sensor.timer prometheus-node-exporter-ipmitool-sensor.service -- - - - prometheus-node-exporter-mellanox-hca-temp.timer prometheus-node-exporter-mellanox-hca-temp.service -- - - - prometheus-node-exporter-smartmon.timer prometheus-node-exporter-smartmon.service +--- processes relevant to portal --- +COMMAND: ps auxww 2>/dev/null | grep -Ei "[g]itea|[x]enforo|[n]ewfi|[n]ginx|[p]hp-fpm|[m]ariadb|[m]ysqld|[r]edis|[k]3s|[k]ube" | head -300 || true +root 3334259 0.0 0.0 7620 3540 ? Ss 16:44 0:00 bash /usr/local/sbin/homelab-chat-run nfro-260806-1630-9c2f verify newfi-portal -- /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh +root 3334282 0.0 0.0 6016 1948 ? S 16:44 0:00 timeout --foreground --preserve-status 900 /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh +root 3334283 0.0 0.0 7620 3524 ? S 16:44 0:00 /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh +root 3334319 0.0 0.0 7620 2024 ? S 16:44 0:00 /usr/bin/bash /var/lib/homelab-command-adapter/capsules/3abb6bd6d742e01a236e70b15721df1f1cefdac62044cbc93a62dc58700a2a67/payload/newfi_readonly_inventory.sh +[command_rc=0] -59 timers listed. -- Обрезанная, повреждённая или частично вставленная команда считается невыполненной; сначала проводится side-effect audit. -- Хвост parse-ошибки закрывается только после доказательства отсутствия изменений и временных артефактов. -- Proof: /var/lib/homelab-change-sets/operator-command-size-guard-v[PRIVATE_IP]T182653Z/report.txt +--- listeners --- +COMMAND: ss -lntup 2>/dev/null | head -300 || netstat -lntup 2>/dev/null | head -300 || true +Netid State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess +udp UNCONN 0 0 0.0.0.0:51820 0.0.0.0:* +udp UNCONN 0 0 127.0.0.1:3128 0.0.0.0:* users:(("netbird",pid=1286,fd=17)) +udp UNCONN 0 0 [PRIVATE_IP]:5405 0.0.0.0:* users:(("corosync",pid=1741,fd=28)) +udp UNCONN 0 0 100.100.131.41:53 0.0.0.0:* users:(("netbird",pid=1286,fd=24)) +udp UNCONN 0 0 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=883,fd=5),("systemd",pid=1,fd=311)) +udp UNCONN 0 0 127.0.0.1:323 0.0.0.0:* users:(("chronyd",pid=1177,fd=5)) +udp UNCONN 0 0 [::]:51820 [::]:* +udp UNCONN 0 0 [::]:111 [::]:* users:(("rpcbind",pid=883,fd=7),("systemd",pid=1,fd=313)) +udp UNCONN 0 0 [::1]:323 [::]:* users:(("chronyd",pid=1177,fd=6)) +tcp LISTEN 0 100 127.0.0.1:25 0.0.0.0:* users:(("master",pid=1521,fd=13)) +tcp LISTEN 0 4096 127.0.0.1:85 0.0.0.0:* users:(("pvedaemon worke",pid=3306169,fd=6),("pvedaemon worke",pid=2967018,fd=6),("pvedaemon worke",pid=2621560,fd=6),("pvedaemon",pid=1799,fd=6)) +tcp LISTEN 0 5 0.0.0.0:8099 0.0.0.0:* users:(("python3",pid=1279,fd=3)) +tcp LISTEN 0 16 127.0.0.1:3493 0.0.0.0:* users:(("upsd",pid=1820,fd=4)) +tcp LISTEN 0 4096 100.100.131.41:53 0.0.0.0:* users:(("netbird",pid=1286,fd=25)) +tcp LISTEN 0 5 127.0.0.1:18787 0.0.0.0:* users:(("python3",pid=3558039,fd=6)) +tcp LISTEN 0 4096 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=883,fd=4),("systemd",pid=1,fd=310)) +tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1327,fd=6)) +tcp LISTEN 0 4096 127.0.0.1:8086 0.0.0.0:* users:(("conmon",pid=1583,fd=5)) +tcp LISTEN 0 5 [PRIVATE_IP]:18788 0.0.0.0:* users:(("python3",pid=1282,fd=3)) +tcp LISTEN 0 5 0.0.0.0:9101 0.0.0.0:* users:(("python3",pid=1278,fd=3)) +tcp LISTEN 0 16 [PRIVATE_IP]:3493 0.0.0.0:* users:(("upsd",pid=1820,fd=5)) +tcp LISTEN 0 5 [PRIVATE_IP]:18094 0.0.0.0:* users:(("python3",pid=1131485,fd=3)) +tcp LISTEN 0 5 [PRIVATE_IP]:18095 0.0.0.0:* users:(("python3",pid=1516647,fd=3)) +tcp LISTEN 0 4096 *:8006 *:* users:(("pveproxy worker",pid=3306165,fd=6),("pveproxy worker",pid=3199145,fd=6),("pveproxy worker",pid=3074659,fd=6),("pveproxy",pid=1846,fd=6)) +tcp LISTEN 0 4096 [::]:111 [::]:* users:(("rpcbind",pid=883,fd=6),("systemd",pid=1,fd=312)) +tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1327,fd=7)) +tcp LISTEN 0 4096 *:3128 *:* users:(("spiceproxy work",pid=381351,fd=6),("spiceproxy",pid=1855,fd=6)) +tcp LISTEN 0 100 [::1]:25 [::]:* users:(("master",pid=1521,fd=14)) +tcp LISTEN 0 4096 *:9100 *:* users:(("prometheus-node",pid=980,fd=3)) +[command_rc=0] -## HOMELAB_ADMIN_CLI_CONTRACT_[PRIVATE_IP] -- Поддерживаемые команды: version, status, lint TASK_DIR, validate TASK_DIR, run TASK_DIR PHASE. -- Отдельная команда --help отсутствует. Неизвестный аргумент печатает usage и штатно возвращает RC=64. -- Нельзя трактовать RC=64 от --help как неисправность runner. -- Для проверки доступности runner использовать homelab-admin version; для структуры CLI использовать зафиксированную usage-строку. -- Proof: /var/lib/homelab-change-sets/homelab-admin-cli-contract-fix-v[PRIVATE_IP]T183338Z/report.txt +--- systemd services --- +COMMAND: systemctl list-units --type=service --all --no-pager 2>/dev/null | grep -Ei "gitea|newfi|xenforo|nginx|php|maria|mysql|redis|docker|containerd|k3s|kube" | head -300 || true +● docker.service not-found inactive dead docker.service + homelab-docker-health.service loaded inactive dead Homelab Docker health readonly collector +[command_rc=0] -AUTOMATIC_CLUSTER_CONTEXT_REFRESH_[PRIVATE_IP] -Collector: /usr/local/sbin/homelab-context-collect -Scheduler: hourly at minute 17 via /etc/cron.d/homelab-context-refresh -Destination: immutable Gitea runtime history with CONTEXT-AUTO UTC command IDs. +--- systemd timers --- +COMMAND: systemctl list-timers --all --no-pager 2>/dev/null | grep -Ei "backup|gitea|newfi|xenforo|cert|renew|database|mysql|maria" | head -300 || true +Fri 2026-08-07 00:00:00 MSK 7h Thu 2026-08-06 00:00:07 MSK 16h ago dpkg-db-backup.timer dpkg-db-backup.service +[command_rc=0] -AUTOMATIC_CLUSTER_CONTEXT_REFRESH_DIRECT_[PRIVATE_IP] -Publisher: /usr/local/sbin/homelab-context-refresh-direct -Schedule: hourly at minute 17. -Destination: immutable assistant-runtime history with CONTEXT-AUTO UTC IDs. -ANTI_REGRESSION_TOKEN=HOMELAB_VM_2CLOUD_444_OUTER_LAUNCHER_BOUNDARY_REQUIRED -- Anti-regression: validate the complete outer launcher with a shell syntax check and verify the wrapper argument boundary before issuing it. -- Infrastructure action executed: none. -- Backup payload impact: none. -- Production impact: none. -- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. -- Registered at: [PRIVATE_IP]T11:20:32Z +===== DNS HTTP TLS FOR NEWFI.RU ===== + +--- resolver configuration --- +COMMAND: cat /etc/resolv.conf 2>/dev/null || true; getent hosts newfi.ru 2>/dev/null || true; getent ahosts newfi.ru 2>/dev/null || true +# Generated by NetBird +# The original file can be restored from /etc/resolv.conf.original.netbird + +search netbird.selfhosted gram1.ru +nameserver 100.100.131.41 +95.84.154.183 newfi.ru +95.84.154.183 STREAM newfi.ru +95.84.154.183 DGRAM +95.84.154.183 RAW +[command_rc=0] + +--- DNS records --- +COMMAND: if command -v dig >/dev/null 2>&1; then for t in A AAAA CNAME NS MX TXT SOA CAA; do echo "### $t"; timeout 15 dig +time=3 +tries=1 newfi.ru "$t"; done; elif command -v nslookup >/dev/null 2>&1; then nslookup newfi.ru; else echo "NO_DNS_TOOL"; fi +### A + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru A +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32658 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN A + +;; ANSWER SECTION: +newfi.ru. 134 IN A 95.84.154.183 + +;; Query time: 1 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 61 + +### AAAA + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru AAAA +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1055 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN AAAA + +;; AUTHORITY SECTION: +newfi.ru. 1634 IN SOA sara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800 + +;; Query time: 1 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 121 + +### CNAME + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru CNAME +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12283 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN CNAME + +;; AUTHORITY SECTION: +newfi.ru. 1800 IN SOA sara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800 + +;; Query time: 7 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 121 + +### NS + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru NS +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57211 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN NS + +;; ANSWER SECTION: +newfi.ru. 6873 IN NS vern.ns.cloudflare.com. +newfi.ru. 6873 IN NS sara.ns.cloudflare.com. + +;; Query time: 1 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 125 + +### MX + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru MX +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36967 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN MX + +;; AUTHORITY SECTION: +newfi.ru. 1800 IN SOA sara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800 + +;; Query time: 7 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 121 + +### TXT + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru TXT +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14684 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN TXT + +;; ANSWER SECTION: +newfi.ru. 300 IN TXT "v=spf1 -all" + +;; Query time: 8 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 69 + +### SOA + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru SOA +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56593 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN SOA + +;; ANSWER SECTION: +newfi.ru. 1800 IN SOA sara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800 + +;; Query time: 8 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 121 + +### CAA + +; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +time=3 +tries=1 newfi.ru CAA +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42605 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 1212 +;; QUESTION SECTION: +;newfi.ru. IN CAA + +;; AUTHORITY SECTION: +newfi.ru. 1800 IN SOA sara.ns.cloudflare.com. dns.cloudflare.com. 2409716222 10000 2400 604800 1800 + +;; Query time: 8 msec +;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP) +;; WHEN: Thu Aug 06 16:44:40 MSK 2026 +;; MSG SIZE rcvd: 121 + +[command_rc=0] + +--- HTTP probe --- +COMMAND: if command -v curl >/dev/null 2>&1; then for u in http://newfi.ru/ https://newfi.ru/ https://www.newfi.ru/; do echo "### $u"; timeout 25 curl -k -sS -L --max-redirs 5 --connect-timeout 7 --max-time 20 -D - -o /dev/null "$u" || true; done; else echo "NO_CURL"; fi +### http://newfi.ru/ +HTTP/1.1 301 Moved Permanently +Date: Thu, 06 Aug 2026 13:44:40 GMT +Content-Type: text/html +Content-Length: 140 +Connection: keep-alive +Location: https://newfi.ru/ +Origin-Agent-Cluster: ?1 +X-DNS-Prefetch-Control: off +X-Content-Type-Options: nosniff +X-Permitted-Cross-Domain-Policies: none +Referrer-Policy: strict-origin-when-cross-origin + +HTTP/2 200 +date: Thu, 06 Aug 2026 13:44:40 GMT +content-type: text/html +content-length: 3999 +vary: Accept-Encoding +last-modified: Wed, 01 Jul 2026 16:54:46 GMT +origin-agent-cluster: ?1 +x-dns-prefetch-control: off +x-content-type-options: nosniff +x-permitted-cross-domain-policies: none +referrer-policy: strict-origin-when-cross-origin +x-parked-domains: managed + +### https://newfi.ru/ +HTTP/2 200 +date: Thu, 06 Aug 2026 13:44:40 GMT +content-type: text/html +content-length: 3999 +vary: Accept-Encoding +last-modified: Wed, 01 Jul 2026 16:54:46 GMT +origin-agent-cluster: ?1 +x-dns-prefetch-control: off +x-content-type-options: nosniff +x-permitted-cross-domain-policies: none +referrer-policy: strict-origin-when-cross-origin +x-parked-domains: managed + +### https://www.newfi.ru/ +HTTP/2 200 +date: Thu, 06 Aug 2026 13:44:43 GMT +content-type: text/html +content-length: 3999 +vary: Accept-Encoding +last-modified: Wed, 01 Jul 2026 16:54:46 GMT +origin-agent-cluster: ?1 +x-dns-prefetch-control: off +x-content-type-options: nosniff +x-permitted-cross-domain-policies: none +referrer-policy: strict-origin-when-cross-origin +x-parked-domains: managed + +[command_rc=0] + +--- HTTPS body prefix --- +COMMAND: if command -v curl >/dev/null 2>&1; then timeout 25 curl -k -sS -L --max-redirs 5 --connect-timeout 7 --max-time 20 --range 0-65535 https://newfi.ru/ | head -c 65536; printf "\n"; else echo "NO_CURL"; fi + + + + + + + Домен припаркован + + + + +
+
PARKED_PAGE_OK · homelab
+

Здесь скоро появится новый проект.

+

Домен уже подключён к инфраструктуре, но основной сервис пока не опубликован. Сейчас это аккуратная техническая заглушка для свободных доменов.

+
+
+ +
+ + + +[command_rc=0] + +--- TLS certificate --- +COMMAND: if command -v openssl >/dev/null 2>&1; then timeout 20 sh -c "printf \"\" | openssl s_client -connect newfi.ru:443 -servername newfi.ru 2>/dev/null | openssl x509 -noout -subject -issuer -serial -dates -ext subjectAltName"; else echo "NO_OPENSSL"; fi +subject=CN=newfi.ru +issuer=C=US, O=Let's Encrypt, CN=YE1 +serial=05857CDD0AC0102BE9D7AA729B23F41AA698 +notBefore=Jul 1 14:53:39 2026 GMT +notAfter=Sep 29 14:53:38 2026 GMT +X509v3 Subject Alternative Name: + DNS:newfi.ru, DNS:www.newfi.ru +[command_rc=0] + +===== CONTAINER RUNTIMES ===== + +--- tool versions --- +COMMAND: for c in git curl jq python3 php docker podman kubectl helm k3s crictl nerdctl mysql mariadb redis-cli openssl; do if command -v "$c" >/dev/null 2>&1; then printf "%-12s %s\n" "$c" "$(command -v "$c")"; case "$c" in git) git --version;; curl) curl --version | head -1;; jq) jq --version;; python3) python3 --version;; php) php -v | head -2;; docker) docker --version;; podman) podman --version;; kubectl) kubectl version --client 2>/dev/null || true;; helm) helm version --short 2>/dev/null || true;; k3s) k3s --version | head -2;; crictl) crictl --version;; nerdctl) nerdctl --version;; mysql|mariadb) "$c" --version;; redis-cli) redis-cli --version;; openssl) openssl version;; esac; fi; done +git /usr/bin/git +git version 2.47.3 +curl /usr/bin/curl +curl 8.14.1 (x86_64-pc-linux-gnu) libcurl/8.14.1 OpenSSL/3.5.6 zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.64.0 nghttp3/1.8.0 librtmp/2.3 OpenLDAP/2.6.10 +jq /usr/bin/jq +jq-1.7 +python3 /usr/bin/python3 +Python 3.13.5 +podman /usr/bin/podman +podman version 5.4.2 +openssl /usr/bin/openssl +OpenSSL 3.5.6 7 Apr 2026 (Library: OpenSSL 3.5.6 7 Apr 2026) +[command_rc=0] + +--- Docker containers --- +COMMAND: if command -v docker >/dev/null 2>&1; then docker ps -a --no-trunc --format "table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"; docker volume ls; docker network ls; else echo "NO_DOCKER"; fi +NO_DOCKER +[command_rc=0] + +--- Docker relevant mounts --- +COMMAND: if command -v docker >/dev/null 2>&1; then for c in $(docker ps -a --format "{{.Names}}" | grep -Ei "gitea|newfi|xenforo|maria|mysql|redis" | head -50); do echo "### $c"; docker inspect --format "Image={{.Config.Image}} Restart={{.HostConfig.RestartPolicy.Name}} Mounts={{range .Mounts}}{{.Type}}:{{.Source}}->{{.Destination}};{{end}}" "$c" 2>/dev/null || true; done; else echo "NO_DOCKER"; fi +NO_DOCKER +[command_rc=0] + +--- Podman containers --- +COMMAND: if command -v podman >/dev/null 2>&1; then podman ps -a --no-trunc; podman volume ls; else echo "NO_PODMAN"; fi +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +aa350cac62aa0235a41c70f8650092e69fa92e815c08c8e4e2aeea65a8accc46 ghcr.io/analogj/scrutiny:latest-omnibus /init 9 days ago Up 9 days 127.0.0.1:8086->8080/tcp scrutiny +[command_rc=0] + +===== KUBERNETES INVENTORY ===== +KUBECTL_NOT_AVAILABLE + +===== GITEA DISCOVERY ===== + +--- Gitea binary and safe configuration keys --- +COMMAND: + if command -v gitea >/dev/null 2>&1; then gitea --version; fi + find /etc /var/lib/gitea /data /srv /opt /home -maxdepth 6 -type f \ + \( -name app.ini -o -name gitea.ini \) -print 2>/dev/null | head -100 \ + | while read -r f; do + echo "### CONFIG $f" + stat -c "%A %U:%G %s %y %n" "$f" 2>/dev/null || true + grep -nE "^[[:space:]]*(APP_NAME|RUN_USER|RUN_MODE|DOMAIN|SSH_DOMAIN|HTTP_ADDR|HTTP_PORT|ROOT_URL|DISABLE_REGISTRATION|INSTALL_LOCK|DB_TYPE|PATH|LFS_START_SERVER|OFFLINE_MODE)[[:space:]]*=" "$f" 2>/dev/null || true + done + +[command_rc=0] + +--- Gitea API probes --- +COMMAND: + if command -v curl >/dev/null 2>&1; then + for base in \ + http://127.0.0.1:3000 \ + http://127.0.0.1:3001 \ + http://gitea:3000 \ + http://gitea-http:3000 \ + http://gitea-http.gitea.svc.cluster.local:3000 \ + https://git.gram1.ru + do + echo "### BASE $base" + timeout 12 curl -k -fsS --connect-timeout 4 --max-time 10 "$base/api/v1/version" || true + printf "\n" + for q in newfi newfdom newf xenforo; do + echo "QUERY=$q" + timeout 15 curl -k -fsS -G --connect-timeout 4 --max-time 12 \ + --data-urlencode "q=$q" --data-urlencode "limit=50" \ + "$base/api/v1/repos/search" || true + printf "\n" + done + done + else + echo "NO_CURL" + fi + +### BASE http://127.0.0.1:3000 +curl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server + +QUERY=newfi +curl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server + +QUERY=newfdom +curl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server + +QUERY=newf +curl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server + +QUERY=xenforo +curl: (7) Failed to connect to 127.0.0.1 port 3000 after 0 ms: Could not connect to server + +### BASE http://127.0.0.1:3001 +curl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server + +QUERY=newfi +curl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server + +QUERY=newfdom +curl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server + +QUERY=newf +curl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server + +QUERY=xenforo +curl: (7) Failed to connect to 127.0.0.1 port 3001 after 0 ms: Could not connect to server + +### BASE http://gitea:3000 +curl: (6) Could not resolve host: gitea + +QUERY=newfi +curl: (6) Could not resolve host: gitea + +QUERY=newfdom +curl: (6) Could not resolve host: gitea + +QUERY=newf +curl: (6) Could not resolve host: gitea + +QUERY=xenforo +curl: (6) Could not resolve host: gitea + +### BASE http://gitea-http:3000 +curl: (6) Could not resolve host: gitea-http + +QUERY=newfi +curl: (6) Could not resolve host: gitea-http + +QUERY=newfdom +curl: (6) Could not resolve host: gitea-http + +QUERY=newf +curl: (6) Could not resolve host: gitea-http + +QUERY=xenforo +curl: (6) Could not resolve host: gitea-http + +### BASE http://gitea-http.gitea.svc.cluster.local:3000 +curl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local + +QUERY=newfi +curl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local + +QUERY=newfdom +curl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local + +QUERY=newf +curl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local + +QUERY=xenforo +curl: (6) Could not resolve host: gitea-http.gitea.svc.cluster.local + +### BASE https://git.gram1.ru +{"version":"1.26.2"} +QUERY=newfi +{"ok":true,"data":[]} +QUERY=newfdom +{"ok":true,"data":[]} +QUERY=newf +{"ok":true,"data":[]} +QUERY=xenforo +{"ok":true,"data":[]} +[command_rc=0] + +===== GITEA REPOSITORY FILESYSTEM ===== + +--- known repository roots --- +COMMAND: + for d in \ + /var/lib/gitea/data/gitea-repositories \ + /var/lib/gitea/gitea-repositories \ + /data/git/repositories \ + /data/gitea/gitea-repositories \ + /srv/gitea/data/gitea-repositories \ + /home/git/gitea-repositories + do + if [ -d "$d" ]; then + echo "ROOT=$d" + stat -c "%A %U:%G %s %y %n" "$d" 2>/dev/null || true + find "$d" -maxdepth 3 -type d -name "*.git" -print 2>/dev/null | sort | head -1000 + fi + done + +[command_rc=0] + +===== WORKING COPY DISCOVERY ===== + +--- candidate Git worktrees --- +COMMAND: + for root in /srv /opt /var/www /data /home /workspace /workspaces /mnt; do + [ -d "$root" ] || continue + find "$root" -maxdepth 7 -type d -name .git -print 2>/dev/null + done | sed "s#/.git$##" | sort -u | grep -Ei "newfi|newfdom|newf|xenforo|portal" | head -200 + +sed: -e expression #1, char 9: unterminated `s' command +[command_rc=0] + +===== XENFORO DISCOVERY ===== + +--- XenForo files --- +COMMAND: + for root in /srv /opt /var/www /data /home /workspace /workspaces /mnt; do + [ -d "$root" ] || continue + find "$root" -maxdepth 9 -type f -path "*/src/XF.php" -print 2>/dev/null + done | sort -u | head -100 + +[command_rc=0] + +===== KUBERNETES POD INTERNAL READ-ONLY PROBES ===== + +===== BACKUP AND STORAGE EVIDENCE ===== + +--- backup directories metadata --- +COMMAND: + for d in /backup /backups /var/backups /srv/backup /srv/backups /data/backup /data/backups /mnt/backup /mnt/backups; do + [ -d "$d" ] || continue + echo "### $d" + stat -c "%A %U:%G %s %y %n" "$d" 2>/dev/null || true + find "$d" -maxdepth 3 -type f -printf "%TY-%Tm-%TdT%TH:%TM:%TS %s %p\n" 2>/dev/null \ + | sort -r | head -200 + done + +### /var/backups +drwxr-xr-x root:root 4096 2026-08-05 19:26:22.485925089 +0300 /var/backups +2026-08-05T19:26:22.4871881170 1676 /var/backups/skladchik-moderator-assistant/HOMELAB-SKLADCHIK-MODERATOR-CORE-INSTALL-V2-20260805T162500Z/manifest.json +2026-08-05T18:23:38.8848347980 1064 /var/backups/homelab-cluster-admin/HOMELAB-CLUSTER-ADMIN-UPDATES-V30-INDEX-WATCHER-ATOMIC-CHANGE-20260805T151800Z/manifest.json +2026-08-05T18:03:06.2838781070 1064 /var/backups/homelab-cluster-admin/HOMELAB-CLUSTER-ADMIN-UPDATES-V28-MEMBERS-FIXED-ATOMIC-CHANGE-20260805T150500Z/manifest.json +2026-07-24T13:17:50.1829042900 9886 /var/backups/homelab-vm-local-dumps-2cloud/desired.pre-drain-442.sh +2026-07-24T13:17:50.1767855920 9886 /var/backups/homelab-vm-local-dumps-2cloud/runtime.pre-drain-442.sh +2026-07-24T04:27:35.8455169720 121 /var/backups/gitea-relay/gitea-20260724T012733Z.zip.sha256 +2026-07-24T04:27:35.7305152140 38476973 /var/backups/gitea-relay/gitea-20260724T012733Z.zip +2026-07-23T04:30:17.1876546570 121 /var/backups/gitea-relay/gitea-20260723T013014Z.zip.sha256 +2026-07-23T04:30:17.0676528050 35213513 /var/backups/gitea-relay/gitea-20260723T013014Z.zip +2026-07-22T23:44:23.5207990880 1176 /var/backups/homelab-reader/homelab-chat-run-linked.pre-270.20260722T205130Z +2026-07-22T23:38:55.8093299500 686 /var/backups/homelab-reader/homelab-chat-run-linked.pre-267.20260722T204423Z +2026-07-22T17:07:19.0811873920 482 /var/backups/homelab-reference/OPERATIONS.md.before-tail-closeout.20260722T140719Z +2026-07-22T11:03:47.1137759030 561 /var/backups/homelab-reference/20260722T081210949547Z/README.md +2026-07-22T11:03:47.1132880790 1471 /var/backups/homelab-reference/20260722T081210949547Z/manifest.json +2026-07-22T10:34:58.6978834310 603 /var/backups/homelab-reference/20260722T080015404968Z/README.md +2026-07-22T10:34:58.6966043260 1743 /var/backups/homelab-reference/20260722T080015404968Z/manifest.json +2026-07-18T13:52:30.4157800660 20463 /var/backups/skladchik-reports-monitor-supervisor/supervisor.pre-cookie-race-fix-423.py +2026-07-06T18:49:49.7406450500 7272 /var/backups/homelab-vm-local-dumps-2cloud/runtime.pre-434.sh +2026-07-06T18:49:49.7406450500 7272 /var/backups/homelab-vm-local-dumps-2cloud/desired.pre-434.sh +2026-06-30T16:24:58.9872367120 819301 /var/backups/dpkg.status.0 +2026-06-29T21:03:45.6401889080 221140 /var/backups/dpkg.status.1.gz +2026-06-29T21:03:44.2631678590 6098 /var/backups/apt.extended_states.0 +2026-06-24T11:54:21.1275314850 220453 /var/backups/dpkg.status.2.gz +2026-06-23T03:39:15.2281940980 219584 /var/backups/dpkg.status.3.gz +2026-06-23T03:38:46.5077573390 810 /var/backups/apt.extended_states.1.gz +2026-06-21T01:09:08.3504122800 219552 /var/backups/dpkg.status.4.gz +2026-06-21T01:08:56.4252370290 799 /var/backups/apt.extended_states.2.gz +2026-06-20T23:27:28.6047672330 209054 /var/backups/dpkg.status.5.gz +2026-06-17T11:19:07.3554401710 193756 /var/backups/dpkg.status.6.gz +2026-06-16T23:16:02.5625482060 256 /var/backups/apt.extended_states.3.gz +2026-06-15T20:15:32.5513041750 198 /var/backups/apt.extended_states.4.gz +2026-06-15T00:00:23.6784006090 40960 /var/backups/alternatives.tar.0 +2026-06-14T17:55:00.1310108600 180 /var/backups/apt.extended_states.5.gz +2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.6.gz +2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.5.gz +2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.4.gz +2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.3.gz +2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.2.gz +2026-06-14T12:00:14.9378376070 353 /var/backups/dpkg.diversions.1.gz +2026-06-14T12:00:14.9378376070 1709 /var/backups/dpkg.diversions.0 +2026-06-14T10:03:00.2421098020 290 /var/backups/dpkg.statoverride.0 +2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.6.gz +2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.5.gz +2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.4.gz +2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.3.gz +2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.2.gz +2026-06-14T10:03:00.2421098020 186 /var/backups/dpkg.statoverride.1.gz +2026-05-21T14:31:34.0000000000 6 /var/backups/dpkg.arch.0 +2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.6.gz +2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.5.gz +2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.4.gz +2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.3.gz +2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.2.gz +2026-05-21T14:31:34.0000000000 38 /var/backups/dpkg.arch.1.gz +[command_rc=0] + +--- cron backup references --- +COMMAND: for f in /etc/crontab /etc/cron.d/*; do [ -f "$f" ] || continue; echo "### $f"; grep -nEi "backup|dump|mysqldump|mariadb|gitea|newfi|xenforo|restic|borg|rclone" "$f" 2>/dev/null || true; done +### /etc/crontab +### /etc/cron.d/e2scrub_all +### /etc/cron.d/homelab-context-refresh +### /etc/cron.d/homelab-context-refresh.bak.20260721T105117Z +### /etc/cron.d/homelab-context-refresh.bak.20260721T110341Z +### /etc/cron.d/homelab-context-refresh.bak.20260721T110857Z +### /etc/cron.d/homelab-context-refresh.bak.20260721T110932Z +### /etc/cron.d/vzdump +1:# cluster wide vzdump cron schedule +### /etc/cron.d/zfsutils-linux +[command_rc=0] + +--- backup tools --- +COMMAND: for c in restic borg rclone duplicity pg_dump mysqldump mariadb-dump; do command -v "$c" >/dev/null 2>&1 && { echo "### $c"; "$c" --version 2>&1 | head -5; }; done +### restic +unknown flag: --version +### rclone +rclone v1.60.1-DEV +- os/version: debian 13.5 (64 bit) +- os/kernel: 7.0.12-1-pve (x86_64) +- os/type: linux +- os/arch: amd64 +[command_rc=1] + +===== FINAL READ-ONLY ASSERTIONS ===== +changes_made=false +mutation_outcome=NO_MUTATION +production_changed=false +rollback_started=false +rollback_restored=null +inventory_finished_at_utc=2026-08-06T13:44:51Z +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"nfro-260806-1630-9c2f","status":"SUCCESS","rc":0,"changes_made":false,"mutation_outcome":"NO_MUTATION","production_changed":false,"rollback_started":false,"rollback_restored":null,"control_plane_error":null} -## ERROR_[PRIVATE_IP]_HOMELAB_VM_2CLOUD_DRAIN_CLOSURE_PREFLIGHT_446 -COMMAND_ID=HOMELAB-VM-2CLOUD-DRAIN-CLOSURE-PREFLIGHT-446 -- Symptom: homelab-chat-run-linked printed Usage and skipped result-feed publication as invalid input. -- Root cause: the diagnostic script was piped to wrapper stdin and the mandatory double-dash command separator was omitted. -- Correction: invoke homelab-chat-run-linked as COMMAND_ID MODE COMPONENT -- command arguments; stdin is not its command interface. -ANTI_REGRESSION_TOKEN=HOMELAB_CHAT_RUN_COMMAND_REQUIRES_DOUBLE_DASH -- Anti-regression: treat wrapper Usage as the authoritative CLI contract and syntax-check the complete launcher, not only its inner payload. -- Infrastructure action executed: none. -- Backup payload impact: none. -- Production impact: none. -- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. -- Registered at: [PRIVATE_IP]T11:20:32Z OUTPUT_END CHAT_OUTPUT_END