feat: Add Docker build and deployment for Joplin Web App #2
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.
This PR introduces the capability to build the Joplin web client and deploy it both as a static site via GitHub Pages and as a Docker container image to the GitHub Container Registry (GHCR).
Key Changes:
.github/workflows/deploy-github-pages.yml):laurent22/joplin.packages/app-mobile/yarn web).Dockerfile.ghcr.io/${{ github.repository }}withlatestand date-based tags, supportinglinux/amd64andlinux/arm64.packages: writepermissions for GHCR push.Dockerfile:nginx:alpineas the final stage../pages/) into the Nginx web root.coop-coep.confNginx configuration file.coop-coep.conf:Cross-Origin-Opener-Policy: same-originandCross-Origin-Embedder-Policy: require-corpheaders. These are necessary to enablecrossOriginIsolated=truecontext, required for featureSharedArrayBuffer.README.md:ghcr.io/${{ github.repository }}:latest), running the container, and crucial configuration steps.Motivation:
The primary driver for this change is to enhance user privacy and control. By providing an official, easy-to-use Docker container for the Joplin web app, users are empowered to self-host the entire Joplin experience – both the server and the web client – within their own trusted website. This significantly reduces reliance on external services for accessing notes via a web browser and ensures that user data primarily transits systems they manage directly, offering a more private alternative to using centrally hosted web applications.
Usage:
Refer to the updated
README.mdfor detailed instructions on pulling and running the Docker image, including necessary reverse proxy and CORS configuration on the Joplin Server side.Testing:
For testing purposes, I've deployed the web-app here https://github.com/adamoutler/web-app/pkgs/container/web-app and it can be tested using