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: src/content/docs/web-application/how-to/deployment.mdx
+6-64Lines changed: 6 additions & 64 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,8 @@ title: "Deployment & Production"
3
3
description: "Deploy html2rss-web to production with Docker. Learn best practices for hosting public instances with security, monitoring, and reliability."
html2rss-web ships on Docker Hub, so you can launch it wherever Docker runs. Start with the official [`docker-compose.yml`](https://github.com/html2rss/html2rss-web/blob/master/docker-compose.yml) from the [Installation Guide](/web-application/getting-started) as your baseline.
7
9
8
10
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, downloading the reference compose file, and confirming the application locally—steps we will build upon here.
@@ -25,29 +27,7 @@ A reverse proxy accepts public HTTPS traffic, terminates TLS, and forwards reque
25
27
26
28
Caddy handles certificates and redirects with almost no configuration.
27
29
28
-
```yaml
29
-
services:
30
-
caddy:
31
-
image: caddy:2-alpine
32
-
ports:
33
-
- "80:80"
34
-
- "443:443"
35
-
volumes:
36
-
- caddy_data:/data
37
-
command:
38
-
- caddy
39
-
- reverse-proxy
40
-
- --from
41
-
- ${CADDY_HOST}
42
-
- --to
43
-
- html2rss:3000
44
-
html2rss:
45
-
image: gilcreator/html2rss-web:latest
46
-
env_file: .env
47
-
48
-
volumes:
49
-
caddy_data:
50
-
```
30
+
<DockerComposeSnippetvariant="productionCaddy" />
51
31
52
32
- Create a `.env` file beside your compose file with the following variables:
53
33
@@ -79,17 +59,7 @@ Harden the application before inviting other users:
79
59
- Prefer environment files (`.env`) stored outside version control for secrets
80
60
- Keep admin-only routes behind basic auth or IP restrictions in your proxy
81
61
82
-
```yaml
83
-
services:
84
-
html2rss:
85
-
image: gilcreator/html2rss-web:latest
86
-
environment:
87
-
RACK_ENV: production
88
-
LOG_LEVEL: warn
89
-
HEALTH_CHECK_USERNAME: your-secure-username
90
-
HEALTH_CHECK_PASSWORD: your-very-secure-password
91
-
BASE_URL: https://yourdomain.com
92
-
```
62
+
<DockerComposeSnippetvariant="secure" />
93
63
94
64
Store these variables in a `.env` file and reference it with `env_file:` as demonstrated in the Caddy example.
95
65
@@ -104,41 +74,13 @@ Keep the instance healthy once it is in production:
104
74
105
75
### Auto-update with Watchtower
106
76
107
-
```yaml
108
-
services:
109
-
watchtower:
110
-
image: containrrr/watchtower
111
-
depends_on:
112
-
- html2rss
113
-
- caddy
114
-
command:
115
-
- --cleanup
116
-
- --interval
117
-
- "300"
118
-
- html2rss
119
-
- caddy
120
-
volumes:
121
-
- /var/run/docker.sock:/var/run/docker.sock
122
-
restart: unless-stopped
123
-
```
77
+
<DockerComposeSnippetvariant="watchtower" />
124
78
125
79
Check `docker compose logs watchtower` occasionally to confirm updates are applied.
This web application is distributed in a [rolling release](https://en.wikipedia.org/wiki/Rolling_release) fashion from the `master` branch.
7
9
8
-
For the latest commit passing GitHub CI/CD on the master branch, an updated Docker image will be pushed to [Docker Hub: `gilcreator/html2rss-web`](https://hub.docker.com/r/gilcreator/html2rss-web).
10
+
For the latest commit passing GitHub CI/CD on the master branch, an updated Docker image will be pushed to <ahref={dockerHubUrl}>Docker Hub: <code>{dockerHubRepository}</code></a>.
9
11
The [SBOM](https://en.wikipedia.org/wiki/Software_supply_chain) is embedded in the Docker image.
10
12
11
13
GitHub's @dependabot is enabled for dependency updates and they are automatically merged to the `master` branch when the CI gives the green light.
0 commit comments