Files
mission-control-v2/frontend/dist/assets/Start-BGHB5FR5.js
T
HitonabiandClaude Opus 5.5 75c6037431 Später · 20 Konfig-Sicherung ins private Gitea-Repo, Geheimnisse geschwärzt
- kern/schwaerzen.py + dieselben Regeln im Ausführer (Test vergleicht beide): private Schlüssel, Werte hinter
  password/secret/token/key…, Passwort-Hashes, htpasswd, Zugangsdaten in Adressen, Authorization-Kopfzeilen,
  Token-Formate, lange Hex-Ketten
- Ausführer: sammelt Proxmox (Gäste, Speicher, Aufträge, Netz), AdGuard, NPMplus (ohne tls/), schwärzt auf dem Host,
  sendet alle 6 h und auf Abruf (Aktion konfig_senden) an POST /api/homelab/ausfuehrer/konfig
- Homelab-Teil: GET /api/homelab/konfig (frisch=1), dazu Compose und .env der Arcane-Projekte, geschwärzt
- KI-Box: services/konfig_sicherung.py legt das Repo beim ersten Lauf privat an, Arbeitskopie je Lauf auf Gitea-Stand,
  Commit nur bei Änderungen; Timer täglich 02:30, Knopf „Jetzt sichern“ unter Einstellungen → Homelab
- Totmannschalter und Wächter kennen den Timer; Doku

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 14:23:19 +02:00

