Repository navigation
feat(docker): reliable HTTP 8080 and opt-in local/public HTTPS with full smoke tests - #294
Open
ThisIs-Developer wants to merge 9 commits into
Open
ThisIs-Developer wants to merge 9 commits into
ThisIs-Developer wants to merge 9 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Deploying markdownviewer with
|
| Latest commit: |
a53f742
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://00645c8b.markdownviewer.pages.dev |
| Branch Preview URL: | https://feature-docker-http-https-re.markdownviewer.pages.dev |
ThisIs-Developer
marked this pull request as ready for review
November 14, 2026 16:47
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docker HTTP + HTTPS reliability upgrade
Maintains the merged #292 HTTP fix and existing default http://localhost:8080, while adding optional local HTTPS (
https://localhost:8443) and public HTTPS (an ownedMDV_DOMAINhostname behind Caddy).Changes
docker-compose.ymland the internal Nginx port 80 are unchanged. Users can still map alternative host ports such as8719:80.docker-compose.https.ymlfor localhost with Caddy's private CA;docker-compose.https-public.ymlfor publicly trusted ACME certificates, automatic renewal and HTTPS redirection. The application is exposed only to the private Docker network in HTTPS modes.browser-drop-source.js,native-markdown-source.js,preview-worker.js,sample.md, and the linked workspace guide. Correct Service Worker critical precache..mjsas JavaScript, 404 for missing script/style assets instead of returning an HTML fallback, and revalidate mutable JS/CSS/MJS. Keep inherited CSP and security headers for static responses.docker/nginx.conf; update the existing Docker wiki for HTTPS setup, trust, and existing limitations.Verified in CI
Docker workflow #1212 — SUCCESS
Security remediation: Docker Scout report (2026-11-14)
A maintainer-provided Docker Scout SARIF scan of the existing
ghcr.io/thisis-developer/markdown-viewer:latestimage found 22 OS-package CVEs (1 Critical, 5 High, 6 Medium, 5 Low, 5 Unspecified) inzlib,musl,libxslt,libxml2, andopenssl. The report lists vendor fixes for 11, and no fixed version for the 11libxml2findings.Mitigation added to this PR: Switch the app image to the official
nginx:1.31.8-alpine3.24-slim, omit unnecessary packaged modules and their libraries, runapk upgrade --no-cacheto install available Alpine security updates, and build the audited image with--pull. All Markdown Viewer assets, Nginx settings, and HTTP/HTTPS behavior remain subject to the existing end-to-end tests.Fresh build evidence: GitHub Actions Docker workflow #1214 — SUCCESS. Complete Trivy JSON scan artifact reports 0 detected CVEs for the rebuilt
markdown-viewer:security-auditimage (Alpine 3.24.4, scan timestamp 2026-11-14 16:55 UTC). Trivy's release gate for fixable Critical/High CVEs passed. The 257 passing unit tests, 4 browser smoke tests, and HTTP+HTTPS image integration tests also passed. Windows Native Runtime Demo workflow passed.Important limits: Trivy and Docker Scout use different advisory databases and may not agree exactly. The new image was not independently rescanned with Docker Scout, and the public
latesttag still points to the earlier build until this PR is merged and published. The Caddy proxy is a separate image not covered by the Markdown Viewer image result. Zero known CVEs in one scan does not mean zero security risk, and new CVEs can emerge.Independent Docker Scout verification: 6 reported findings remaining
After the successful Trivy scan, the maintainer rebuilt PR #294 as
markdown-viewer:security-teston linux/amd64 and randocker scout cves. Docker Scout v1.28.0 reported 6 CVEs across 2 packages (0 Critical, 1 High, 0 Medium, 0 Low, 5 Unspecified), image digest prefix241b1048f4a7, 26 packages, 7.0 MB. Do not describe the patched image as CVE-free across scanners.1.2.6-r3: Docker Scout flags it as High and suggests1.2.6-r6. However the Alpine v3.24 OSV security advisory explicitly lists1.2.6-r3as fixed, whereas1.2.6-r6is the package on Alpine edge. This is a probable cross-branch false positive. Sources: Alpine OSV and Alpine v3.24 package listing.openssl 3.5.9-r0: CVE-2026-95692, CVE-2026-95691, CVE-2026-88823, CVE-2026-88822, and CVE-2026-107496. Alpine v3.24 currently lists3.5.9-r0, while3.5.9-r1is available in edge. OpenSSL published its upstream security advisory on November 10, 2026. The Alpine stable branch has not yet published this release update; these remain outstanding vendor-package findings. Sources: Alpine v3.24 openssl, edge openssl, and OpenSSL advisory timeline.apk upgrade --no-cacheand the official slim stable base so future stable security backports are picked up on clean rebuild. Do not install edge packages into stable, falsify installed package metadata, or suppress actual OpenSSL findings to reach a misleading zero count. Rebuild and retest once Alpine v3.24 publishes a corrected OpenSSL package; evaluate exposure separately for the Docker HTTP-only Nginx and separately for the optional Caddy TLS proxy.Status: The new Docker image passed HTTP/HTTPS browser tests and Trivy CI, but Docker Scout is not clean, and a stable vendor OpenSSL update has not yet been verified. Keep this distinction visible during review.
Deployment boundaries and outstanding validation
example.comin CI.curl --cacertcheck verifies the certificate chain.mainandghcr.io/...:latestremain unchanged until this PR is merged and the normal publishing workflow runs.Related to #290; does not reopen/change the already merged minimal PR #292.