1
0
Files
homelab-public-context/runtime/history/nfro-260806-1630-9c2f.txt
2026-08-06 13:44:52 +00:00

853 lines
38 KiB
Plaintext

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
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex,nofollow">
<title>Домен припаркован</title>
<style>
:root {
color-scheme: dark;
--bg1: #0f172a;
--bg2: #312e81;
--bg3: #7c2d12;
--card: rgba(15, 23, 42, .72);
--line: rgba(255,255,255,.14);
--text: #f8fafc;
--muted: #cbd5e1;
--accent: #a7f3d0;
--accent2: #93c5fd;
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
margin: 0;
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
color: var(--text);
background:
radial-gradient(circle at 18% 20%, rgba(147,197,253,.28), transparent 28rem),
radial-gradient(circle at 82% 18%, rgba(167,243,208,.22), transparent 26rem),
radial-gradient(circle at 50% 100%, rgba(251,146,60,.18), transparent 30rem),
linear-gradient(135deg, var(--bg1), var(--bg2) 55%, var(--bg3));
display: grid;
place-items: center;
overflow: hidden;
}
.noise {
position: fixed;
inset: 0;
opacity: .16;
background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
background-size: 44px 44px;
mask-image: radial-gradient(circle at center, black, transparent 78%);
pointer-events: none;
}
main {
width: min(920px, calc(100vw - 32px));
padding: clamp(28px, 5vw, 56px);
border: 1px solid var(--line);
border-radius: 32px;
background: var(--card);
box-shadow: 0 28px 90px rgba(0,0,0,.42);
backdrop-filter: blur(22px) saturate(130%);
position: relative;
}
.badge {
display: inline-flex;
gap: 10px;
align-items: center;
padding: 8px 12px;
border: 1px solid var(--line);
border-radius: 999px;
color: var(--accent);
background: rgba(15, 23, 42, .46);
font-size: 14px;
letter-spacing: .02em;
}
.dot {
width: 9px;
height: 9px;
border-radius: 50%;
background: var(--accent);
box-shadow: 0 0 18px var(--accent);
}
h1 {
margin: 26px 0 14px;
max-width: 760px;
font-size: clamp(42px, 8vw, 86px);
line-height: .92;
letter-spacing: -.065em;
}
p {
margin: 0;
max-width: 680px;
color: var(--muted);
font-size: clamp(17px, 2.2vw, 22px);
line-height: 1.6;
}
.chips {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 34px;
}
.chip {
padding: 12px 16px;
border-radius: 16px;
border: 1px solid var(--line);
background: rgba(255,255,255,.07);
color: var(--text);
font-weight: 650;
letter-spacing: .01em;
}
footer {
display: flex;
flex-wrap: wrap;
gap: 12px 18px;
justify-content: space-between;
margin-top: 42px;
color: rgba(226,232,240,.68);
font-size: 14px;
}
code { color: var(--accent2); }
</style>
</head>
<body>
<div class="noise" aria-hidden="true"></div>
<main>
<div class="badge"><span class="dot"></span><span>PARKED_PAGE_OK · homelab</span></div>
<h1>Здесь скоро появится новый проект.</h1>
<p>Домен уже подключён к инфраструктуре, но основной сервис пока не опубликован. Сейчас это аккуратная техническая заглушка для свободных доменов.</p>
<div class="chips" aria-label="Припаркованные домены">
</div>
<footer>
<span>edge → parked-domains</span>
<span><code>noindex</code> · static · HTTPS-ready</span>
</footer>
</main>
</body>
</html>
[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