Traefik : exemple de route /admin vers l'interface ; option --ecoute
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mf2kATMtqVABHSYdxJMnim
This commit is contained in:
1 parent
4366db94ed
commit
d3a8394bc1
4 files changed
+40
-6
No files matched your search
+3
-1
@@ -57,6 +57,7 @@ def main(argv=None):
|
||||
i.add_argument("--proxy", action="store_true",
|
||||
help="derrière le serveur web du site (mot de passe obligatoire)")
|
||||
i.add_argument("--prefixe", default="", help="chemin de l'interface sur le site, par exemple /admin")
|
||||
i.add_argument("--ecoute", help="adresse d'écoute (défaut 127.0.0.1 ; 0.0.0.0 si le serveur web est ailleurs)")
|
||||
|
||||
mp = sp.add_parser("mot-de-passe", help="définir ou supprimer le mot de passe de l'interface")
|
||||
mp.add_argument("--supprimer", action="store_true")
|
||||
@@ -109,7 +110,8 @@ def main(argv=None):
|
||||
if bool(args.certificat) != bool(args.cle):
|
||||
sys.exit("❌ --certificat et --cle vont ensemble.")
|
||||
lancer(racine, args.port, ouvrir=not (args.sans_navigateur or args.proxy), distant=args.distant,
|
||||
certificat=args.certificat, cle=args.cle, proxy=args.proxy, prefixe=args.prefixe)
|
||||
certificat=args.certificat, cle=args.cle, proxy=args.proxy, prefixe=args.prefixe,
|
||||
ecoute=args.ecoute)
|
||||
except KeyboardInterrupt:
|
||||
print("\nInterrompu.")
|
||||
sys.exit(130)
|
||||
@@ -837,13 +837,16 @@ def _echapper(s):
|
||||
|
||||
|
||||
def lancer(racine, port=8765, ouvrir=True, distant=False, certificat=None, cle=None,
|
||||
proxy=False, prefixe=""):
|
||||
proxy=False, prefixe="", ecoute=None):
|
||||
"""Lance l'interface.
|
||||
distant : écoute sur toutes les interfaces réseau, mot de passe obligatoire ;
|
||||
certificat, cle : HTTPS ;
|
||||
proxy : derrière le serveur web du site (qui transmet https://…/admin/ à
|
||||
127.0.0.1:port), mot de passe obligatoire ; prefixe : « /admin »."""
|
||||
if (distant or proxy) and not acces.defini():
|
||||
127.0.0.1:port), mot de passe obligatoire ; prefixe : « /admin » ;
|
||||
ecoute : adresse d'écoute imposée (« 0.0.0.0 » si le serveur web est sur
|
||||
une autre machine)."""
|
||||
hors_machine = ecoute and ecoute not in ("127.0.0.1", "localhost", "::1")
|
||||
if (distant or proxy or hors_machine) and not acces.defini():
|
||||
raise SystemExit("❌ L'accès depuis le réseau demande un mot de passe : lancez d'abord « rtg mot-de-passe ».")
|
||||
contexte_tls = None
|
||||
if certificat:
|
||||
@@ -856,7 +859,8 @@ def lancer(racine, port=8765, ouvrir=True, distant=False, certificat=None, cle=N
|
||||
for p in ([port] if proxy else range(port, port + 20)):
|
||||
try:
|
||||
gardien = Gardien(p, distant=distant, https=bool(contexte_tls), proxy=proxy, prefixe=app.prefixe)
|
||||
serveur = ThreadingHTTPServer(("0.0.0.0" if distant else "127.0.0.1", p),
|
||||
adresse = ecoute or ("0.0.0.0" if distant else "127.0.0.1")
|
||||
serveur = ThreadingHTTPServer((adresse, p),
|
||||
creer_gestionnaire(app, p, gardien))
|
||||
port = p
|
||||
break
|
||||
|
||||
Reference in new issue
Block a user