commit e746fca434bea7fcdd420071fe542e753357bd9d Author: Arch Agent Date: Wed May 6 08:26:24 2026 +0200 Initial commit: lightweight webserver with X-Server-Time header diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..cf8a422 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM python:3-alpine +WORKDIR /app +COPY server.py . +EXPOSE 8000 +CMD ["python3", "server.py"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..36c5147 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +version: "3.9" +services: + webserver: + build: . + container_name: x-server-time + ports: + - "8000:8000" + restart: unless-stopped diff --git a/server.py b/server.py new file mode 100644 index 0000000..4ba7fa9 --- /dev/null +++ b/server.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +from http.server import HTTPServer, BaseHTTPRequestHandler +from datetime import datetime, timezone + +class Handler(BaseHTTPRequestHandler): + def do_GET(self): + self.send_response(200) + self.send_header("Content-type", "text/plain") + self.send_header("X-Server-Time", datetime.now(timezone.utc).isoformat()) + self.end_headers() + self.wfile.write(b"OK\n") + + def do_HEAD(self): + self.send_response(200) + self.send_header("Content-type", "text/plain") + self.send_header("X-Server-Time", datetime.now(timezone.utc).isoformat()) + self.end_headers() + + def log_message(self, format, *args): + pass + +if __name__ == "__main__": + port = 8000 + server = HTTPServer(("", port), Handler) + print(f"Server laeuft auf Port {port}") + try: + server.serve_forever() + except KeyboardInterrupt: + pass