Add posts: RAID silent corruption + self-hosted mem0 (en/zh, og+banner)
Deploy / build (push) Successful in 20s

This commit is contained in:
hoelee committed 2026-09-16 01:04:41 +08:00
1 parent 0dee1ea173
commit 55619aa04e
10 files changed
+657 -4

No files matched your search

+38
View File
@@ -133,6 +133,44 @@ const BANNERS = {
],
},
'when-smart-says-healthy-but-your-raid-is-corrupting-data': {
titlebar: 'root@unraid — cache pool scrub',
lines: [
{ t: 'dim', text: 'btrfs RAID1 · 2× Samsung PM9A3 NVMe · same batch' },
{ t: 'prompt', text: '$' }, { t: 'cmd', text: 'btrfs scrub /mnt/cache' },
{ t: 'err', text: 'csum 0x8941f998 recurring = CRC32C(zero block)' },
{ t: 'prompt', text: '$' }, { t: 'cmd', text: 'self-heal rewrite → does NOT stick' },
{ t: 'err', text: 'write-path corruption · SMART stays clean' },
{ t: 'prompt', text: '$' }, { t: 'cmd', text: 'fix = restore VM + replace both drives' },
],
flow: [
{ n: '1', label: 'SMART clean' },
{ n: '2', label: 'csum zeros', err: true },
{ n: '3', label: 'self-heal no-stick' },
{ n: '4', label: 'restore VM' },
{ n: '5', label: 'replace both ✓' },
],
},
'self-hosting-mem0-memory-stack': {
titlebar: 'root@dsm — mem0 memory stack',
lines: [
{ t: 'prompt', text: '$' }, { t: 'cmd', text: "curl -X POST :20015/memories -H X-Api-Key" },
{ t: 'dim', text: 'user_id + text → mem0 extracts & stores' },
{ t: 'prompt', text: '¶' }, { t: 'ok', text: '→ remembers across sessions ✓' },
{ t: 'prompt', text: '$' }, { t: 'cmd', text: 'stack = mem0-api + LiteLLM + pgvector(pg17)' },
{ t: 'err', text: 'infer=true → LLM hop · slow writes' },
{ t: 'prompt', text: '' }, { t: 'ok', text: 'self-hosted · data stays on LAN ✓' },
],
flow: [
{ n: '1', label: 'POST /memories' },
{ n: '2', label: 'store fact' },
{ n: '3', label: 'search' },
{ n: '4', label: 'feed context' },
{ n: '5', label: 'remembers ✓' },
],
},
'hardening-a-tor-onion-service': {
titlebar: 'root@tor-host — onion service audit',
lines: [
+14 -4
View File
@@ -125,10 +125,20 @@ const TERMINALS = {
<div class="line"><span class="prompt">$</span><span class="cmd">warm session · 7s pacing · sweep.py</span><span class="fix">→ 20+ listings ✓</span></div>`,
'unraid-stop-array-hangs-on-swapfile': `
<div class="line"><span class="prompt">$</span><span class="cmd">unraid → stop array · swapfile on /mnt/cache</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="err">umount: target is busy · /proc/swaps says /dev/loop0</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">swapoff -a + losetup -j at stopping_svcs</span><span class="fix">→ clean stop ✓</span></div>`,
};
<div class="line"><span class="prompt">$</span><span class="cmd">unraid → stop array · swapfile on /mnt/cache</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="err">umount: target is busy · /proc/swaps says /dev/loop0</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">swapoff -a + losetup -j at stopping_svcs</span><span class="fix">→ clean stop ✓</span></div>`,
'when-smart-says-healthy-but-your-raid-is-corrupting-data': `
<div class="line"><span class="prompt">$</span><span class="cmd">scrub → re-read vdisk1.img</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="err">csum 0x8941f998 = CRC32C(zeros) · recurring</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">self-heal rewrite does NOT stick</span><span class="fix">→ replace both drives ✓</span></div>`,
'self-hosting-mem0-memory-stack': `
<div class="line"><span class="prompt">$</span><span class="cmd">curl -X POST :20015/memories · X-Api-Key</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="err">infer=true → LLM hop · slow write</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">infer=false · pgvector · LiteLLM gateway</span><span class="fix">→ remembers across chats ✓</span></div>`,
};
const DEFAULT_TERMINAL = `
<div class="line"><span class="prompt">$</span><span class="cmd">engineering · devops · self-hosting</span></div>