Reverse proxy modulaire, cache, équilibreur de charge et hébergeur statique, écrit en Rust. Sécurisé par défaut avec TLS, ACME, compression, politiques edge, découverte dynamique des upstreams et miroir de trafic sûr intégrés.
include_conf_d = false
[server]
listen = ["0.0.0.0:80"]
tls_listen = ["0.0.0.0:443"]
default_vhost = "fluxheim.eu"
[tls]
enabled = true
backend = "rustls"
profile = "intermediate"
min_protocol = "tls1.2"
alpn = "http1-and-http2"
curve_preferences = ["X25519", "CurveP256", "CurveP384"]
[[vhosts]]
name = "fluxheim.eu"
hosts = ["fluxheim.eu"]
[vhosts.tls]
enabled = true
[vhosts.tls.certificate]
cert_path = "/etc/fluxheim/tls/fluxheim.eu/fullchain.pem"
key_path = "/etc/fluxheim/tls/fluxheim.eu/privkey.pem"
[vhosts.web]
root = "/srv/sites/fluxheim.eu"
index_files = ["index.html"]
Fluxheim est livré sous forme de builds ciblés et modulaires — n'utilisez que ce dont votre déploiement a besoin.
Écrit en Rust avec une toolchain stable verrouillée. Pas de dépassement de tampon, pas de use-after-free, pas de data race par construction.
Un runtime edge natif Rust avec pool de connexions, reprises upstream, contrôles de santé actifs, HTTP/2, mises à niveau WebSocket et passage gRPC.
Binaire et image load-balancer 1.5 ciblés avec sélection avancée, persistance locale, politiques de santé/éjection, files bornées et contrôles de membres à l'exécution.
Compilez seulement ce dont vous avez besoin. Profils ciblés pour site statique, cache edge, reverse proxy, équilibrage de charge, proxy de flux TCP, PHP-FPM, GeoIP, miroir de trafic et bundles de production avec compression.
rustls d'abord, avec chemins de build OpenSSL et FIPS/ISO pris en charge, authentification par certificat client, mTLS upstream, émission ACME automatique et SNI multi-certificats.
Backends de cache mémoire, disque, hiérarchisés et chiffrés avec compression gzip, Zstandard et Brotli compatible cache, plus cache par plages pour les grands objets.
Images Podman rootless pour Wolfi, Alpine, SUSE Micro et Debian. Systemd/RPM pour les déploiements natifs. Aucun asset externe au démarrage.
Listener de métriques Prometheus optionnel, export OTLP des métriques, propagation du contexte de trace et export OTLP des traces pour une observabilité complète.
Lookups MMDB locaux optionnels pour les politiques pays et ASN avec les jeux de données MaxMind GeoIP2/GeoLite2 ou CIRCL Geo Open. Aucun lookup distant ni téléchargeur dans le chemin de requête.
Services TCP L4 bruts avec routes de flux dédiées, limites réelles d'inactivité, de durée de vie et d'octets, contrôles TLS/mTLS upstream, politiques pondérées/drain/secours et protocole PROXY local à la route.
Bridge PHP-FPM FastCGI optionnel pour les applications front-controller de style WordPress. Résolution stricte des scripts et traitement borné des requêtes.
ACL tenant compte des proxys de confiance, limites de débit, sous-requêtes d'authentification, miroir de trafic, réécritures regex, files bornées, validation stricte de configuration et traitement renforcé des requêtes.
Download a pre-built binary, drop in a config file, and start serving. Native systemd units and container images included.
# Télécharger et extraire le build complet
curl -L https://github.com/valkyoth/fluxheim/releases/download/v1.6.30/fluxheim-1.6.30-full-x86_64-linux.tar.gz \
| tar xz
# Déplacer le binaire dans le chemin système
sudo mv fluxheim /usr/local/bin/
# Valider la configuration avant le démarrage
fluxheim --check-config --config /etc/fluxheim/fluxheim.toml
# Exécuter avec systemd (fichier d'unité inclus)
sudo systemctl enable --now fluxheim
# Tirer depuis GHCR ou Quay
podman pull ghcr.io/valkyoth/fluxheim:v1.6.30
podman pull quay.io/valkyoth/fluxheim:v1.6.30
# Exécuter rootless avec la configuration montée
podman run -d \
--name fluxheim \
-p 8080:8080 -p 8443:8443 \
-v /srv/sites:/srv/sites:ro \
-v ./fluxheim.toml:/etc/fluxheim/fluxheim.toml:ro \
ghcr.io/valkyoth/fluxheim:v1.6.30
# Variantes d'image disponibles : full, load-balancer, cache, proxy, php
# Cloner et compiler le profil par défaut
git clone https://github.com/valkyoth/fluxheim
cd fluxheim
# Build par défaut (proxy + web + cache + tls-rustls + security)
cargo build --release
# Ou compiler un profil ciblé
cargo build --release --no-default-features \
--features profile-proxy-edge,acme-client
# Valider la configuration et lancer
cargo run --release -- \
--check-config --config examples/fluxheim.toml
Conçu pour les opérateurs qui veulent une pile moderne et auditable sans comportement legacy caché.
La validation de configuration est stricte. Les options ambiguës ou non sûres sont rejetées, pas acceptées silencieusement.
Builds reproductibles. Chaque dépendance est verrouillée. cargo audit and cargo deny run in CI.
Exécution sans root. Ports internes 8080/8443 par défaut. Images runtime explicites pour différentes politiques opérationnelles.
Licence copyleft compatible avec de nombreuses licences OSS. Origine UE, juridiquement claire pour les usages gouvernementaux et d'entreprise.
Un aperçu de Fluxheim dans un déploiement de production.