0 Votes

Code source wiki de Schéma de l'infrastructure

Version 3.1 par john le 2026/09/20 20:45

Afficher les derniers auteurs
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}}
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&#10;Let's Encrypt&#10;Cloudflare&#10;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&#10;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&#10;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&#10;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&#10;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&#10;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&#10;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&#10;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&#10;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&#10;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>