"""Minimaler Testwebserver: zeigt Hostname, Zeit und Client-Adresse und loggt jeden Zugriff. GET / HTML-Seite GET /health "ok" (fuer Skripte) TLS=yes HTTPS mit /certs/server.crt + /certs/server.key """ import html import os import socket import ssl import sys from datetime import datetime from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer TLS = os.environ.get("TLS", "no").lower() in ("yes", "true", "1") MESSAGE = os.environ.get("MESSAGE", "Testwebserver laeuft") PUBLIC_PORT = os.environ.get("PUBLIC_PORT", "?") HOST = socket.gethostname() class Handler(BaseHTTPRequestHandler): server_version = "testwebserver/1.0" def _send(self, code, body, ctype): data = body.encode() self.send_response(code) self.send_header("Content-Type", f"{ctype}; charset=utf-8") self.send_header("Content-Length", str(len(data))) self.end_headers() if self.command != "HEAD": self.wfile.write(data) def do_GET(self): if self.path == "/health": return self._send(200, "ok\n", "text/plain") now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") rows = "".join(f"
Container {html.escape(HOST)} · Port {html.escape(PUBLIC_PORT)} ({'HTTPS' if TLS else 'HTTP'}) · {now}
Deine Adresse (wie der Container sie sieht): {html.escape(self.client_address[0])}