Code source wiki de Schéma de l'infrastructure
Masquer les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
![]() |
1.1 | 1 | {{code language="none"}} |
| 2 | INTERNET | ||
| 3 | Visiteurs DuckDNS Let's Encrypt Cloudflare CrowdSec CAPI Telegram Registres | ||
| 4 | │ ▲ ▲ (Turnstile) ▲ ▲ ▲ | ||
| 5 | │ HTTPS │ IP │ certificat │ │ │ 5 h | ||
| 6 | ▼ │ │ wildcard │ │ │ | ||
| 7 | ┌─────────┐ │ │ │ │ │ | ||
| 8 | │ Box │ │ │ │ │ │ | ||
| 9 | └────┬────┘ │ │ │ │ │ | ||
| 10 | │ 80/443 │ │ │ │ │ | ||
| 11 | ┌─────┼───────────┼─────────────┼──────────────────────────────┼──────────────┼────────────┼──┐ | ||
| 12 | │ ▼ │ SERVEUR PRINCIPAL (Debian 13, noyau Zabbly)│ │ │ │ | ||
| 13 | │ ┌────────┐ ┌───┴────┐ ┌────┴─────┐ │ ┌─────┴─┐│ | ||
| 14 | │ │ SWAG │──┤ DuckDNS│ Authelia ◄── contrôle d'accès ─┤ CrowdSec │ │ │Watch- ││ | ||
| 15 | │ │ nginx │ └────────┘ ▲ └────▲─────┘ │ │tower ││ | ||
| 16 | │ │fail2ban├───────────────────┘ journaux / décisions ────┘ │ └───────┘│ | ||
| 17 | │ └───┬────┘ │ │ | ||
| 18 | │ │ proxy (réseau proxy) │ │ | ||
| 19 | │ ▼ │ │ | ||
| 20 | │ ┌──────────────────────────────────────────────────┐ ┌─────────────────┐ │ │ | ||
| 21 | │ │ Services : Productivité · Veille · Médias · │ │ Script Plakar ├──┘ ✅ ⚠️ ❌ │ | ||
| 22 | │ │ Outils (Sshwifty…) │ │ cron 3 h 30 │ │ | ||
| 23 | │ │ n8n ──► docker-socket-proxy (réseau docker-api) │ └────────┬────────┘ │ | ||
| 24 | │ │ n8n ──► Telegram (mises à jour de conteneurs) │ │ │ | ||
| 25 | │ │ Jellystat ──► API Jellyfin │ │ │ | ||
| 26 | │ └──────────────────────────────────────────────────┘ │ │ | ||
| 27 | │ Portainer ──────────────────────────────────┐ │ │ | ||
| 28 | └───────┬───────────────────────────────────────┼─────────────────┼───────────────────────────┘ | ||
| 29 | │ proxy (Jellyfin, AdGuard) SSH (clé) │ 9001 │ SFTP, chaque nuit | ||
| 30 | ┌───────▼───────────────────────────────────────▼─────────────────▼───────────────────────────┐ | ||
| 31 | │ RASPBERRY PI (Debian 13, noyau Raspberry Pi) │ | ||
| 32 | │ AdGuard Home Jellyfin meshtasticd Portainer Agent Watchtower OLED Stats led-anim│ | ||
| 33 | │ ▲ │ │ | ||
| 34 | │ │ DNS │ radio LoRa SSD : dépôt Plakar · médias Jellyfin │ | ||
| 35 | └──────┼──────────────────────────┼───────────────────────────────────────────────────────────┘ | ||
| 36 | │ ▼ | ||
| 37 | Postes clients Réseau Meshtastic | ||
| 38 | (réseau local) | ||
| 39 | {{/code}} | ||
![]() |
3.1 | 40 | |
| 41 | <mxGraphModel dx="800" dy="600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> | ||
| 42 | <root> | ||
| 43 | <mxCell id="0" /> | ||
| 44 | <mxCell id="1" parent="0" /> | ||
| 45 | |||
| 46 | <mxCell id="net" value="Internet" style="rounded=0;fillColor=#f5f5f5;strokeColor=#999999;verticalAlign=top;fontStyle=1" vertex="1" parent="1"> | ||
| 47 | <mxGeometry x="40" y="20" width="770" height="90" as="geometry" /> | ||
| 48 | </mxCell> | ||
| 49 | <mxCell id="visit" value="Visiteurs" style="rounded=1;fillColor=#ffffff;strokeColor=#666666" vertex="1" parent="1"> | ||
| 50 | <mxGeometry x="60" y="55" width="120" height="40" as="geometry" /> | ||
| 51 | </mxCell> | ||
| 52 | <mxCell id="svcext" value="DuckDNS Let's Encrypt Cloudflare CrowdSec CAPI" style="rounded=1;fillColor=#ffffff;strokeColor=#666666;align=left;spacingLeft=8" vertex="1" parent="1"> | ||
| 53 | <mxGeometry x="330" y="45" width="160" height="60" as="geometry" /> | ||
| 54 | </mxCell> | ||
| 55 | <mxCell id="tg" value="Telegram" style="rounded=1;fillColor=#ffffff;strokeColor=#666666" vertex="1" parent="1"> | ||
| 56 | <mxGeometry x="650" y="55" width="120" height="40" as="geometry" /> | ||
| 57 | </mxCell> | ||
| 58 | |||
| 59 | <mxCell id="box" value="Box redirection 80/443" style="rounded=1;fillColor=#fff2cc;strokeColor=#d6b656" vertex="1" parent="1"> | ||
| 60 | <mxGeometry x="60" y="150" width="160" height="50" as="geometry" /> | ||
| 61 | </mxCell> | ||
| 62 | |||
| 63 | <mxCell id="srv" value="Serveur principal — Debian 13" style="rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalAlign=top;fontStyle=1" vertex="1" parent="1"> | ||
| 64 | <mxGeometry x="40" y="240" width="770" height="330" as="geometry" /> | ||
| 65 | </mxCell> | ||
| 66 | <mxCell id="swag" value="SWAG reverse proxy, TLS, fail2ban" style="rounded=1;fillColor=#ffffff;strokeColor=#6c8ebf" vertex="1" parent="1"> | ||
| 67 | <mxGeometry x="70" y="285" width="200" height="60" as="geometry" /> | ||
| 68 | </mxCell> | ||
| 69 | <mxCell id="auth" value="Authelia authentification" style="rounded=1;fillColor=#ffffff;strokeColor=#6c8ebf" vertex="1" parent="1"> | ||
| 70 | <mxGeometry x="310" y="285" width="150" height="60" as="geometry" /> | ||
| 71 | </mxCell> | ||
| 72 | <mxCell id="cs" value="CrowdSec détection, bannissement" style="rounded=1;fillColor=#ffffff;strokeColor=#6c8ebf" vertex="1" parent="1"> | ||
| 73 | <mxGeometry x="500" y="285" width="180" height="60" as="geometry" /> | ||
| 74 | </mxCell> | ||
| 75 | <mxCell id="svc" value="Services en conteneurs productivité · veille · médias · outils" style="rounded=1;fillColor=#ffffff;strokeColor=#6c8ebf" vertex="1" parent="1"> | ||
| 76 | <mxGeometry x="70" y="390" width="330" height="70" as="geometry" /> | ||
| 77 | </mxCell> | ||
| 78 | <mxCell id="gest" value="Portainer · Watchtower docker-socket-proxy · n8n" style="rounded=1;fillColor=#ffffff;strokeColor=#6c8ebf" vertex="1" parent="1"> | ||
| 79 | <mxGeometry x="440" y="390" width="240" height="70" as="geometry" /> | ||
| 80 | </mxCell> | ||
| 81 | <mxCell id="plakar" value="Sauvegarde Plakar — 3 h 30" style="rounded=1;fillColor=#d5e8d4;strokeColor=#82b366" vertex="1" parent="1"> | ||
| 82 | <mxGeometry x="70" y="490" width="610" height="50" as="geometry" /> | ||
| 83 | </mxCell> | ||
| 84 | |||
| 85 | <mxCell id="pi" value="Raspberry Pi — Debian 13, réseau local" style="rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;verticalAlign=top;fontStyle=1" vertex="1" parent="1"> | ||
| 86 | <mxGeometry x="40" y="640" width="770" height="180" as="geometry" /> | ||
| 87 | </mxCell> | ||
| 88 | <mxCell id="adg" value="AdGuard Home DNS local" style="rounded=1;fillColor=#ffffff;strokeColor=#9673a6" vertex="1" parent="1"> | ||
| 89 | <mxGeometry x="70" y="685" width="160" height="55" as="geometry" /> | ||
| 90 | </mxCell> | ||
| 91 | <mxCell id="jf" value="Jellyfin" style="rounded=1;fillColor=#ffffff;strokeColor=#9673a6" vertex="1" parent="1"> | ||
| 92 | <mxGeometry x="260" y="685" width="120" height="55" as="geometry" /> | ||
| 93 | </mxCell> | ||
| 94 | <mxCell id="mesh" value="meshtasticd LoRa" style="rounded=1;fillColor=#ffffff;strokeColor=#9673a6" vertex="1" parent="1"> | ||
| 95 | <mxGeometry x="410" y="685" width="120" height="55" as="geometry" /> | ||
| 96 | </mxCell> | ||
| 97 | <mxCell id="ssd" value="SSD dépôt Plakar · médias" style="rounded=1;fillColor=#d5e8d4;strokeColor=#82b366" vertex="1" parent="1"> | ||
| 98 | <mxGeometry x="560" y="685" width="220" height="55" as="geometry" /> | ||
| 99 | </mxCell> | ||
| 100 | |||
| 101 | <mxCell id="postes" value="Postes du réseau local" style="rounded=1;fillColor=#ffffff;strokeColor=#666666" vertex="1" parent="1"> | ||
| 102 | <mxGeometry x="60" y="860" width="200" height="40" as="geometry" /> | ||
| 103 | </mxCell> | ||
| 104 | <mxCell id="lora" value="Réseau Meshtastic" style="rounded=1;fillColor=#ffffff;strokeColor=#666666" vertex="1" parent="1"> | ||
| 105 | <mxGeometry x="400" y="860" width="180" height="40" as="geometry" /> | ||
| 106 | </mxCell> | ||
| 107 | |||
| 108 | <mxCell id="e1" value="HTTPS" style="edgeStyle=orthogonalEdgeStyle;rounded=0;endArrow=block" edge="1" parent="1" source="visit" target="box"> | ||
| 109 | <mxGeometry relative="1" as="geometry" /> | ||
| 110 | </mxCell> | ||
| 111 | <mxCell id="e2" value="80/443" style="edgeStyle=orthogonalEdgeStyle;rounded=0;endArrow=block" edge="1" parent="1" source="box" target="swag"> | ||
| 112 | <mxGeometry relative="1" as="geometry" /> | ||
| 113 | </mxCell> | ||
| 114 | <mxCell id="e3" value="contrôle d'accès" style="edgeStyle=orthogonalEdgeStyle;rounded=0;dashed=1;endArrow=block" edge="1" parent="1" source="swag" target="auth"> | ||
| 115 | <mxGeometry relative="1" as="geometry" /> | ||
| 116 | </mxCell> | ||
| 117 | <mxCell id="e4" value="journaux / décisions" style="edgeStyle=orthogonalEdgeStyle;rounded=0;dashed=1;endArrow=block" edge="1" parent="1" source="swag" target="cs"> | ||
| 118 | <mxGeometry relative="1" as="geometry" /> | ||
| 119 | </mxCell> | ||
| 120 | <mxCell id="e5" value="proxy" style="edgeStyle=orthogonalEdgeStyle;rounded=0;endArrow=block" edge="1" parent="1" source="swag" target="svc"> | ||
| 121 | <mxGeometry relative="1" as="geometry" /> | ||
| 122 | </mxCell> | ||
| 123 | <mxCell id="e6" value="proxy (Jellyfin, AdGuard)" style="edgeStyle=orthogonalEdgeStyle;rounded=0;endArrow=block" edge="1" parent="1" source="swag" target="pi"> | ||
| 124 | <mxGeometry relative="1" as="geometry" /> | ||
| 125 | </mxCell> | ||
| 126 | <mxCell id="e7" value="SFTP chaque nuit" style="edgeStyle=orthogonalEdgeStyle;rounded=0;strokeColor=#82b366;endArrow=block" edge="1" parent="1" source="plakar" target="ssd"> | ||
| 127 | <mxGeometry relative="1" as="geometry" /> | ||
| 128 | </mxCell> | ||
| 129 | <mxCell id="e8" value="✅ ⚠️ ❌" style="edgeStyle=orthogonalEdgeStyle;rounded=0;dashed=1;strokeColor=#82b366;endArrow=block" edge="1" parent="1" source="plakar" target="tg"> | ||
| 130 | <mxGeometry relative="1" as="geometry" /> | ||
| 131 | </mxCell> | ||
| 132 | <mxCell id="e9" value="DNS" style="edgeStyle=orthogonalEdgeStyle;rounded=0;endArrow=block" edge="1" parent="1" source="postes" target="adg"> | ||
| 133 | <mxGeometry relative="1" as="geometry" /> | ||
| 134 | </mxCell> | ||
| 135 | <mxCell id="e10" value="radio" style="edgeStyle=orthogonalEdgeStyle;rounded=0;endArrow=block" edge="1" parent="1" source="mesh" target="lora"> | ||
| 136 | <mxGeometry relative="1" as="geometry" /> | ||
| 137 | </mxCell> | ||
| 138 | <mxCell id="e11" value="DNS dynamique, certificat, signalements" style="edgeStyle=orthogonalEdgeStyle;rounded=0;dashed=1;endArrow=block" edge="1" parent="1" source="srv" target="svcext"> | ||
| 139 | <mxGeometry relative="1" as="geometry" /> | ||
| 140 | </mxCell> | ||
| 141 | </root> | ||
| 142 | </mxGraphModel> |
