mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 05:34:43 +02:00
feat(infra): domaine public funklab.online + HTTPS Let's Encrypt (fondation) (#88)
- traefik : values.yaml versionné (réplique existant + certResolver ACME HTTP-01 + acme.json persistant) — appliqué par helm upgrade (hors ArgoCD). Redirect HTTP→HTTPS scopée funklab.online (ne casse pas *.lab.local). - gateway : DNAT 80/443 → Traefik + rate-limit - dnsmasq : split-horizon *.funklab.online → Traefik (var public_domain) - doc : admin/k8s/public-domain.md (archi, OVH/Freebox, helm, ajout d'app) Appliqué et vérifié : helm upgrade OK (services *.lab.local intacts), resolver ACME chargé, DNAT/dnsmasq en place. En attente DNS OVH + Freebox pour l'émission des certificats. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
f9a916988b
commit
cd0dacbc9a
6 changed files with 202 additions and 0 deletions
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
admin_user: alkatrazz
|
||||
dns_domain: lab.local
|
||||
public_domain: funklab.online # domaine public (OVH) — apps exposées en HTTPS via Traefik
|
||||
ntp_servers:
|
||||
- 0.fr.pool.ntp.org
|
||||
- 1.fr.pool.ntp.org
|
||||
|
|
|
|||
|
|
@ -28,6 +28,11 @@ address=/{{ host.name }}/{{ host.ip }}
|
|||
# Wildcard *.lab.local → IP MetalLB Traefik (ingress)
|
||||
address=/.{{ dns_domain }}/{{ traefik_ip }}
|
||||
|
||||
# Split-horizon : *.funklab.online résolu en interne vers Traefik (le LAN utilise
|
||||
# les mêmes URLs publiques sans sortir sur Internet ; l'extérieur passe par le DNS
|
||||
# OVH → IP publique → Freebox → s01). Ajouter ici chaque nouveau domaine public.
|
||||
address=/{{ public_domain }}/{{ traefik_ip }}
|
||||
|
||||
# DHCP — plage dynamique pour le LAN cluster
|
||||
dhcp-range={{ dhcp_range_start }},{{ dhcp_range_end }},{{ dhcp_lease_time }}
|
||||
dhcp-option=option:dns-server,{{ lan_ip }}
|
||||
|
|
|
|||
|
|
@ -86,6 +86,11 @@ table inet filter {
|
|||
ip daddr 192.168.10.202 tcp dport 8080 ct state new limit rate 30/minute burst 15 packets accept
|
||||
ip daddr { 192.168.10.201, 192.168.10.202 } ct state established,related accept
|
||||
|
||||
# Domaine public funklab.online — Internet DNATé (80/443) → Traefik (.200).
|
||||
# Routage par sous-domaine + TLS Let's Encrypt côté Traefik. Rate-limit idem.
|
||||
ip daddr 192.168.10.200 tcp dport { 80, 443 } ct state new limit rate 60/minute burst 30 packets accept
|
||||
ip daddr 192.168.10.200 tcp dport { 80, 443 } ct state established,related accept
|
||||
|
||||
# WireGuard → lab : filtrage par pair (host_vars wireguard_peers)
|
||||
{% for peer in wireguard_peers | selectattr('access', 'equalto', 'full') | list %}
|
||||
# {{ peer.name }} — accès complet
|
||||
|
|
@ -117,6 +122,9 @@ table ip nat {
|
|||
# kaya.freeboxos.fr:9081 → Authentik (VIP .201) ; :9080 → Guacamole (VIP .202)
|
||||
iif {{ wan_interface }} tcp dport 9081 dnat to 192.168.10.201:9000
|
||||
iif {{ wan_interface }} tcp dport 9080 dnat to 192.168.10.202:8080
|
||||
|
||||
# funklab.online — Freebox 80/443 → Traefik (routage par sous-domaine + TLS)
|
||||
iif {{ wan_interface }} tcp dport { 80, 443 } dnat to 192.168.10.200
|
||||
}
|
||||
|
||||
chain postrouting {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue