Diff -- /var/www/vhosts/3dshawn.com/site1/TEMPLATES/settings.html
Diff
/var/www/vhosts/3dshawn.com/site1/TEMPLATES/settings.html
modified on local at 2026-07-12 00:19:34
Added
+25
lines
Removed
-0
lines
Context
76
unchanged
Blobs
from 907d3c47340c
to 7f92daebf65c
to 7f92daebf65c
Unified diff
Naive LCS-based line diff. Additions in emerald, deletions in rose. Both sides decompressed live from BLOB_STORE.| 1 | 1 | <div class="page-head"> |
| 2 | 2 | <span class="page-eyebrow"><span class="dot"></span> Configure</span> |
| 3 | 3 | <h1 class="page-title">Settings</h1> |
| 4 | 4 | <p class="page-subtitle">Installation-level configuration. Read from <code>/etc/drift_sense/drift_sense.conf</code> -- edit that file to change values, then restart the daemons.</p> |
| 5 | 5 | </div> |
| 6 | 6 | |
| 7 | 7 | <div class="dash-grid" style="grid-template-columns:repeat(3,1fr);margin-bottom:16px"> |
| 8 | 8 | <div class="module glow-teal"> |
| 9 | 9 | <div class="module-head"><div class="left"><div class="module-title">BLOB_STORE size</div><span class="module-subtitle">Unique content states.</span></div></div> |
| 10 | 10 | <div class="module-body kpi kpi-teal"><div class="num">$blob_ct</div><div class="lbl">unique blobs</div></div> |
| 11 | 11 | </div> |
| 12 | 12 | <div class="module glow-emerald"> |
| 13 | 13 | <div class="module-head"><div class="left"><div class="module-title">Compression ratio</div><span class="module-subtitle">Uncompressed vs on-disk.</span></div></div> |
| 14 | 14 | <div class="module-body kpi kpi-emerald"><div class="num">$ratio</div><div class="lbl">savings</div></div> |
| 15 | 15 | </div> |
| 16 | 16 | <div class="module glow-sky"> |
| 17 | 17 | <div class="module-head"><div class="left"><div class="module-title">Dedup references</div><span class="module-subtitle">How many FILE_CHANGES rows point at BLOB_STORE.</span></div></div> |
| 18 | 18 | <div class="module-body kpi kpi-sky"><div class="num">$total_refs</div><div class="lbl">references</div></div> |
| 19 | </div> | |
| 20 | </div> | |
| 21 | ||
| 22 | <div class="dash-grid" style="grid-template-columns:1fr 1fr;margin-bottom:16px"> | |
| 23 | <div class="module glow-sky"> | |
| 24 | <div class="module-head"><div class="left"> | |
| 25 | <div class="module-title">Auto-purge plan (30d)</div> | |
| 26 | <span class="module-subtitle">Dry-run runs daily at 03:15 — <a href="/purge_log.cgi" style="color:var(--accent-hi)">full log</a></span> | |
| 27 | </div></div> | |
| 28 | <div class="module-body kpi kpi-sky"> | |
| 29 | <div class="num">$purge_dry_ct</div> | |
| 30 | <div class="lbl">blobs would be freed</div> | |
| 31 | <div class="sub"><strong>$purge_dry_bytes</strong> reclaimable · last run <span class="ts" data-ts="$last_purge_epoch" data-fmt="relative">$last_purge_h</span></div> | |
| 32 | </div> | |
| 33 | </div> | |
| 34 | <div class="module glow-amber"> | |
| 35 | <div class="module-head"><div class="left"> | |
| 36 | <div class="module-title">Live purges (30d)</div> | |
| 37 | <span class="module-subtitle">Actual disk reclaimed once live mode is on.</span> | |
| 38 | </div></div> | |
| 39 | <div class="module-body kpi kpi-amber"> | |
| 40 | <div class="num">$purge_live_ct</div> | |
| 41 | <div class="lbl">blobs deleted</div> | |
| 42 | <div class="sub"><strong>$purge_live_bytes</strong> reclaimed</div> | |
| 43 | </div> | |
| 19 | 44 | </div> |
| 20 | 45 | </div> |
| 21 | 46 | |
| 22 | 47 | [if:$saved] |
| 23 | 48 | <div class="banner banner-ok" style="margin:0 0 16px;padding:10px 14px;border-radius:10px;background:rgba(52,211,153,.10);border:1px solid rgba(52,211,153,.35);color:#a7f3d0;font-size:13px"> |
| 24 | 49 | Global scan settings saved. Applies to the very next scanner tick. |
| 25 | 50 | </div> |
| 26 | 51 | [/if] |
| 27 | 52 | |
| 28 | 53 | <div class="module glow-amber" style="margin-bottom:16px"> |
| 29 | 54 | <div class="module-head"><div class="left"> |
| 30 | 55 | <div class="module-icon"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/></svg></div> |
| 31 | 56 | <div class="module-title">Global scan settings</div> |
| 32 | 57 | <span class="module-subtitle">Applied to every monitor -- portfolio-wide. Ignore patterns are UNION'd with each monitor's own list. File-type filter is used only when a monitor's own filter is empty.</span> |
| 33 | 58 | </div></div> |
| 34 | 59 | <div class="module-body"> |
| 35 | 60 | <form method="post" action="/settings.cgi" style="display:flex;flex-direction:column;gap:14px"> |
| 36 | 61 | <input type="hidden" name="save_globals" value="1"> |
| 37 | 62 | |
| 38 | 63 | <label style="display:flex;flex-direction:column;gap:4px"> |
| 39 | 64 | <span class="rb-label">Global ignore patterns |
| 40 | 65 | <span class="dim" style="text-transform:none;letter-spacing:0;font-size:10.5px">— one per line OR comma-separated. Glob wildcards <code>*</code>, <code>?</code>, and <code>**</code> supported.</span> |
| 41 | 66 | </span> |
| 42 | 67 | <textarea name="global_ignore_list" rows="10" placeholder="*.swp *.tmp *.bak node_modules/* .git/* logs/*" |
| 43 | 68 | style="background:var(--bg-1);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-family:var(--mono);font-size:11.5px;line-height:1.6;resize:vertical">$global_ignore_pretty</textarea> |
| 44 | 69 | </label> |
| 45 | 70 | |
| 46 | 71 | <div style="display:flex;gap:12px"> |
| 47 | 72 | <label style="flex:2;display:flex;flex-direction:column;gap:4px"> |
| 48 | 73 | <span class="rb-label">Global file-type filter <span class="dim" style="text-transform:none;letter-spacing:0;font-size:10.5px">(blank = all types)</span></span> |
| 49 | 74 | <input type="text" name="global_file_type_filter" value="$global_file_type_filter" placeholder="pl,pm,cgi,html,css,js,sql,conf,md" |
| 50 | 75 | style="background:var(--bg-1);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-family:var(--mono);font-size:12px"> |
| 51 | 76 | </label> |
| 52 | 77 | <label style="flex:1;display:flex;flex-direction:column;gap:4px"> |
| 53 | 78 | <span class="rb-label">Global max file size (bytes)</span> |
| 54 | 79 | <input type="number" name="global_max_file_size_bytes" value="$global_max_file_size_bytes" min="0" |
| 55 | 80 | style="background:var(--bg-1);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px"> |
| 56 | 81 | </label> |
| 57 | 82 | </div> |
| 58 | 83 | |
| 59 | 84 | <div style="display:flex;justify-content:flex-end"> |
| 60 | 85 | <button type="submit" class="tr-chip is-active" style="border:none;padding:8px 18px">Save globals</button> |
| 61 | 86 | </div> |
| 62 | 87 | </form> |
| 63 | 88 | </div> |
| 64 | 89 | </div> |
| 65 | 90 | |
| 66 | 91 | <div class="module glow-teal"> |
| 67 | 92 | <div class="module-head"><div class="left"><div class="module-title">Resolved configuration</div><span class="module-subtitle">Merged from conf file + code defaults. Secrets redacted.</span></div></div> |
| 68 | 93 | <div class="module-body tight"> |
| 69 | 94 | <table class="tbl"> |
| 70 | 95 | <thead><tr><th style="width:260px">Key</th><th>Value</th></tr></thead> |
| 71 | 96 | <tbody> |
| 72 | 97 | [loop:@cfg_rows]<tr><td class="mono"><strong>$key</strong></td><td class="mono dim">$value</td></tr>[/loop] |
| 73 | 98 | </tbody> |
| 74 | 99 | </table> |
| 75 | 100 | </div> |
| 76 | 101 | </div> |