Describe the bug
Etherpad cannot start in offline or air-gapped environments (e.g. behind a corporate firewall). Two root causes:
- The
packageManager field in package.json causes the package manager (via corepack) to attempt a network call to verify/update itself on startup. Without internet access, this fails and the container never starts.
- The settings
privacy.updateCheck, privacy.pluginCatalog, and updates.* in settings.json cannot be overridden via environment variables, making it impossible to disable outbound network calls without modifying settings.json inside the container image.
To Reproduce
- Deploy Etherpad in a Docker container with no outbound internet access (or behind a corporate firewall blocking package registry traffic).
- Start the container.
- Observe startup failure caused by the
packageManager resolution/update step.
To hit issue #2: attempt to disable update checks and plugin catalog lookups purely via environment variables — no documented mapping exists.
Expected behavior
- Etherpad should start successfully in offline/air-gapped environments without requiring internet access at startup.
- The settings
privacy.updateCheck, privacy.pluginCatalog, and updates.* should be configurable via environment variables (e.g. ETHERPAD_PRIVACY_UPDATE_CHECK=false) so operators can disable outbound calls without modifying files inside the container image.
Proposed fixes
- Remove (or make optional) the
packageManager entry in package.json to prevent forced network calls at startup.
- Add environment-variable mappings for
privacy.updateCheck, privacy.pluginCatalog, and updates.*.
Screenshots
N/A
Server (please complete the following information):
- Etherpad version: 3.2.0
- OS: RHEL 9
Desktop (please complete the following information):
N/A — issue occurs at server startup before any client interaction.
Smartphone (please complete the following information):
N/A
Additional context
This is a common pain point for enterprise and self-hosted deployments where security policies prohibit outbound connections from application containers. Both fixes are low-risk and would significantly improve offline/air-gapped deployment support.
Describe the bug
Etherpad cannot start in offline or air-gapped environments (e.g. behind a corporate firewall). Two root causes:
packageManagerfield inpackage.jsoncauses the package manager (viacorepack) to attempt a network call to verify/update itself on startup. Without internet access, this fails and the container never starts.privacy.updateCheck,privacy.pluginCatalog, andupdates.*insettings.jsoncannot be overridden via environment variables, making it impossible to disable outbound network calls without modifyingsettings.jsoninside the container image.To Reproduce
packageManagerresolution/update step.To hit issue #2: attempt to disable update checks and plugin catalog lookups purely via environment variables — no documented mapping exists.
Expected behavior
privacy.updateCheck,privacy.pluginCatalog, andupdates.*should be configurable via environment variables (e.g.ETHERPAD_PRIVACY_UPDATE_CHECK=false) so operators can disable outbound calls without modifying files inside the container image.Proposed fixes
packageManagerentry inpackage.jsonto prevent forced network calls at startup.privacy.updateCheck,privacy.pluginCatalog, andupdates.*.Screenshots
N/A
Server (please complete the following information):
Desktop (please complete the following information):
N/A — issue occurs at server startup before any client interaction.
Smartphone (please complete the following information):
N/A
Additional context
This is a common pain point for enterprise and self-hosted deployments where security policies prohibit outbound connections from application containers. Both fixes are low-risk and would significantly improve offline/air-gapped deployment support.