OnlyOffice documentserver image version 8.3 defaults to PLUGINS_ENABLED=true
OnlyOffice documentserver image version 8.3 defaults to PLUGINS_ENABLED=true. On every container start, the plugin manager downloads and installs updates for ~12 marketplace plugins (drawio, ocr, translator, youtube, zotero, speech, etc.), consuming ~84% of available memory during startup. A t3.small EB instance (4GB) or 4GB ECS task memory is insufficient; the startup spike causes OOMKilled errors that cascade into embedded Postgres connection failures (ECONNREFUSED 127.0.0.1:5432). The healthcheck endpoint returns false because the Postgres health check fails mid-OOM, marking the container unhealthy even though the crash is temporary. On Oct 24, this caused a production OnlyOffice service outage lasting 10 days undetected.
Disable the default plugin install in the ECS task definition by setting PLUGINS_ENABLED=false. The plugins are rarely updated; they can be managed separately if needed. Additionally, fix the healthcheck to only check that OnlyOffice itself responds, not the embedded Postgres: change the health check command from curl -fsS http://localhost/healthcheck | grep -q true (which requires a JSON response with true in the body) to a simpler endpoint or remove the Postgres check from the default health definition. For an ECS task definition, set "environment": [{"name": "PLUGINS_ENABLED", "value": "false"}] in the container definition. Update the health check to require exactly true in the HTTP response body (not just HTTP 200), since OnlyOffice can return 200 with false when Postgres is unavailable. Combine this with memory tuning: the t3.small 4GB task now uses 14–16% memory after startup, vs. the pre-crash baseline of 42% after 5 minutes.