1 line
13 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{i as e,r as t,t as n}from"./dist-aE7UmubC.js";import{Ct as r,Ft as i,Ht as a,J as o,Lt as s,Ot as c,Pt as l,St as u,ct as d,f,wt as p,xt as m}from"./abfragen-CLTLeU-R.js";import{t as h}from"./button-BHVKhtQ6.js";import{D as g,H as _,O as v,U as y,m as b,yt as x,z as S}from"./index-hnnYWPzT.js";import{i as C,n as w,r as T,t as E}from"./Plattenliste-DVJ4WMTz.js";var D=t(),O=e(),k={erledigt:{text:`Erledigt`,farbe:`text-gruen-text`,punkt:`bg-gruen`},fehler:{text:`Fehler`,farbe:`text-rot-text`,punkt:`bg-rot`},geplant:{text:`Geplant`,farbe:`text-text-3`,punkt:`bg-white/25`}};function A(e){let t=(0,D.c)(23),{e:r}=e,i=k[r.status]??k.geplant,a=r.status===`geplant`&&/update/i.test(r.titel)?`text-cyan-text`:i.farbe,o;t[0]===r.zeit?o=t[1]:(o=m(r.zeit),t[0]=r.zeit,t[1]=o);let s;t[2]===o?s=t[3]:(s=(0,O.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:o}),t[2]=o,t[3]=s);let c;t[4]===r.text?c=t[5]:(c=r.text&&(0,O.jsxs)(`span`,{className:`text-text-3`,children:[`, `,r.text]}),t[4]=r.text,t[5]=c);let l;t[6]!==r.titel||t[7]!==c?(l=(0,O.jsxs)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-base break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:[r.titel,c]}),t[6]=r.titel,t[7]=c,t[8]=l):l=t[8];let u;t[9]===a?u=t[10]:(u=n(`etikett col-start-2 row-start-1 flex items-center gap-1.5 justify-self-end text-[10.5px] tracking-[0.12em] @sm:col-start-3`,a),t[9]=a,t[10]=u);let d;t[11]===i.punkt?d=t[12]:(d=n(`size-1.5 rounded-full`,i.punkt),t[11]=i.punkt,t[12]=d);let f;t[13]===d?f=t[14]:(f=(0,O.jsx)(`span`,{"aria-hidden":!0,className:d}),t[13]=d,t[14]=f);let p;t[15]!==i.text||t[16]!==u||t[17]!==f?(p=(0,O.jsxs)(`span`,{className:u,children:[f,i.text]}),t[15]=i.text,t[16]=u,t[17]=f,t[18]=p):p=t[18];let h;return t[19]!==s||t[20]!==l||t[21]!==p?(h=(0,O.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 border-t border-white/[0.06] py-2.5 first:border-t-0 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[s,l,p]}),t[19]=s,t[20]=l,t[21]=p,t[22]=h):h=t[22],h}function j(e){let t=(0,D.c)(6),{gelaufen:n,geplant:r}=e,i;t[0]!==n||t[1]!==r?(i=[...n,...r.slice(0,5)],t[0]=n,t[1]=r,t[2]=i):i=t[2];let a=i;if(a.length===0){let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,O.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Heute ist noch nichts gelaufen, und nichts ist geplant.`}),t[3]=e):e=t[3],e}let o;return t[4]===a?o=t[5]:(o=(0,O.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:a.map(M)}),t[4]=a,t[5]=o),o}function M(e){return(0,O.jsx)(A,{e},`${e.titel}-${e.zeit}`)}function N(e){let t=(0,D.c)(28),{anteil:n,farbe:r,zonen:a,mitte:o,unter:s,beschriftung:c,ariaText:l,hinweis:u}=e,d=r===void 0?`var(--box)`:r,f;t[0]===a?f=t[1]:(f=a===void 0?[]:a,t[0]=a,t[1]=f);let p=f,m=n!=null&&n>.004,h;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,O.jsx)(`path`,{d:i(0,1,75),fill:`none`,stroke:`rgb(255 255 255 / 0.07)`,strokeWidth:12,strokeLinecap:`round`}),t[2]=h):h=t[2];let g;t[3]===p?g=t[4]:(g=p.map(P),t[3]=p,t[4]=g);let _;t[5]!==n||t[6]!==d||t[7]!==m?(_=m&&(0,O.jsx)(`path`,{d:i(0,n,75),fill:`none`,stroke:d,strokeWidth:12,strokeLinecap:`round`,style:{filter:`drop-shadow(0 0 7px color-mix(in srgb, ${d} 60%, transparent))`}}),t[5]=n,t[6]=d,t[7]=m,t[8]=_):_=t[8];let v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v={fontFamily:`var(--font-anzeige)`,fontSize:40,fontWeight:600,fill:`var(--foreground)`},t[9]=v):v=t[9];let y;t[10]===o?y=t[11]:(y=(0,O.jsx)(`text`,{x:`100`,y:`102`,textAnchor:`middle`,style:v,children:o}),t[10]=o,t[11]=y);let b;t[12]===s?b=t[13]:(b=s&&(0,O.jsx)(`text`,{x:`100`,y:`124`,textAnchor:`middle`,style:{fontFamily:`var(--font-sans)`,fontSize:13,fontWeight:500,fill:`var(--text-3)`},children:s}),t[12]=s,t[13]=b);let x;t[14]!==l||t[15]!==g||t[16]!==_||t[17]!==y||t[18]!==b?(x=(0,O.jsxs)(`svg`,{viewBox:`0 0 200 150`,className:`h-auto w-full max-w-[200px]`,role:`img`,"aria-label":l,children:[h,g,_,y,b]}),t[14]=l,t[15]=g,t[16]=_,t[17]=y,t[18]=b,t[19]=x):x=t[19];let S;t[20]===c?S=t[21]:(S=(0,O.jsx)(`figcaption`,{className:`etikett text-[11.5px] tracking-[0.14em] text-text-3`,children:c}),t[20]=c,t[21]=S);let C;t[22]===u?C=t[23]:(C=u&&(0,O.jsx)(`span`,{className:`text-center text-xs ${u.className}`,children:u.text}),t[22]=u,t[23]=C);let w;return t[24]!==x||t[25]!==S||t[26]!==C?(w=(0,O.jsxs)(`figure`,{className:`m-0 flex min-w-0 flex-col items-center gap-1`,children:[x,S,C]}),t[24]=x,t[25]=S,t[26]=C,t[27]=w):w=t[27],w}function P(e){return(0,O.jsx)(`path`,{d:i(e.von,e.bis,86),fill:`none`,stroke:e.farbe,strokeWidth:4,strokeLinecap:`round`},`${e.von}-${e.bis}`)}function F(e){let t=(0,D.c)(12),{zustand:n,lampen:r,onAnsehen:i}=e,a;t[0]===n?a=t[1]:(a=s(n),t[0]=n,t[1]=a);let o=a,c=o.art,l=o.oben,u=o.mitte,d=o.unten,f=o.art===`gelb`||o.art===`rot`,p;t[2]===r?p=t[3]:(p=r.map(I),t[2]=r,t[3]=p);let m;return t[4]!==o.art||t[5]!==o.mitte||t[6]!==o.oben||t[7]!==o.unten||t[8]!==i||t[9]!==f||t[10]!==p?(m=(0,O.jsx)(T,{art:c,oben:l,mitte:u,unten:d,aktiv:f,onAnsehen:i,label:`Warnpanel`,children:p}),t[4]=o.art,t[5]=o.mitte,t[6]=o.oben,t[7]=o.unten,t[8]=i,t[9]=f,t[10]=p,t[11]=m):m=t[11],m}function I(e){return(0,O.jsx)(w,{bild:S(e.id),name:e.label,wert:e.wert,zustand:e.zustand},e.id)}function L(e){let t=(0,D.c)(2),{z:n}=e,r;return t[0]===n?r=t[1]:(r=(0,O.jsx)(`span`,{className:`ziffern inline-flex h-[1.75em] w-[1.1875em] shrink-0 items-center justify-center rounded-lg border border-white/10 bg-gradient-to-b from-white/[0.07] to-white/[0.02] font-medium shadow-[inset_0_1px_0_rgb(255_255_255/0.06)]`,children:n}),t[0]=n,t[1]=r),r}function R(e){let t=(0,D.c)(25),{sekunden:n}=e,r;t[0]===n?r=t[1]:(r=p(n),t[0]=n,t[1]=r);let i=r,a=String(Math.min(i?.[0]??0,99)),o;t[2]===a?o=t[3]:(o=a.padStart(2,`0`),t[2]=a,t[3]=o);let s=o,c=String(i?.[1]??0),l;t[4]===c?l=t[5]:(l=c.padStart(2,`0`),t[4]=c,t[5]=l);let u=l,d=i?`Laufzeit ohne Neustart: ${i[0]} Tage, ${i[1]} Stunden`:`Laufzeit unbekannt`,f=i?s[0]:`–`,m;t[6]===f?m=t[7]:(m=(0,O.jsx)(L,{z:f}),t[6]=f,t[7]=m);let h=i?s[1]:`–`,g;t[8]===h?g=t[9]:(g=(0,O.jsx)(L,{z:h}),t[8]=h,t[9]=g);let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,O.jsx)(`span`,{className:`etikett mr-[0.444em] ml-[0.111em] text-[0.5625em] text-text-3`,children:`T`}),t[10]=_):_=t[10];let v=i?u[0]:`–`,y;t[11]===v?y=t[12]:(y=(0,O.jsx)(L,{z:v}),t[11]=v,t[12]=y);let b=i?u[1]:`–`,x;t[13]===b?x=t[14]:(x=(0,O.jsx)(L,{z:b}),t[13]=b,t[14]=x);let S;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,O.jsx)(`span`,{className:`etikett ml-[0.111em] text-[0.5625em] text-text-3`,children:`H`}),t[15]=S):S=t[15];let C;t[16]!==y||t[17]!==x||t[18]!==m||t[19]!==g||t[20]!==d?(C=(0,O.jsxs)(`div`,{"aria-label":d,role:`img`,className:`flex h-[min(75cqw,150px)] items-center gap-[0.1875em] pb-[min(10cqw,20px)] text-[length:clamp(14px,14.5cqw,32px)]`,children:[m,g,_,y,x,S]}),t[16]=y,t[17]=x,t[18]=m,t[19]=g,t[20]=d,t[21]=C):C=t[21];let w;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,O.jsx)(`figcaption`,{className:`etikett text-[11.5px] tracking-[0.14em] text-text-3`,children:`Ohne Neustart`}),t[22]=w):w=t[22];let T;return t[23]===C?T=t[24]:(T=(0,O.jsxs)(`figure`,{className:`@container m-0 flex min-w-0 flex-col items-center justify-end gap-1`,children:[C,w]}),t[23]=C,t[24]=T),T}function z(e){let t=(0,D.c)(53),{box:n}=e,i=c(),o=i?.ram_used??n.ram_used,s=i?.ram_total??n.ram_total,l=i?.temp_cpu??n.temp_cpu,d=i?.temp_gpu??n.temp_gpu,f=n.platte,p=f?.vorhersage,m;t[0]===p?m=t[1]:(m=v(p),t[0]=p,t[1]=m);let h=m,_=i?.uptime_s??n.uptime_s,y=o!=null&&s?o/s:null,b;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(b={"--i":1},t[2]=b):b=t[2];let x;t[3]===o?x=t[4]:(x=o==null?`–`:String(Math.round(u(o)??0)),t[3]=o,t[4]=x);let S;t[5]===s?S=t[6]:(S=s?`von ${Math.round(u(s)??0)} GB`:void 0,t[5]=s,t[6]=S);let C;t[7]!==y||t[8]!==o||t[9]!==s?(C=y==null?`Speicher unbekannt`:`Speicher: ${r(o)} von ${r(s)} belegt`,t[7]=y,t[8]=o,t[9]=s,t[10]=C):C=t[10];let w;t[11]!==y||t[12]!==x||t[13]!==S||t[14]!==C?(w=(0,O.jsx)(N,{beschriftung:`Speicher`,anteil:y,mitte:x,unter:S,ariaText:C}),t[11]=y,t[12]=x,t[13]=S,t[14]=C,t[15]=w):w=t[15];let T=l==null?null:l/100,E;t[16]===l?E=t[17]:(E=a(l),t[16]=l,t[17]=E);let k;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(k=[{von:.7,bis:.85,farbe:`var(--bernstein)`},{von:.85,bis:1,farbe:`var(--rot)`}],t[18]=k):k=t[18];let A;t[19]===l?A=t[20]:(A=l==null?`–`:`${Math.round(l)}°`,t[19]=l,t[20]=A);let j;t[21]===d?j=t[22]:(j=d==null?void 0:`GPU ${Math.round(d)}°`,t[21]=d,t[22]=j);let M;t[23]===l?M=t[24]:(M=l==null?`Temperatur unbekannt`:`Temperatur ${Math.round(l)} Grad`,t[23]=l,t[24]=M);let P;t[25]!==A||t[26]!==j||t[27]!==M||t[28]!==T||t[29]!==E?(P=(0,O.jsx)(N,{beschriftung:`Temperatur`,anteil:T,farbe:E,zonen:k,mitte:A,unter:j,ariaText:M}),t[25]=A,t[26]=j,t[27]=M,t[28]=T,t[29]=E,t[30]=P):P=t[30];let F=f?f.percent/100:null,I=f&&f.percent>=90?`var(--rot)`:f&&f.percent>=80?`var(--bernstein)`:`var(--box)`,L;t[31]===f?L=t[32]:(L=f?`${Math.round(f.percent)}%`:`–`,t[31]=f,t[32]=L);let z;t[33]===f?z=t[34]:(z=f?`${r(f.used)} / ${r(f.total)}`:void 0,t[33]=f,t[34]=z);let B;t[35]===f?B=t[36]:(B=f?`Platte zu ${Math.round(f.percent)} Prozent belegt`:`Platte unbekannt`,t[35]=f,t[36]=B);let V;t[37]===h?V=t[38]:(V=h?{text:h.text,className:g[h.stufe]}:null,t[37]=h,t[38]=V);let H;t[39]!==F||t[40]!==I||t[41]!==L||t[42]!==z||t[43]!==B||t[44]!==V?(H=(0,O.jsx)(N,{beschriftung:`Platte`,anteil:F,farbe:I,mitte:L,unter:z,ariaText:B,hinweis:V}),t[39]=F,t[40]=I,t[41]=L,t[42]=z,t[43]=B,t[44]=V,t[45]=H):H=t[45];let U;t[46]===_?U=t[47]:(U=(0,O.jsx)(R,{sekunden:_}),t[46]=_,t[47]=U);let W;return t[48]!==P||t[49]!==H||t[50]!==U||t[51]!==w?(W=(0,O.jsxs)(`section`,{"aria-label":`Instrumente`,className:`auftauchen flaeche grid grid-cols-2 gap-x-4 gap-y-6 rounded-3xl px-4 py-5 lg:grid-cols-4 lg:px-6`,style:b,children:[w,P,H,U]}),t[48]=P,t[49]=H,t[50]=U,t[51]=w,t[52]=W):W=t[52],W}var B={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`};function V(e){let t=(0,D.c)(14),{radar:n}=e;if(!n?.kandidaten)return null;let r,i;t[0]===n.kandidaten?(r=t[1],i=t[2]):(r=n.kandidaten.filter(U),i=r.find(H)??r[0],t[0]=n.kandidaten,t[1]=r,t[2]=i);let a=i,o=r.length===1?``:`en`,s;t[3]!==r.length||t[4]!==o?(s=(0,O.jsxs)(`span`,{className:`etikett text-[11px] tracking-[0.14em] text-cyan-text`,children:[`Radar · `,r.length,` Kandidat`,o]}),t[3]=r.length,t[4]=o,t[5]=s):s=t[5];let c;t[6]===a?c=t[7]:(c=a?(0,O.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 text-[15px]`,children:[(0,O.jsx)(`span`,{className:`ziffern`,children:a.name}),(0,O.jsxs)(`span`,{className:`text-text-2`,children:[`fürs `,a.rolle===`hirn`?`Hirn`:`Coden`]}),(0,O.jsx)(_,{art:B[a.status]??`grau`,children:l[a.status]??a.status})]}):(0,O.jsx)(`span`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}),t[6]=a,t[7]=c);let u;t[8]!==s||t[9]!==c?(u=(0,O.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[s,c]}),t[8]=s,t[9]=c,t[10]=u):u=t[10];let d;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,O.jsx)(h,{variant:`info`,size:`sm`,asChild:!0,children:(0,O.jsx)(x,{to:`/box/modelle`,hash:`radar`,children:`Ansehen`})}),t[11]=d):d=t[11];let f;return t[12]===u?f=t[13]:(f=(0,O.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center justify-between gap-3 rounded-2xl bg-cyan/[0.06] px-4 py-3.5 ring-1 ring-cyan/30 ring-inset`,children:[u,d]}),t[12]=u,t[13]=f),f}function H(e){return e.status===`bestanden`}function U(e){return[`bestanden`,`wartet`,`neu`].includes(e.status)}function W(){let e=(0,D.c)(35),{data:t,error:n,isPending:r}=d(),i=o(),a=f();if(r){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(y,{text:`Die Box meldet sich gleich …`}),e[0]=t):t=e[0],t}if(!t){let t=`MC2 antwortet nicht: ${n?.message??`keine Daten`}`,r;return e[1]===t?r=e[2]:(r=(0,O.jsx)(y,{fehler:!0,text:t}),e[1]=t,e[2]=r),r}let s=t.hinweise.length,c;e[3]!==t.lampen||e[4]!==t.zustand?(c=(0,O.jsx)(F,{zustand:t.zustand,lampen:t.lampen,onAnsehen:G}),e[3]=t.lampen,e[4]=t.zustand,e[5]=c):c=e[5];let l;e[6]===t.box?l=e[7]:(l=(0,O.jsx)(z,{box:t.box}),e[6]=t.box,e[7]=l);let u=s?`bernstein`:`gruen`,p=s?`${s} offen`:`alles erledigt`,m;e[8]!==u||e[9]!==p?(m=(0,O.jsx)(_,{art:u,children:p}),e[8]=u,e[9]=p,e[10]=m):m=e[10];let h;e[11]!==t.hinweise||e[12]!==t.verlauf?(h=(0,O.jsx)(C,{hinweise:t.hinweise,verlauf:t.verlauf}),e[11]=t.hinweise,e[12]=t.verlauf,e[13]=h):h=e[13];let g;e[14]!==m||e[15]!==h?(g=(0,O.jsx)(b,{titel:`Checkliste`,id:`checkliste`,rechts:m,children:h}),e[14]=m,e[15]=h,e[16]=g):g=e[16];let v;e[17]!==t.flugplan.gelaufen||e[18]!==t.flugplan.geplant?(v=(0,O.jsx)(j,{gelaufen:t.flugplan.gelaufen,geplant:t.flugplan.geplant}),e[17]=t.flugplan.gelaufen,e[18]=t.flugplan.geplant,e[19]=v):v=e[19];let x;e[20]===i.data?x=e[21]:(x=(0,O.jsx)(V,{radar:i.data}),e[20]=i.data,e[21]=x);let S;e[22]!==v||e[23]!==x?(S=(0,O.jsxs)(b,{titel:`Flugplan`,children:[v,x]}),e[22]=v,e[23]=x,e[24]=S):S=e[24];let w;e[25]!==g||e[26]!==S?(w=(0,O.jsxs)(`div`,{className:`grid gap-5 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] md:gap-6`,children:[g,S]}),e[25]=g,e[26]=S,e[27]=w):w=e[27];let T;e[28]===a.data?T=e[29]:(T=a.data&&a.data.platten.length>0&&(0,O.jsx)(b,{titel:`Plattengesundheit`,id:`platten`,children:(0,O.jsx)(E,{platten:a.data.platten})}),e[28]=a.data,e[29]=T);let k;return e[30]!==c||e[31]!==l||e[32]!==w||e[33]!==T?(k=(0,O.jsxs)(O.Fragment,{children:[c,l,w,T]}),e[30]=c,e[31]=l,e[32]=w,e[33]=T,e[34]=k):k=e[34],k}function G(){return document.getElementById(`checkliste`)?.scrollIntoView({behavior:`smooth`,block:`start`})}export{W as StartSeite};