829 lines
26 KiB
XML
829 lines
26 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||
<svg
|
||
width="1600"
|
||
height="1020"
|
||
viewBox="0 0 1600 1020"
|
||
version="1.1"
|
||
id="svg80"
|
||
sodipodi:docname="archicratie-web-edition-global-verbatim.svg"
|
||
inkscape:version="1.3-alpha (95f74fb, 2023-03-31)"
|
||
inkscape:export-filename="out/archicratie-web-edition-global-verbatim.png"
|
||
inkscape:export-xdpi="96"
|
||
inkscape:export-ydpi="96"
|
||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||
xmlns="http://www.w3.org/2000/svg"
|
||
xmlns:svg="http://www.w3.org/2000/svg">
|
||
<sodipodi:namedview
|
||
id="namedview80"
|
||
pagecolor="#ffffff"
|
||
bordercolor="#000000"
|
||
borderopacity="0.25"
|
||
inkscape:showpageshadow="2"
|
||
inkscape:pageopacity="0.0"
|
||
inkscape:pagecheckerboard="0"
|
||
inkscape:deskcolor="#d1d1d1"
|
||
inkscape:zoom="0.82625"
|
||
inkscape:cx="594.25113"
|
||
inkscape:cy="481.08926"
|
||
inkscape:window-width="1472"
|
||
inkscape:window-height="1022"
|
||
inkscape:window-x="234"
|
||
inkscape:window-y="30"
|
||
inkscape:window-maximized="0"
|
||
inkscape:current-layer="svg80" />
|
||
<defs
|
||
id="defs1">
|
||
<marker
|
||
id="arrow"
|
||
viewBox="0 0 10 10"
|
||
refX="9.5"
|
||
refY="5"
|
||
markerWidth="8"
|
||
markerHeight="8"
|
||
orient="auto-start-reverse">
|
||
<path
|
||
d="M 0 0 L 10 5 L 0 10 z"
|
||
fill="#222"
|
||
id="path1" />
|
||
</marker>
|
||
<style
|
||
id="style1">
|
||
.title { font: 700 22px sans-serif; fill:#111; }
|
||
.small { font: 12px sans-serif; fill:#111; }
|
||
.h2 { font: 700 16px sans-serif; fill:#111; }
|
||
.h3 { font: 700 14px sans-serif; fill:#111; }
|
||
.txt { font: 13px sans-serif; fill:#111; }
|
||
.mono { font: 12px ui-monospace, SFMono-Regular, Menlo, monospace; fill:#111; }
|
||
.zone { fill:#f3f3f3; stroke:#111; stroke-width:2; }
|
||
.box { fill:#fafafa; stroke:#222; stroke-width:1.5; }
|
||
.note { fill:#fff; stroke:#666; stroke-width:1.2; }
|
||
.line { stroke:#222; stroke-width:2; fill:none; marker-end:url(#arrow); }
|
||
.dash { stroke:#222; stroke-width:2; fill:none; stroke-dasharray:7 6; marker-end:url(#arrow); }
|
||
</style>
|
||
</defs>
|
||
<!-- Header -->
|
||
<text
|
||
x="40"
|
||
y="45"
|
||
class="title"
|
||
id="text1">Archicratie – Web Edition : schéma global VERBATIM (Mac Studio ↔ NAS Synology DS220+)</text>
|
||
<text
|
||
x="40"
|
||
y="75"
|
||
class="small"
|
||
id="text2">Factuel (capturé sur ton NAS) : DSM (TLS) → Traefik :18080 (file provider) → routers Host(...) → (Authelia forward-auth) → backends (blue/green). Gitea via Traefik sans chain-auth.</text>
|
||
<!-- LOCAL -->
|
||
<rect
|
||
x="35"
|
||
y="110"
|
||
width="520"
|
||
height="880"
|
||
rx="18"
|
||
class="zone"
|
||
id="rect2" />
|
||
<text
|
||
x="60"
|
||
y="145"
|
||
class="h2"
|
||
id="text3">LOCAL — Mac Studio (atelier)</text>
|
||
<rect
|
||
x="60"
|
||
y="175"
|
||
width="470"
|
||
height="110"
|
||
rx="12"
|
||
class="box"
|
||
id="rect3" />
|
||
<text
|
||
x="80"
|
||
y="205"
|
||
class="h2"
|
||
id="text4">Repo site (Astro)</text>
|
||
<text
|
||
x="80"
|
||
y="232"
|
||
class="txt"
|
||
id="text5">• build statique → dist/</text>
|
||
<text
|
||
x="80"
|
||
y="254"
|
||
class="txt"
|
||
id="text6">• postbuild : inject aliases + dedupe IDs + indexes + pagefind</text>
|
||
<rect
|
||
x="60"
|
||
y="305"
|
||
width="470"
|
||
height="115"
|
||
rx="12"
|
||
class="box"
|
||
id="rect6" />
|
||
<text
|
||
x="80"
|
||
y="335"
|
||
class="h2"
|
||
id="text7">Tooling (scripts/)</text>
|
||
<text
|
||
x="66"
|
||
y="360"
|
||
class="txt"
|
||
id="text8"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• scripts/inject-anchor-aliases.mjs</text>
|
||
<text
|
||
x="66"
|
||
y="382"
|
||
class="txt"
|
||
id="text9"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• scripts/apply-ticket.mjs --alias</text>
|
||
<text
|
||
x="66"
|
||
y="404"
|
||
class="txt"
|
||
id="text10"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• scripts/check-anchor-aliases.mjs + verify-anchor-aliases-in-dist.mjs</text>
|
||
<rect
|
||
x="60"
|
||
y="445"
|
||
width="470"
|
||
height="105"
|
||
rx="12"
|
||
class="box"
|
||
id="rect10" />
|
||
<text
|
||
x="80"
|
||
y="475"
|
||
class="h2"
|
||
id="text11">Déploiement (release pack)</text>
|
||
<text
|
||
x="80"
|
||
y="500"
|
||
class="txt"
|
||
id="text12">• build Docker avec ARG/ENV : PUBLIC_GITEA_BASE/OWNER/REPO</text>
|
||
<text
|
||
x="80"
|
||
y="522"
|
||
class="txt"
|
||
id="text13">• pousse/maj sur NAS (containers web_blue/web_green)</text>
|
||
<rect
|
||
x="60"
|
||
y="569"
|
||
width="470"
|
||
height="165"
|
||
rx="12"
|
||
class="note"
|
||
id="rect13" />
|
||
<text
|
||
x="80"
|
||
y="605"
|
||
class="h2"
|
||
id="text14">Repères “vrais” côté site</text>
|
||
<text
|
||
x="80"
|
||
y="632"
|
||
class="txt"
|
||
id="text15">• whoami runtime : <tspan
|
||
class="mono"
|
||
id="tspan14">/_auth/whoami</tspan></text>
|
||
<text
|
||
x="80"
|
||
y="654"
|
||
class="txt"
|
||
id="text16">• variables injectées : <tspan
|
||
class="mono"
|
||
id="tspan15">PUBLIC_GITEA_BASE/OWNER/REPO</tspan></text>
|
||
<text
|
||
x="80"
|
||
y="676"
|
||
class="txt"
|
||
id="text17">• anchors canon : <tspan
|
||
class="mono"
|
||
id="tspan16">src/anchors/anchor-aliases.json</tspan></text>
|
||
<text
|
||
x="80"
|
||
y="698"
|
||
class="txt"
|
||
id="text18">• injection build-time : <tspan
|
||
class="mono"
|
||
id="tspan17">scripts/inject-anchor-aliases.mjs</tspan></text>
|
||
<!-- NAS -->
|
||
<rect
|
||
x="590"
|
||
y="110"
|
||
width="975"
|
||
height="880"
|
||
rx="18"
|
||
class="zone"
|
||
id="rect18" />
|
||
<text
|
||
x="615"
|
||
y="145"
|
||
class="h2"
|
||
id="text19">DISTANT — NAS Synology DS220+ (DSM + Container Manager)</text>
|
||
<!-- Users -->
|
||
<rect
|
||
x="615"
|
||
y="175"
|
||
width="270"
|
||
height="90"
|
||
rx="12"
|
||
class="box"
|
||
id="rect19" />
|
||
<text
|
||
x="635"
|
||
y="205"
|
||
class="h2"
|
||
id="text20">Utilisateurs</text>
|
||
<text
|
||
x="635"
|
||
y="230"
|
||
class="txt"
|
||
id="text21">• Web (public)</text>
|
||
<text
|
||
x="635"
|
||
y="252"
|
||
class="txt"
|
||
id="text22">• Éditeurs (groupe LDAP)</text>
|
||
<!-- DSM RP -->
|
||
<rect
|
||
x="905"
|
||
y="175"
|
||
width="630"
|
||
height="120"
|
||
rx="12"
|
||
class="box"
|
||
id="rect22" />
|
||
<text
|
||
x="930"
|
||
y="205"
|
||
class="h2"
|
||
id="text23">DSM Reverse Proxy (TLS terminé ici)</text>
|
||
<text
|
||
x="930"
|
||
y="230"
|
||
class="txt"
|
||
id="text24">• Host archicratie.trans-hands.synology.me → 127.0.0.1:18080</text>
|
||
<text
|
||
x="930"
|
||
y="252"
|
||
class="txt"
|
||
id="text25">• Host gitea.archicratie.trans-hands.synology.me → 127.0.0.1:18080</text>
|
||
<text
|
||
x="930"
|
||
y="274"
|
||
class="txt"
|
||
id="text26">• (idem staging.*, lldap.* si routés via Traefik)</text>
|
||
<!-- Edge Traefik -->
|
||
<rect
|
||
x="1012.7156"
|
||
y="321.2103"
|
||
width="522.28442"
|
||
height="148.78972"
|
||
rx="12"
|
||
class="box"
|
||
id="rect26" />
|
||
<text
|
||
x="1050"
|
||
y="350"
|
||
class="h2"
|
||
id="text27"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:16px;line-height:normal;font-family:sans-serif">edge-traefik (traefik:v2.11) — network_mode: host</text>
|
||
<text
|
||
x="1050"
|
||
y="375"
|
||
class="txt"
|
||
id="text28"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• entryPoint web : <tspan
|
||
class="mono"
|
||
id="tspan27"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace">:18080</tspan></text>
|
||
<text
|
||
x="1050"
|
||
y="397"
|
||
class="txt"
|
||
id="text29"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• provider file : <tspan
|
||
class="mono"
|
||
id="tspan28"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace">/etc/traefik/dynamic</tspan> (watch: true)</text>
|
||
<text
|
||
x="1050"
|
||
y="419"
|
||
class="txt"
|
||
id="text30"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• Host rules (routers) + middlewares (chain-auth / sanitize-remote)</text>
|
||
<text
|
||
x="1050"
|
||
y="441"
|
||
class="small"
|
||
id="text31"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:sans-serif">Tes 404 initiaux venaient d’un test sans Host: les routers utilisent Host(...)</text>
|
||
<!-- Dynamic files -->
|
||
<rect
|
||
x="615"
|
||
y="290"
|
||
width="270"
|
||
height="180"
|
||
rx="12"
|
||
class="note"
|
||
id="rect31" />
|
||
<text
|
||
x="623"
|
||
y="320"
|
||
class="h2"
|
||
id="text32"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:16px;line-height:normal;font-family:sans-serif">Fichiers dynamiques (edge)</text>
|
||
<text
|
||
x="623"
|
||
y="345"
|
||
class="mono"
|
||
id="text33"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace">/volume2/docker/edge/config/dynamic/</text>
|
||
<text
|
||
x="623"
|
||
y="368"
|
||
class="txt"
|
||
id="text34"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• 10-core.yml (routers + chain-auth)</text>
|
||
<text
|
||
x="623"
|
||
y="390"
|
||
class="txt"
|
||
id="text35"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• 20-archicratie-backend.yml (slot actif)</text>
|
||
<text
|
||
x="623"
|
||
y="412"
|
||
class="txt"
|
||
id="text36"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan88"
|
||
x="623"
|
||
y="412">• 21-archicratie-staging.yml</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan89"
|
||
x="623"
|
||
y="428.25">(staging→8081)</tspan></text>
|
||
<text
|
||
x="623"
|
||
y="448"
|
||
class="txt"
|
||
id="text37"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• 30-lldap-ui.yml (lldap UI)</text>
|
||
<!-- Auth stack -->
|
||
<rect
|
||
x="615"
|
||
y="495"
|
||
width="376.80786"
|
||
height="258.41147"
|
||
rx="12"
|
||
class="box"
|
||
id="rect37" />
|
||
<text
|
||
x="635"
|
||
y="525"
|
||
class="h2"
|
||
id="text38">Auth stack (auth)</text>
|
||
<text
|
||
x="635"
|
||
y="550"
|
||
class="txt"
|
||
id="text39">auth-authelia (authelia:4.39.13) — host</text>
|
||
<text
|
||
x="635"
|
||
y="572"
|
||
class="txt"
|
||
id="text40"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan92"
|
||
x="635"
|
||
y="572">• forward-auth :</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan93"
|
||
x="635"
|
||
y="588.25">http://127.0.0.1:9091/api/authz/forward-auth</tspan></text>
|
||
<text
|
||
x="635"
|
||
y="614"
|
||
class="txt"
|
||
id="text41"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">auth-lldap (lldap:stable)</text>
|
||
<text
|
||
x="635"
|
||
y="640"
|
||
class="txt"
|
||
id="text42"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• LDAP : <tspan
|
||
class="mono"
|
||
id="tspan41"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace">127.0.0.1:3890</tspan> • UI : <tspan
|
||
class="mono"
|
||
id="tspan42"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace">127.0.0.1:17170</tspan></text>
|
||
<text
|
||
x="635"
|
||
y="662"
|
||
class="txt"
|
||
id="text43"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">auth-redis (redis:7-alpine)</text>
|
||
<text
|
||
x="635"
|
||
y="684"
|
||
class="txt"
|
||
id="text44"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• exposé : <tspan
|
||
class="mono"
|
||
id="tspan43"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace">127.0.0.1:6380</tspan></text>
|
||
<text
|
||
x="635"
|
||
y="708"
|
||
class="small"
|
||
id="text45"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:sans-serif"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan94"
|
||
x="635"
|
||
y="708">Traefik injecte Remote-* via forward-auth,</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan95"
|
||
x="635"
|
||
y="723">et purge l’entrée (sanitize-remote).</tspan></text>
|
||
<!-- Whoami service -->
|
||
<rect
|
||
x="1110"
|
||
y="495"
|
||
width="365.69592"
|
||
height="117.57942"
|
||
rx="12"
|
||
class="box"
|
||
id="rect45" />
|
||
<text
|
||
x="1135"
|
||
y="525"
|
||
class="h2"
|
||
id="text46">edge-whoami (traefik/whoami)</text>
|
||
<text
|
||
x="1135"
|
||
y="550"
|
||
class="txt"
|
||
id="text47">• exposé : <tspan
|
||
class="mono"
|
||
id="tspan46">127.0.0.1:18081 → 80</tspan></text>
|
||
<text
|
||
x="1135"
|
||
y="572"
|
||
class="txt"
|
||
id="text48">• router Traefik : <tspan
|
||
class="mono"
|
||
id="tspan47">PathPrefix('/_auth/whoami')</tspan></text>
|
||
<text
|
||
x="1135"
|
||
y="594"
|
||
class="txt"
|
||
id="text49">• protégé par <tspan
|
||
class="mono"
|
||
id="tspan48">chain-auth</tspan> (302 login si non auth)</text>
|
||
<!-- Web blue/green -->
|
||
<rect
|
||
x="1047.9349"
|
||
y="639.94855"
|
||
width="224.96217"
|
||
height="116.11195"
|
||
rx="12"
|
||
class="box"
|
||
id="rect49" />
|
||
<text
|
||
x="1070"
|
||
y="670"
|
||
class="h2"
|
||
id="text50"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:16px;line-height:normal;font-family:sans-serif">archicratie-web-blue</text>
|
||
<text
|
||
x="1070"
|
||
y="695"
|
||
class="txt"
|
||
id="text51"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• 127.0.0.1:8081 → 80</text>
|
||
<text
|
||
x="1070"
|
||
y="717"
|
||
class="txt"
|
||
id="text52"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• Nginx sert dist/</text>
|
||
<text
|
||
x="1070"
|
||
y="739"
|
||
class="small"
|
||
id="text53"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:sans-serif">slot blue (staging cible 8081)</text>
|
||
<rect
|
||
x="1295"
|
||
y="640"
|
||
width="240.69592"
|
||
height="116.11195"
|
||
rx="12"
|
||
class="box"
|
||
id="rect53" />
|
||
<text
|
||
x="1320"
|
||
y="670"
|
||
class="h2"
|
||
id="text54"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:16px;line-height:normal;font-family:sans-serif">archicratie-web-green</text>
|
||
<text
|
||
x="1320"
|
||
y="695"
|
||
class="txt"
|
||
id="text55"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• 127.0.0.1:8082 → 80</text>
|
||
<text
|
||
x="1320"
|
||
y="717"
|
||
class="txt"
|
||
id="text56"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• Nginx sert dist/</text>
|
||
<text
|
||
x="1320"
|
||
y="739"
|
||
class="small"
|
||
id="text57"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:sans-serif">slot green (backend actuel)</text>
|
||
<rect
|
||
x="1156.7399"
|
||
y="778.21478"
|
||
width="374.62918"
|
||
height="105.4161"
|
||
rx="12"
|
||
class="note"
|
||
id="rect57" />
|
||
<text
|
||
x="1190.2118"
|
||
y="797.89716"
|
||
class="txt"
|
||
id="text58"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif"><tspan
|
||
id="tspan96"
|
||
x="1190.2118"
|
||
y="797.89716"
|
||
sodipodi:role="line">Bascule blue/green (Traefik) :</tspan><tspan
|
||
x="1190.2118"
|
||
y="814.14716"
|
||
id="tspan104"
|
||
sodipodi:role="line">modifier <tspan
|
||
class="mono"
|
||
id="tspan57"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace">dynamic/20-archicratie-backend.yml</tspan></tspan><tspan
|
||
id="tspan97"
|
||
x="1190.2118"
|
||
y="830.39716"
|
||
sodipodi:role="line">→ url 8081/8082 (un seul backend actif)</tspan></text>
|
||
<text
|
||
x="1202.3751"
|
||
y="858.05145"
|
||
class="small"
|
||
id="text59"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:sans-serif"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan101"
|
||
x="1202.3751"
|
||
y="858.05145">Actuellement (d’après ton dump) :<tspan
|
||
class="mono"
|
||
id="tspan58"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace"></tspan></tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan102"
|
||
x="1202.3751"
|
||
y="873.05145"><tspan
|
||
class="mono"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace"
|
||
id="tspan103">archicratie_web → http://127.0.0.1:8082</tspan></tspan></text>
|
||
<!-- Gitea + Runner -->
|
||
<rect
|
||
x="615"
|
||
y="790"
|
||
width="440.12103"
|
||
height="180.57489"
|
||
rx="12"
|
||
class="box"
|
||
id="rect59" />
|
||
<text
|
||
x="635"
|
||
y="820"
|
||
class="h2"
|
||
id="text60"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:16px;line-height:normal;font-family:sans-serif">Gitea (actuel)</text>
|
||
<text
|
||
x="635"
|
||
y="845"
|
||
class="txt"
|
||
id="text61"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• conteneur : <tspan
|
||
class="mono"
|
||
id="tspan60"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace">gitea-old-2026-02-09-105211</tspan></text>
|
||
<text
|
||
x="635"
|
||
y="867"
|
||
class="txt"
|
||
id="text62"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• port : <tspan
|
||
class="mono"
|
||
id="tspan61"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace">0.0.0.0:3000</tspan> (Traefik route aussi vers 127.0.0.1:3000)</text>
|
||
<text
|
||
x="635"
|
||
y="889"
|
||
class="txt"
|
||
id="text63"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan90"
|
||
x="635"
|
||
y="889">• router Traefik : Host(gitea.archicratie...)</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan91"
|
||
x="635"
|
||
y="905.25">+ middleware sanitize-remote (pas chain-auth)</tspan></text>
|
||
<text
|
||
x="635"
|
||
y="929"
|
||
class="small"
|
||
id="text64"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:sans-serif"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan99"
|
||
x="635"
|
||
y="929">“Proposer” dépend de PUBLIC_GITEA_* corrects</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan100"
|
||
x="635"
|
||
y="944">(owner casse sensible).</tspan></text>
|
||
<rect
|
||
x="1160"
|
||
y="895"
|
||
width="375"
|
||
height="85"
|
||
rx="12"
|
||
class="box"
|
||
id="rect64" />
|
||
<text
|
||
x="1185"
|
||
y="925"
|
||
class="h2"
|
||
id="text65"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:16px;line-height:normal;font-family:sans-serif">gitea-act-runner</text>
|
||
<text
|
||
x="1185"
|
||
y="950"
|
||
class="txt"
|
||
id="text66"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif">• image : <tspan
|
||
class="mono"
|
||
id="tspan65"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace">gitea/act_runner:0.2.11</tspan></text>
|
||
<text
|
||
x="1185"
|
||
y="972"
|
||
class="small"
|
||
id="text67"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:sans-serif">CI : labels / checks (anchors, aliases, etc.).</text>
|
||
<!-- Connections -->
|
||
<path
|
||
d="M 885 220 L 905 220"
|
||
class="line"
|
||
id="path67" />
|
||
<!-- Users -> DSM -->
|
||
<path
|
||
d="M 1220 295 L 1220 320"
|
||
class="line"
|
||
id="path68" />
|
||
<!-- DSM -> Traefik -->
|
||
<!-- Traefik -> auth (forward auth) -->
|
||
<path
|
||
d="m 1005,420 -45,75"
|
||
class="dash"
|
||
id="path69" />
|
||
<text
|
||
x="120.96539"
|
||
y="1057.8674"
|
||
class="small"
|
||
id="text69"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:sans-serif"
|
||
transform="rotate(-57.013356)">forward-auth</text>
|
||
<!-- Traefik -> whoami -->
|
||
<path
|
||
d="M 1220 470 L 1220 495"
|
||
class="line"
|
||
id="path70" />
|
||
<!-- Traefik -> web service -->
|
||
<path
|
||
d="m 1082.9955,470 -0.3782,168.78971"
|
||
class="dash"
|
||
id="path71"
|
||
sodipodi:nodetypes="cc" />
|
||
<path
|
||
d="m 1500,470 -0.416,170"
|
||
class="dash"
|
||
id="path72"
|
||
sodipodi:nodetypes="cc" />
|
||
<!-- Traefik -> gitea -->
|
||
<path
|
||
d="m 1034.826,471.21029 1.3616,315.67322"
|
||
class="dash"
|
||
id="path73"
|
||
sodipodi:nodetypes="cc" />
|
||
<!-- Gitea -> runner -->
|
||
<path
|
||
d="m 1060,890 98.7897,59.52345"
|
||
class="line"
|
||
id="path74"
|
||
sodipodi:nodetypes="cc" />
|
||
<!-- Local -> NAS (release/deploy) -->
|
||
<path
|
||
d="M 530 505 L 615 505"
|
||
class="line"
|
||
id="path75" />
|
||
<!-- Legend -->
|
||
<rect
|
||
x="61.210289"
|
||
y="750.47656"
|
||
width="467.57938"
|
||
height="215.31776"
|
||
rx="12"
|
||
class="note"
|
||
id="rect75" />
|
||
<text
|
||
x="80"
|
||
y="777"
|
||
class="h2"
|
||
id="text75"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:16px;line-height:normal;font-family:sans-serif">Lecture (opérationnelle)</text>
|
||
<text
|
||
x="80"
|
||
y="798"
|
||
class="txt"
|
||
id="text76"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan86"
|
||
x="80"
|
||
y="798">1) Web public : DSM → Traefik :18080 → Host(archicratie...)</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan87"
|
||
x="80"
|
||
y="814.40051">→ chain-auth → backend (8081/8082)</tspan></text>
|
||
<text
|
||
x="80"
|
||
y="836"
|
||
class="txt"
|
||
id="text77"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan84"
|
||
x="80"
|
||
y="836">2) Gate éditeurs : site appelle /_auth/whoami</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan85"
|
||
x="80"
|
||
y="852.25">→ Traefik route vers edge-whoami (protégé)</tspan></text>
|
||
<text
|
||
x="80"
|
||
y="874"
|
||
class="txt"
|
||
id="text78"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan82"
|
||
x="80"
|
||
y="874">3) Gitea : Host(gitea...) → Traefik → 127.0.0.1:3000</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan83"
|
||
x="80"
|
||
y="890.40051">(sanitize-remote)</tspan></text>
|
||
<text
|
||
x="80"
|
||
y="912"
|
||
class="txt"
|
||
id="text79"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13px;line-height:normal;font-family:sans-serif"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan80"
|
||
x="80"
|
||
y="912">4) Blue/green : changer <tspan
|
||
class="mono"
|
||
id="tspan78"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:ui-monospace, SFMono-Regular, Menlo, monospace">dynamic/20-archicratie-backend.yml</tspan></tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan81"
|
||
x="80"
|
||
y="928.25">(un seul backend actif)</tspan></text>
|
||
<text
|
||
x="80"
|
||
y="950"
|
||
class="small"
|
||
id="text80"
|
||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:sans-serif">NB : un test sans Host sur :18080 renvoie 404 (normal, Host rules).</text>
|
||
</svg>
|