|
1 | 1 | # 📚 Calibre-Web-Automated-Book-Downloader |
2 | 2 |
|
3 | | - |
| 3 | +<img src="src/frontend/public/logo.png" alt="Calibre-Web Automated Book Downloader" width="200"> |
4 | 4 |
|
5 | 5 | An intuitive web interface for searching and requesting book downloads, designed to work seamlessly with [Calibre-Web-Automated](https://github.com/crocodilestick/Calibre-Web-Automated). This project streamlines the process of downloading books and preparing them for integration into your Calibre library. |
6 | 6 |
|
@@ -65,6 +65,7 @@ An intuitive web interface for searching and requesting book downloads, designed |
65 | 65 | | `LOG_LEVEL` | Log level to use | `info` | |
66 | 66 | | `SESSION_COOKIE_SECURE` | Secure cookie enforcement - Use for HTTPS connections only | `false` | |
67 | 67 | | `CALIBRE_WEB_URL` | Custom WebUI library link | None | |
| 68 | +| `BYPASS_WARMUP_ON_CONNECT` | Warm up Cloudflare bypasser when first client connects | `true` | |
68 | 69 |
|
69 | 70 | If you wish to enable authentication, you must set `CWA_DB_PATH` to point to Calibre-Web's `app.db`, in order to match the username and password. |
70 | 71 |
|
@@ -132,9 +133,11 @@ If disabling the cloudflare bypass, you will be using alternative download hosts |
132 | 133 | | `AA_ADDITIONAL_URLS` | Proxy URLs for AA (, separated) | `` | |
133 | 134 | | `HTTP_PROXY` | HTTP proxy URL | `` | |
134 | 135 | | `HTTPS_PROXY` | HTTPS proxy URL | `` | |
135 | | -| `CUSTOM_DNS` | Custom DNS IP | `` | |
| 136 | +| `CUSTOM_DNS` | DNS configuration | `auto` | |
136 | 137 | | `USE_DOH` | Use DNS over HTTPS | `false` | |
137 | 138 |
|
| 139 | +**Proxy Configuration** |
| 140 | + |
138 | 141 | For proxy configuration, you can specify URLs in the following format: |
139 | 142 | ```bash |
140 | 143 | # Basic proxy |
|
146 | 149 | HTTPS_PROXY=http://username: [email protected]:8080 |
147 | 150 | ``` |
148 | 151 |
|
| 152 | +**DNS Configuration** |
149 | 153 |
|
150 | | -The `CUSTOM_DNS` setting supports two formats: |
| 154 | +The `CUSTOM_DNS` setting controls how DNS resolution works. By default, it is set to `auto` which provides automatic failover for reliable connectivity. |
151 | 155 |
|
152 | | -1. **Custom DNS Servers**: A comma-separated list of DNS server IP addresses |
153 | | - - Example: `127.0.0.53,127.0.1.53` (useful for PiHole) |
154 | | - - Supports both IPv4 and IPv6 addresses in the same string |
| 156 | +**Auto Mode (Default)** |
| 157 | + |
| 158 | +When `CUSTOM_DNS=auto`, the application starts with your system's default DNS. If DNS resolution fails, it automatically rotates through alternative providers using DNS over HTTPS (DoH): |
| 159 | + |
| 160 | +1. System DNS (initial) |
| 161 | +2. Cloudflare (1.1.1.1) |
| 162 | +3. Google (8.8.8.8) |
| 163 | +4. Quad9 (9.9.9.9) |
| 164 | +5. OpenDNS (208.67.222.222) |
| 165 | + |
| 166 | +This automatic rotation helps bypass ISP-level blocks and DNS issues without any manual configuration. |
155 | 167 |
|
156 | | -2. **Preset DNS Providers**: Use one of these predefined options: |
157 | | - - `google` - Google DNS |
158 | | - - `quad9` - Quad9 DNS |
159 | | - - `cloudflare` - Cloudflare DNS |
160 | | - - `opendns` - OpenDNS |
| 168 | +**Manual DNS Configuration** |
161 | 169 |
|
162 | | -For users experiencing ISP-level website blocks (such as Virgin Media in the UK), using alternative DNS providers like Cloudflare may help bypass these restrictions |
| 170 | +If you prefer to use a specific DNS configuration, you can override the auto behavior: |
163 | 171 |
|
164 | | -If a `CUSTOM_DNS` is specified from the preset providers, you can also set a `USE_DOH=true` to force using DNS over HTTPS, |
165 | | -which might also help in certain network situations. Note that only `google`, `quad9`, `cloudflare` and `opendns` are |
166 | | -supported for now, and any other value in `CUSTOM_DNS` will make the `USE_DOH` flag ignored. |
| 172 | +1. **Preset DNS Providers**: Use one of these predefined options: |
| 173 | + - `google` - Google DNS (8.8.8.8, 8.8.4.4) |
| 174 | + - `quad9` - Quad9 DNS (9.9.9.9, 149.112.112.112) |
| 175 | + - `cloudflare` - Cloudflare DNS (1.1.1.1, 1.0.0.1) |
| 176 | + - `opendns` - OpenDNS (208.67.222.222, 208.67.220.220) |
167 | 177 |
|
168 | | -Try something like this : |
| 178 | +2. **Custom DNS Servers**: A comma-separated list of DNS server IP addresses |
| 179 | + - Example: `127.0.0.53,127.0.1.53` (useful for PiHole) |
| 180 | + - Supports both IPv4 and IPv6 addresses |
| 181 | + |
| 182 | +When using preset providers, you can optionally enable DNS over HTTPS with `USE_DOH=true`: |
169 | 183 | ```bash |
170 | 184 | CUSTOM_DNS=cloudflare |
171 | 185 | USE_DOH=true |
172 | 186 | ``` |
173 | 187 |
|
| 188 | +Note: When using custom IP addresses, the `USE_DOH` flag is ignored since DoH requires a known provider endpoint. |
| 189 | + |
174 | 190 | #### Custom configuration |
175 | 191 |
|
176 | 192 | | Variable | Description | Default Value | |
@@ -235,7 +251,6 @@ This variant allows the application to use an external service to bypass Cloudfl |
235 | 251 |
|
236 | 252 | - When enabled, all requests that require Cloudflare bypass are sent to your external resolver service. |
237 | 253 | - The application communicates with the resolver using its API. |
238 | | -- This approach can improve reliability and performance, especially if your external resolver is optimized or shared across multiple applications. |
239 | 254 |
|
240 | 255 | #### Configuration |
241 | 256 |
|
@@ -263,11 +278,16 @@ This feature follows the same configuration of the built-in Cloudflare bypasser, |
263 | 278 | #### Compatibility: |
264 | 279 | This feature is designed to work with any resolver that implements the `FlareSolverr` API schema, including `ByParr` and similar projects. |
265 | 280 |
|
266 | | -#### Benefits: |
| 281 | +#### Internal vs External Bypasser |
| 282 | + |
| 283 | +The **internal bypasser** (default) is custom-designed for this application's specific needs. It handles session management, cookie persistence, and retry logic optimized for book downloading workflows. For most users, this provides the most reliable experience out of the box. |
| 284 | + |
| 285 | +The **external bypasser** is better suited if you: |
| 286 | +- Already run FlareSolverr/ByParr for other services and want to consolidate |
| 287 | +- Need to share bypass infrastructure across multiple applications |
| 288 | +- Want to offload browser automation to a dedicated, more powerful container |
267 | 289 |
|
268 | | -- Centralizes Cloudflare bypass logic for easier maintenance. |
269 | | -- Can leverage more powerful or distributed resolver infrastructure. |
270 | | -- Reduces load on the main application container. |
| 290 | +If you're unsure which to use, start with the default internal bypasser. |
271 | 291 |
|
272 | 292 | ## 🏗️ Architecture |
273 | 293 |
|
|
0 commit comments