diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4fc31ec..e9da639 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,11 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) · versioned wi
---
+## [1.20.43] — 2026-08-19
+
+### Added
+- **The web container now has configurable memory protection.** Compose defaults to an 8 GB limit with a 2 GB reservation; `APP_MEM_LIMIT` and `APP_MEM_RESERVATION` can override those values for heavier workloads.
+
## [1.20.42] — 2026-08-19
### Changed
diff --git a/VERSION b/VERSION
index 61d66ca..ce07dea 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.20.42
+1.20.43
diff --git a/docker-compose.yml b/docker-compose.yml
index d65cb2f..b703ef2 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -7,6 +7,12 @@ services:
container_name: tts-voice-creator-clone-and-design-2
restart: unless-stopped
+ # Keep a runaway OCR/import/generation request from consuming all host RAM.
+ # Override these per machine when large PDF jobs need more headroom:
+ # APP_MEM_LIMIT=12g APP_MEM_RESERVATION=2g docker compose up -d
+ mem_limit: "${APP_MEM_LIMIT:-8g}"
+ mem_reservation: "${APP_MEM_RESERVATION:-2g}"
+
ports:
- "7890:7890"
diff --git a/static/index.html b/static/index.html
index 3360467..cf584f1 100644
--- a/static/index.html
+++ b/static/index.html
@@ -10,7 +10,7 @@
-
+
@@ -27,7 +27,7 @@
-
+
@@ -378,7 +378,7 @@ window.toggleNavTree = function(treeId, chevronId) {
-
+