You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+26-15Lines changed: 26 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -100,6 +100,16 @@ This tells CWA to avoid enabling WAL on the Calibre `metadata.db` and the `app.d
100
100
- On Docker Desktop (Windows/macOS), the container runs on a LinuxKit/WSL2 VM and host-mounted paths may not propagate `inotify` events reliably. CWA auto-detects Docker Desktop at startup and prefers the same polling watcher for reliability.
101
101
- Advanced: You can also force polling regardless of share mode by setting `CWA_WATCH_MODE=poll`.
- CWA uses Werkzeug's ProxyFix middleware to properly handle `X-Forwarded-For`, `X-Forwarded-Proto`, and other proxy headers.
106
+
- By default, it trusts **1 proxy** in the chain. If you have multiple proxies (e.g., Cloudflare Tunnel → nginx → CWA), set:
107
+
108
+
-`TRUSTED_PROXY_COUNT=2` (or the total number of proxies in your chain)
109
+
110
+
-**Why this matters**: Session protection validates requests based on the client's IP address. If ProxyFix doesn't trust enough proxies, it may see different IPs between requests, causing "Session protection triggered" warnings and forcing re-login.
111
+
-**Troubleshooting**: If you see frequent session protection warnings in logs, check your proxy chain depth and adjust this variable accordingly.
112
+
103
113
## **_Features:_**
104
114
105
115
### CWA supports all Stock CW Features:
@@ -184,11 +194,12 @@ This tells CWA to avoid enabling WAL on the Calibre `metadata.db` and the `app.d
184
194
-[Hardcover](https://hardcover.app/) is also currently in the process of being added to CWA as a Metadata Provider
185
195
186
196
#### **KOReader Syncing (KOSync)** 📖⚡
187
-
- CWA now includes built-in KOReader syncing functionality, providing a modern alternative to traditional KOReader sync servers
188
-
-**Universal KOReader Syncer:** Works across all KOReader-compatible devices, storing sync data in a readable format for future CWA features
189
-
-**Modern Authentication:** Uses RFC 7617 compliant header-based authentication instead of legacy MD5 hashing for enhanced security
190
-
-**CWA Integration:** Leverages your existing CWA user accounts and permissions - no additional server setup required
191
-
-**Easy Installation:** Plugin and setup instructions are available directly from your CWA instance at `/kosync`
197
+
Built-in KOReader progress sync with automatic book identification:
198
+
-**Book Identification:** Auto-generates KOReader-compatible partial MD5 checksums for all books
-**Plugin Available:** Download from `/kosync` endpoint on your CWA instance
192
203
193
204
#### **Enhanced OAuth 2.0/OIDC Authentication** 🔐
194
205
-**Auto-Discovery:** Automatic endpoint configuration via OIDC metadata URLs for seamless setup with providers like Keycloak, Authentik, Google, and Azure AD
@@ -304,7 +315,7 @@ services:
304
315
- CWA_PORT_OVERRIDE=8083
305
316
volumes:
306
317
# CW users migrating should stop their existing CW instance, make a copy of the config folder, and bind that here to carry over all of their user settings ect.
307
-
- /path/to/config/folder:/config
318
+
- /path/to/config/folder:/config
308
319
# This is an ingest dir, NOT a library one. Anything added here will be automatically added to your library according to the settings you have configured in CWA Settings page. All files placed here are REMOVED AFTER PROCESSING
# If you don't have an existing library, CWA will automatically create one at the bind provided here
@@ -395,23 +406,23 @@ CWA now includes built-in KOReader syncing functionality, allowing you to sync y
395
406
396
407
## Local Development Setup
397
408
398
-
1.**Build the image**
409
+
1.**Build the image**
399
410
Edit and run [`build.sh`](https://github.com/crocodilestick/Calibre-Web-Automated/blob/main/build.sh) to build a local Docker image of Calibre-Web-Automated. See the script itself for usage details.
-`volumes mounts` → paths for config, ingest, library, plugins
416
+
406
417
To have the app refresh dynamically in response to code changes, see comments in the [`docker-compose.yml.dev`](https://github.com/crocodilestick/Calibre-Web-Automated/blob/main/docker-compose.yml.dev)** for details and examples on "live-edit" mounts.
407
418
408
-
3.**Start the service**
419
+
3.**Start the service**
409
420
```
410
421
$ docker compose -f docker-compose.yml.dev up -d
411
422
```
412
423
413
-
4.**Log in & configure**
414
-
- Sign in with the [default admin login](https://github.com/crocodilestick/Calibre-Web-Automated?tab=readme-ov-file#default-admin-login)
424
+
4.**Log in & configure**
425
+
- Sign in with the [default admin login](https://github.com/crocodilestick/Calibre-Web-Automated?tab=readme-ov-file#default-admin-login)
0 commit comments