12 Commits

Author SHA1 Message Date
Hintay f6992d8789 fix(docker): upgrade persisted bundled nginx-ui.conf safely (#1696)
* test(self_check): add fixed-default bundled nginx-ui.conf fixture

* test(self_check): add unfixed-default bundled nginx-ui.conf fixture

* test(self_check): add customized and partial-fix fixtures

* feat(self_check): add error codes for bundled nginx-ui.conf upgrade

* feat(self_check): add CheckBundledNginxUIConf

* feat(self_check): add idempotent applyBundledConfPatch

* feat(self_check): add transactional patch-on-disk with backup restore

* feat(self_check): wire FixBundledNginxUIConf with verify+reload

* feat(self_check): register bundled nginx-ui.conf WS-fix task

* test(docker): add init-config bats fixtures

* feat(docker): hash-whitelist sync for bundled nginx-ui.conf

* feat(docker): seed nginx-ui.conf known-hashes list

* chore(docker): add maintainer script for nginx-ui.conf hash list

* ci(docker): add bats + hash-consistency workflow for init-config.sh

* feat(docker): ship nginx-ui.conf known-hashes inside the image

* feat(self-check): banner button shows Fix when all failures are fixable

* docs: add docker websocket fix guide (en)

* docs: add docker websocket fix guide (zh_CN, zh_TW)

* docs: link docker-websocket-fix page in all locale sidebars

* docs(readme): link docker websocket fix guide

* docs(readme): link docker websocket fix guide (translations)

* fix(self_check): WS-fix check independent of NGINX_UI_IGNORE_DOCKER_SOCKET

* fix(docker): respect bundled nginx host mode

Keep bundled nginx-ui.conf self-checks aligned with Docker host mode and prevent config sync failures from blocking startup.

* fix(docker): tighten bundled conf review fixes

Co-authored-by: Jacky <me@jackyu.cn>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Jacky <me@jackyu.cn>
2026-05-24 09:48:19 +08:00
Hintay 054295adac fix(docker): preserve forwarded proto/host in container nginx
When the official docker image is fronted by another reverse proxy that
terminates TLS, the container's inner nginx overwrote X-Forwarded-Proto
with its own $scheme (= http, because it listens on plain 80), breaking
CheckWebSocketOrigin's same-origin check on https deployments behind
e.g. Cloudflare or a host nginx.
Trust the inbound X-Forwarded-Proto/Host when present; fall back to
$scheme/$http_host only on direct connections.
2026-05-21 01:52:50 +09:00
0xJacky 5fc038f2e9 fix(docker): inline nginx base image setup 2026-05-14 19:20:22 +08:00
0xJacky 57b6f982ec fix: preserve forwarded host for docker websocket checks 2026-04-20 23:39:22 +08:00
PeterWang-dev 7c21aa2377 fix(resources): remove trailing .conf in default nginx stream block
Fix #444
2024-07-22 01:59:22 +08:00
Jacky 4c74bc8619 feat: use env to predefine admin user #214 2024-05-06 23:50:32 +08:00
Jacky abc73bbf77 enhance(docker): recreate access.log and error.log as regular files 2024-05-05 19:19:46 +08:00
Jacky 070c0b4620 feat(docker): mkdir streams-enabled, streams-available 2024-05-05 17:18:56 +08:00
Jacky 9bd1507392 feat(docker): integrate s6-overlay 2024-05-05 13:10:30 +08:00
0xJacky 61613ee23d fix: nginx-ui may not start in docker #63 2023-01-11 11:20:08 +08:00
0xJacky fea0bc727f feat: online read access log and error log 2022-09-01 10:48:16 +08:00
0xJacky 9851fe8fca deploy via docker #20 2022-07-22 23:18:48 +08:00