https only (R-1033, P1): controller v0.312.0 proven on Tester 1, demo-hp, demo-felhom (29 names); scripts/https_only_check.py; 01/13/poster facts; decision 246 (decided by CC unattended); R-1033 P1 narrowed; R-1041..R-1043
gates / gates (push) Successful in 6m34s

This commit is contained in:
2026-10-14 22:49:54 +02:00
parent 0144be8cdd
commit b7807c1198
17 changed files with 297 additions and 4 deletions
@@ -0,0 +1,11 @@
# AFTER 0.312.0 on demo-felhom 9201 — 2026-10-14T22:45:01+02:00
https felhom.demo-felhom.eu/?probe=1 HTTP/2 302 location: /login strict-transport-security: max-age=86400
http felhom.demo-felhom.eu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://felhom.demo-felhom.eu/?probe=1
https felhom.demo-felhom.eu/login?probe=1 HTTP/2 200 strict-transport-security: max-age=86400
http felhom.demo-felhom.eu/login?probe=1 HTTP/1.1 301 Moved Permanently location: https://felhom.demo-felhom.eu/login?probe=1
https files.demo-felhom.eu/?probe=1 HTTP/2 200 strict-transport-security: max-age=86400
http files.demo-felhom.eu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://files.demo-felhom.eu/?probe=1
https gist.demo-felhom.eu/?probe=1 HTTP/2 302 location: https://gist.demo-felhom.eu/-/all strict-transport-security: max-age=86400
http gist.demo-felhom.eu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://gist.demo-felhom.eu/?probe=1
https no-such-name-r1033.demo-felhom.eu/?probe=1 HTTP/2 404
http no-such-name-r1033.demo-felhom.eu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://no-such-name-r1033.demo-felhom.eu/?probe=1
@@ -0,0 +1,11 @@
# BEFORE 0.312.0 on demo-felhom 9201 — 2026-10-14T22:44:10+02:00
https felhom.demo-felhom.eu/?probe=1 HTTP/2 302 location: /login
http felhom.demo-felhom.eu/?probe=1 HTTP/1.1 302 Found location: /login
https felhom.demo-felhom.eu/login?probe=1 HTTP/2 200
http felhom.demo-felhom.eu/login?probe=1 HTTP/1.1 200 OK
https files.demo-felhom.eu/?probe=1 HTTP/2 200
http files.demo-felhom.eu/?probe=1 HTTP/1.1 200 OK
https gist.demo-felhom.eu/?probe=1 HTTP/2 302 location: https://gist.demo-felhom.eu/-/all
http gist.demo-felhom.eu/?probe=1 HTTP/1.1 302 Found location: https://gist.demo-felhom.eu/-/all
https no-such-name-r1033.demo-felhom.eu/?probe=1 HTTP/2 404
http no-such-name-r1033.demo-felhom.eu/?probe=1 HTTP/1.1 404 Not Found
@@ -0,0 +1,5 @@
gitea.dooplex.hu/admin/felhom-controller:0.311.0
gitea.dooplex.hu/admin/felhom-controller:0.312.0
gitea.dooplex.hu/admin/felhom-controller:0.312.0 Up 45 seconds (healthy)
2026/10/14 20:44:10 [INFO] [infra] wrote the forwarded-header clean-up → /opt/docker/stacks/traefik/dynamic/forwarded.yml (felhom-forwarded)
0
@@ -0,0 +1,15 @@
# AFTER 0.312.0 on demo-hp 9201 — 2026-10-14T22:43:47+02:00
https felhom.enkisfelhom.hu/?probe=1 HTTP/2 302 location: /login strict-transport-security: max-age=86400
http felhom.enkisfelhom.hu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://felhom.enkisfelhom.hu/?probe=1
https felhom.enkisfelhom.hu/login?probe=1 HTTP/2 200 strict-transport-security: max-age=86400
http felhom.enkisfelhom.hu/login?probe=1 HTTP/1.1 301 Moved Permanently location: https://felhom.enkisfelhom.hu/login?probe=1
https bookstack.enkisfelhom.hu/?probe=1 HTTP/2 404
http bookstack.enkisfelhom.hu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://bookstack.enkisfelhom.hu/?probe=1
https paperless.enkisfelhom.hu/?probe=1 HTTP/2 404
http paperless.enkisfelhom.hu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://paperless.enkisfelhom.hu/?probe=1
https no-such-name-r1033.enkisfelhom.hu/?probe=1 HTTP/2 404
http no-such-name-r1033.enkisfelhom.hu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://no-such-name-r1033.enkisfelhom.hu/?probe=1
https papir.enkisfelhom.hu HTTP/2 302 location: /accounts/login/?next=/%3Fprobe%3D1 strict-transport-security: max-age=86400
http papir.enkisfelhom.hu HTTP/1.1 301 Moved Permanently location: https://papir.enkisfelhom.hu/?probe=1
https books.enkisfelhom.hu HTTP/2 302 location: /login?next=%2F%3Fprobe%3D1 strict-transport-security: max-age=86400
http books.enkisfelhom.hu HTTP/1.1 301 Moved Permanently location: https://books.enkisfelhom.hu/?probe=1
@@ -0,0 +1,11 @@
# BEFORE 0.312.0 on demo-hp 9201 — 2026-10-14T22:42:57+02:00
https felhom.enkisfelhom.hu/?probe=1 HTTP/2 302 location: /login
http felhom.enkisfelhom.hu/?probe=1 HTTP/1.1 302 Found location: /login
https felhom.enkisfelhom.hu/login?probe=1 HTTP/2 200
http felhom.enkisfelhom.hu/login?probe=1 HTTP/1.1 200 OK
https bookstack.enkisfelhom.hu/?probe=1 HTTP/2 404
http bookstack.enkisfelhom.hu/?probe=1 HTTP/1.1 404 Not Found
https paperless.enkisfelhom.hu/?probe=1 HTTP/2 404
http paperless.enkisfelhom.hu/?probe=1 HTTP/1.1 404 Not Found
https no-such-name-r1033.enkisfelhom.hu/?probe=1 HTTP/2 404
http no-such-name-r1033.enkisfelhom.hu/?probe=1 HTTP/1.1 404 Not Found
@@ -0,0 +1,5 @@
gitea.dooplex.hu/admin/felhom-controller:0.311.0
gitea.dooplex.hu/admin/felhom-controller:0.312.0
gitea.dooplex.hu/admin/felhom-controller:0.312.0 Up 45 seconds (healthy)
2026/10/14 20:43:02 infra.go:234: [INFO] [infra] wrote the forwarded-header clean-up → /opt/docker/stacks/traefik/dynamic/forwarded.yml (felhom-forwarded)
0
@@ -0,0 +1,6 @@
# Sonarr sign-in path after 0.312.0 — each hop (curl -L, GET only) 2026-10-14T22:42:33+02:00
HTTP/2 302
location: http://sonarr.enkicsifelhom.hu/login?returnUrl=%2F
HTTP/2 200
-- the login form's action (where the password would be POSTed):
(a relative action posts to the page's own origin — https after the redirect; with HSTS the browser upgrades the http hop itself, without sending it)
@@ -0,0 +1,13 @@
# AFTER 0.312.0 on Tester 1 — 2026-10-14T22:42:21+02:00
https felhom.enkicsifelhom.hu/?probe=1 HTTP/2 302 location: /login strict-transport-security: max-age=86400
http felhom.enkicsifelhom.hu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://felhom.enkicsifelhom.hu/?probe=1
https felhom.enkicsifelhom.hu/login?probe=1 HTTP/2 200 strict-transport-security: max-age=86400
http felhom.enkicsifelhom.hu/login?probe=1 HTTP/1.1 301 Moved Permanently location: https://felhom.enkicsifelhom.hu/login?probe=1
https sonarr.enkicsifelhom.hu/?probe=1 HTTP/2 302 location: http://sonarr.enkicsifelhom.hu/login?returnUrl=%2F%3Fprobe%3D1 strict-transport-security: max-age=86400
http sonarr.enkicsifelhom.hu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://sonarr.enkicsifelhom.hu/?probe=1
https torrent.enkicsifelhom.hu/?probe=1 HTTP/2 200 strict-transport-security: max-age=86400
http torrent.enkicsifelhom.hu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://torrent.enkicsifelhom.hu/?probe=1
https filebrowser.enkicsifelhom.hu/?probe=1 HTTP/2 404
http filebrowser.enkicsifelhom.hu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://filebrowser.enkicsifelhom.hu/?probe=1
https no-such-name-r1033.enkicsifelhom.hu/?probe=1 HTTP/2 404
http no-such-name-r1033.enkicsifelhom.hu/?probe=1 HTTP/1.1 301 Moved Permanently location: https://no-such-name-r1033.enkicsifelhom.hu/?probe=1
@@ -0,0 +1,13 @@
# BEFORE 0.312.0 on Tester 1 — 2026-10-14T22:41:13+02:00
https felhom.enkicsifelhom.hu/?probe=1 HTTP/2 302 location: /login
http felhom.enkicsifelhom.hu/?probe=1 HTTP/1.1 302 Found location: /login
https felhom.enkicsifelhom.hu/login?probe=1 HTTP/2 200
http felhom.enkicsifelhom.hu/login?probe=1 HTTP/1.1 200 OK
https sonarr.enkicsifelhom.hu/?probe=1 HTTP/2 302 location: http://sonarr.enkicsifelhom.hu/login?returnUrl=%2F%3Fprobe%3D1
http sonarr.enkicsifelhom.hu/?probe=1 HTTP/1.1 302 Found location: http://sonarr.enkicsifelhom.hu/login?returnUrl=%2F%3Fprobe%3D1
https torrent.enkicsifelhom.hu/?probe=1 HTTP/2 200
http torrent.enkicsifelhom.hu/?probe=1 HTTP/1.1 200 OK
https filebrowser.enkicsifelhom.hu/?probe=1 HTTP/2 404
http filebrowser.enkicsifelhom.hu/?probe=1 HTTP/1.1 404 Not Found
https no-such-name-r1033.enkicsifelhom.hu/?probe=1 HTTP/2 404
http no-such-name-r1033.enkicsifelhom.hu/?probe=1 HTTP/1.1 404 Not Found
@@ -0,0 +1,38 @@
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LC_NUMERIC = (unset),
LC_COLLATE = (unset),
LC_TIME = (unset),
LC_MESSAGES = (unset),
LC_MONETARY = (unset),
LC_ADDRESS = (unset),
LC_IDENTIFICATION = (unset),
LC_MEASUREMENT = (unset),
LC_PAPER = (unset),
LC_TELEPHONE = (unset),
LC_NAME = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
gitea.dooplex.hu/admin/felhom-controller:0.312.0
gitea.dooplex.hu/admin/felhom-controller:0.312.0 Up 45 seconds (healthy)
2026/10/14 20:41:28 [INFO] [infra] wrote the forwarded-header clean-up → /opt/docker/stacks/traefik/dynamic/forwarded.yml (felhom-forwarded)
2026/10/14 20:41:28 [INFO] [infra] connected felhom-controller to traefik-public
# Traefik dynamic config — the chain every websecure request passes: https only (R-1033), then the forwarded-header
# clean-up + HSTS. Managed by felhom-controller.
# WARNING: auto-generated at base-infra bring-up. Manual edits are overwritten. traefik.yml names felhom-forwarded on its
# websecure entrypoint, so a missing file would break every route: it is written before traefik.yml.
# An empty value REMOVES the header (traefik headers middleware).
http:
middlewares:
felhom-forwarded:
chain:
middlewares:
- felhom-https-only
- felhom-forwarded-headers
felhom-https-only:
redirectScheme:
scheme: https
@@ -0,0 +1,34 @@
control NEGATIVE (a stub answering 200 over plain http): convicted, as it must (200 -)
== tester-1 (enkicsifelhom.hu): 13 public name(s)
OK control POSITIVE http://felhom.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://felhom.enkicsifelhom.hu/r1033-check?q=1
OK http://files.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://files.enkicsifelhom.hu/r1033-check?q=1
OK http://media.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://media.enkicsifelhom.hu/r1033-check?q=1
OK http://no-such-name-r1033.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://no-such-name-r1033.enkicsifelhom.hu/r1033-check?q=1
OK http://paperless.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://paperless.enkicsifelhom.hu/r1033-check?q=1
OK http://paste.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://paste.enkicsifelhom.hu/r1033-check?q=1
OK http://plex.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://plex.enkicsifelhom.hu/r1033-check?q=1
OK http://prowlarr.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://prowlarr.enkicsifelhom.hu/r1033-check?q=1
OK http://radarr.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://radarr.enkicsifelhom.hu/r1033-check?q=1
OK http://sonarr.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://sonarr.enkicsifelhom.hu/r1033-check?q=1
OK http://torrent.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://torrent.enkicsifelhom.hu/r1033-check?q=1
OK http://transmission.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://transmission.enkicsifelhom.hu/r1033-check?q=1
OK http://wiki.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://wiki.enkicsifelhom.hu/r1033-check?q=1
== demo-hp (enkisfelhom.hu): 12 public name(s)
OK http://books.enkisfelhom.hu/r1033-check?q=1 -> 301 https://books.enkisfelhom.hu/r1033-check?q=1
OK http://docs.enkisfelhom.hu/r1033-check?q=1 -> 301 https://docs.enkisfelhom.hu/r1033-check?q=1
OK http://felhom.enkisfelhom.hu/r1033-check?q=1 -> 301 https://felhom.enkisfelhom.hu/r1033-check?q=1
OK http://files.enkisfelhom.hu/r1033-check?q=1 -> 301 https://files.enkisfelhom.hu/r1033-check?q=1
OK http://gist.enkisfelhom.hu/r1033-check?q=1 -> 301 https://gist.enkisfelhom.hu/r1033-check?q=1
OK http://ha.enkisfelhom.hu/r1033-check?q=1 -> 301 https://ha.enkisfelhom.hu/r1033-check?q=1
OK http://no-such-name-r1033.enkisfelhom.hu/r1033-check?q=1 -> 301 https://no-such-name-r1033.enkisfelhom.hu/r1033-check?q=1
OK http://papir.enkisfelhom.hu/r1033-check?q=1 -> 301 https://papir.enkisfelhom.hu/r1033-check?q=1
OK http://paste.enkisfelhom.hu/r1033-check?q=1 -> 301 https://paste.enkisfelhom.hu/r1033-check?q=1
OK http://pdf.enkisfelhom.hu/r1033-check?q=1 -> 301 https://pdf.enkisfelhom.hu/r1033-check?q=1
OK http://travel.enkisfelhom.hu/r1033-check?q=1 -> 301 https://travel.enkisfelhom.hu/r1033-check?q=1
OK http://wiki.enkisfelhom.hu/r1033-check?q=1 -> 301 https://wiki.enkisfelhom.hu/r1033-check?q=1
== demo-felhom (demo-felhom.eu): 4 public name(s)
OK http://felhom.demo-felhom.eu/r1033-check?q=1 -> 301 https://felhom.demo-felhom.eu/r1033-check?q=1
OK http://files.demo-felhom.eu/r1033-check?q=1 -> 301 https://files.demo-felhom.eu/r1033-check?q=1
OK http://gist.demo-felhom.eu/r1033-check?q=1 -> 301 https://gist.demo-felhom.eu/r1033-check?q=1
OK http://no-such-name-r1033.demo-felhom.eu/r1033-check?q=1 -> 301 https://no-such-name-r1033.demo-felhom.eu/r1033-check?q=1
== every public name redirects http -> https