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
@@ -30,11 +30,17 @@ When hosting a **public instance** that others will use, please follow these ess
30
30
31
31
### Security
32
32
33
-
-**Use a reverse proxy**([nginx](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/), Apache, or Cloudflare) to handle SSL termination and rate limiting
34
-
-**Enable HTTPS only** — redirect all HTTP traffic to HTTPS ([certbot guide](https://certbot.eff.org/))
33
+
-**Use a reverse proxy** to handle SSL termination and rate limiting
34
+
-**Enable HTTPS only** — redirect all HTTP traffic to HTTPS
35
35
-**Set strong passwords** for health check and auto-source authentication
36
36
-**Restrict access** to admin endpoints and sensitive configuration
37
37
38
+
### Modern Reverse Proxy Options
39
+
40
+
-**Caddy** — Automatic HTTPS, zero config
41
+
-**Traefik** — Auto-discovery, perfect for Docker
42
+
-**nginx** — Traditional, requires certbot setup
43
+
38
44
### HTTPS
39
45
40
46
Setting up HTTPS is crucial for any public instance. Follow these steps:
@@ -45,38 +51,132 @@ Setting up HTTPS is crucial for any public instance. Follow these steps:
45
51
4.**Test your setup** using tools like [SSL Labs](https://www.ssllabs.com/ssltest/)
- **Enable auto-updates** using [watchtower](https://containrrr.dev/watchtower/) or similar tools
55
123
- **Monitor the health check endpoint** (`/health_check.txt`) to detect issues early
56
124
- **Set up logging** to track errors and performance
57
125
- **Use environment variables** for configuration instead of hardcoded values
58
126
59
-
### Performance Optimization
127
+
### Example: Adding Watchtower for Auto-updates
128
+
129
+
```yaml
130
+
services:
131
+
watchtower:
132
+
image: containrrr/watchtower
133
+
volumes:
134
+
- /var/run/docker.sock:/var/run/docker.sock
135
+
environment:
136
+
- WATCHTOWER_CLEANUP=true
137
+
- WATCHTOWER_POLL_INTERVAL=300
138
+
```
139
+
140
+
## Performance Optimization
60
141
61
142
- **Configure appropriate resource limits** for your Docker containers
62
143
- **Use a CDN** for static assets if serving many users
63
144
- **Monitor memory usage** — html2rss-web can be memory-intensive with large feeds
64
145
- **Set up caching** for frequently accessed feeds
65
146
147
+
### Example: Resource Limits
148
+
149
+
```yaml
150
+
services:
151
+
html2rss:
152
+
image: html2rss/html2rss-web:latest
153
+
deploy:
154
+
resources:
155
+
limits:
156
+
memory: 512M
157
+
cpus: "0.5"
158
+
reservations:
159
+
memory: 256M
160
+
cpus: "0.25"
161
+
```
162
+
66
163
## Environment Configuration
67
164
68
165
For production, update your environment variables:
69
166
70
167
```yaml
71
-
environment:
72
-
RACK_ENV: production
73
-
LOG_LEVEL: warn
74
-
HEALTH_CHECK_USERNAME: your-secure-username
75
-
HEALTH_CHECK_PASSWORD: your-very-secure-password
76
-
BASE_URL: https://your-domain.com
168
+
services:
169
+
html2rss:
170
+
image: html2rss/html2rss-web:latest
171
+
environment:
172
+
RACK_ENV: production
173
+
LOG_LEVEL: warn
174
+
HEALTH_CHECK_USERNAME: your-secure-username
175
+
HEALTH_CHECK_PASSWORD: your-very-secure-password
176
+
BASE_URL: https://your-domain.com
77
177
```
78
178
79
-
Use a [password manager](https://bitwarden.com/password-generator/) to generate strong values.
179
+
> 💡 **Security Tip**: Use a [password manager](https://bitwarden.com/password-generator/) to generate strong, unique passwords for all authentication endpoints.
80
180
81
181
## Share Your Instance
82
182
@@ -86,6 +186,13 @@ Once your instance is running smoothly:
86
186
- **Test thoroughly** with various feed types before sharing
87
187
- **Monitor usage** and be prepared to scale if needed
88
188
189
+
### Before Going Public
190
+
191
+
1. **Test your setup** with different feed configurations
192
+
2. **Verify HTTPS** is working correctly
193
+
3. **Check performance** under load
194
+
4. **Review security settings** and access controls
0 commit comments