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
description: "Learn how to set up automatic updates for html2rss-web using watchtower. Keep your Docker containers updated automatically with the latest features."
3
+
description: "Use Watchtower to keep html2rss-web updated within the Docker tag you selected."
4
4
sidebar:
5
5
order: 10
6
6
---
@@ -9,7 +9,9 @@ import { Code } from "@astrojs/starlight/components";
html2rss-web ships on Docker Hub, so you can launch this self-hosted service wherever Docker runs. Start with the official [`docker-compose.yml`](https://github.com/html2rss/html2rss-web/blob/main/docker-compose.yml) as your baseline, and treat the [Getting Started guide](/web-application/getting-started) as the required first proof that your instance can already serve included feeds locally.
10
+
html2rss-web ships on Docker Hub. Start with the [Getting Started guide](/web-application/getting-started), then add the production pieces below.
11
11
12
-
If you have not yet created a local instance, complete the [Getting Started guide](/web-application/getting-started) first. It walks through the one-time project directory setup, creating a minimal compose file, and confirming the application locally, which gives you the right baseline before exposing a self-hosted instance publicly.
13
-
14
-
Already running html2rss-web on your workstation? The sections below focus on what changes when you take that setup to production.
12
+
The examples use `html2rss/web:1`, the recommended major-version tag. Pin an exact release if your deployment process requires it.
15
13
16
14
## Choose Your Production Scope First
17
15
@@ -40,54 +38,37 @@ If you plan to enable automatic feed generation, also prepare:
40
38
41
39
### Why a Reverse Proxy?
42
40
43
-
A reverse proxy accepts public HTTPS traffic, terminates TLS, and forwards requests to html2rss-web running on your private network.
41
+
A reverse proxy terminates public HTTPS trafficand forwards requests to html2rss-web on your private Docker network.
44
42
45
43
### Option A: Caddy (Automatic HTTPS)
46
44
47
-
Caddy handles certificates and redirects with almost no configuration.
45
+
Caddy handles certificates and redirects.
48
46
49
47
<DockerComposeSnippetvariant="productionCaddy" />
50
48
51
-
- Create a `.env` file beside your compose file with the following variables:
52
-
53
-
<Code
54
-
code={`
55
-
# Required for reverse proxy and application
56
-
CADDY_HOST=yourdomain.com
57
-
58
-
# Generate with: openssl rand -hex 32
59
-
60
-
HTML2RSS_SECRET_KEY=
61
-
62
-
# Required by the documented Compose stack
49
+
Create a `.env` file beside your compose file:
63
50
64
-
HEALTH_CHECK_TOKEN=
65
-
66
-
# Required by the default compose stack
67
-
68
-
BROWSERLESS_IO_API_TOKEN=
69
-
70
-
# Recommended for production traceability (compose defaults to local)
51
+
<Code
52
+
code={`
53
+
CADDY_HOST=yourdomain.com
54
+
HTML2RSS_SECRET_KEY=<openssl rand -hex 32>
55
+
HEALTH_CHECK_TOKEN=<strong bearer token>
56
+
BROWSERLESS_IO_API_TOKEN=<browserless token>
57
+
`}
58
+
lang="dotenv"
59
+
/>
71
60
72
-
BUILD_TAG=
61
+
Before starting the stack:
73
62
74
-
# Recommended for production traceability (compose defaults to local)
63
+
- Set `CADDY_HOST` for your domain.
64
+
- Generate `HTML2RSS_SECRET_KEY` with `openssl rand -hex 32`.
65
+
- Set a strong `HEALTH_CHECK_TOKEN` when you use authenticated `GET /api/v1/health`; liveness/readiness probes can use `/api/v1/health/live` and `/api/v1/health/ready` without it.
66
+
- Leave `BUILD_TAG` and `GIT_SHA` unset unless you intentionally override image metadata in logs.
67
+
- Adjust optional knobs such as `AUTO_SOURCE_ENABLED` and `SENTRY_DSN` as needed; refer to the [environment reference](/web-application/reference/env-variables) for details.
75
68
76
-
GIT_SHA=
69
+
After `docker compose up -d`, run `docker compose logs caddy --tail 20`; look for `certificate obtained`.
77
70
78
-
`}
79
-
lang="dotenv"
80
-
/>
81
-
82
-
- Update your `.env` before starting the stack:
83
-
- Set `CADDY_HOST` for your domain.
84
-
- Generate a production secret (`openssl rand -hex 32`) and assign it to `HTML2RSS_SECRET_KEY`.
85
-
- Set a strong `HEALTH_CHECK_TOKEN` when you use authenticated `GET /api/v1/health`; liveness/readiness probes can use `/api/v1/health/live` and `/api/v1/health/ready` without it.
86
-
- Set `BUILD_TAG` and `GIT_SHA` to real release metadata for production.
87
-
- Adjust optional knobs such as `AUTO_SOURCE_ENABLED` and `SENTRY_DSN` as needed; refer to the [environment reference](/web-application/reference/env-variables) for details.
88
-
- After `docker compose up -d`, run `docker compose logs caddy --tail 20`; look for `certificate obtained`.
89
-
- Re-test after DNS changes with [SSL Labs](https://www.ssllabs.com/ssltest/).
90
-
- Want automatic updates? Add the Watchtower service shown below.
71
+
Re-test after DNS changes with [SSL Labs](https://www.ssllabs.com/ssltest/).
91
72
92
73
## Secure Your Instance
93
74
@@ -107,22 +88,22 @@ Keep the instance healthy once it is in production:
107
88
108
89
- Monitor `https://yourdomain.com/api/v1/health` with the configured bearer token for authenticated health checks
109
90
- Review `docker compose logs` regularly for feed errors or certificate renewals
110
-
- Enable automatic image updates so security patches roll out quickly
91
+
- Enable automatic image updates for the Docker tag you selected
111
92
- Right-size CPU and memory to avoid starvation when parsing large feeds
112
93
113
94
### Auto-update with Watchtower
114
95
115
96
<DockerComposeSnippetvariant="watchtower" />
116
97
117
-
This Watchtower shape scopes updates to `html2rss-web`, `browserless`, and `caddy`; replace service names if your stack differs.
98
+
This Watchtower shape scopes updates to `html2rss-web`, `browserless`, and `caddy`; change the service names if your stack differs.
118
99
119
100
Check `docker compose logs watchtower` occasionally to confirm updates are applied.
|`HTML2RSS_SECRET_KEY`| required in production; development/test gets a temporary default |
11
11
|`HEALTH_CHECK_TOKEN`| bearer token for authenticated `GET /api/v1/health`; optional unless you use that endpoint (the documented Compose stack includes it); `/api/v1/health/live` and `/api/v1/health/ready` do not require it |
12
-
|`BUILD_TAG`|defaults to `local` in the Compose stack; set release metadata explicitly in production|
13
-
|`GIT_SHA`|defaults to `local`in the Compose stack; set deployed commit SHA explicitly in production |
12
+
|`BUILD_TAG`|release metadata used in logs; published Docker images set this to the release version |
13
+
|`GIT_SHA`|deployed commit metadata used in logs; published Docker images set this to the released commit|
14
14
|`SENTRY_DSN`| optional; enables Sentry errors/logs when set |
15
15
|`BROWSERLESS_IO_WEBSOCKET_URL`| optional; Browserless websocket endpoint for `browserless` strategy |
16
16
|`BROWSERLESS_IO_API_TOKEN`| required by this site's Compose stack and by custom websocket endpoints; standalone `html2rss` local defaults can omit it |
This web application is distributed in a [rolling release](https://en.wikipedia.org/wiki/Rolling_release) fashion from the `main` branch.
8
+
html2rss-web publishes versioned Docker images to <ahref={dockerHubUrl}>Docker Hub: <code>{dockerHubRepository}</code></a>.
9
9
10
-
For the latest commit passing GitHub CI/CD on the main branch, an updated Docker image will be pushed to <ahref={dockerHubUrl}>Docker Hub: <code>{dockerHubRepository}</code></a>.
11
-
The [SBOM](https://en.wikipedia.org/wiki/Software_supply_chain) is embedded in the Docker image.
10
+
For release `1.2.3`, Docker publish pushes:
12
11
13
-
GitHub's @dependabot is enabled for dependency updates and they are automatically merged to the `main` branch when the CI gives the green light.
12
+
-`html2rss/web:1.2.3`: exact release
13
+
-`html2rss/web:1`: latest release in major version `1`
14
+
-`html2rss/web:latest`: newest published release
15
+
-`html2rss/web:<git-sha>`: release image pinned by source commit
14
16
15
-
If you use Docker, you should update to the latest image automatically by [setting up _watchtower_ as described](/web-application/how-to/automatic-updates).
17
+
Use `html2rss/web:1` for normal deployments. It receives newer releases for major version `1` without moving across a future major release.
18
+
19
+
Use an exact version tag when you need fully pinned deploys. Use `latest` only when you intentionally want the newest published release. Use the commit SHA tag when you need to trace or reproduce one released build.
20
+
21
+
Release images include SBOM and provenance metadata. The image build also sets `BUILD_TAG` to the release version and `GIT_SHA` to the released commit.
22
+
23
+
If you use Docker Compose, [set up Watchtower](/web-application/how-to/automatic-updates) to pull updates for the tag you selected.
0 commit comments