Skip to content

Commit 531e425

Browse files
feat: refocus self-hosting guide on production deployment (#995)
* Refocus self-hosting guide on production deployment * Clarify compose file creation in self-hosting guide * Clarify self-hosting prerequisites * Polish self-hosting guide tone * Polish self-hosting copy * Update src/content/docs/get-involved/self-hosting.mdx * Update src/content/docs/get-involved/self-hosting.mdx * Update src/content/docs/get-involved/self-hosting.mdx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/content/docs/get-involved/self-hosting.mdx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent a0a0fd4 commit 531e425

File tree

1 file changed

+42
-28
lines changed

1 file changed

+42
-28
lines changed

src/content/docs/get-involved/self-hosting.mdx

Lines changed: 42 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,49 @@ sidebar:
55
order: 3
66
---
77

8-
Turn any website into an RSS feed. Self-host your own instance and take back control of your information diet.
9-
10-
## Quick Start
11-
12-
1. Install [Docker](https://docs.docker.com/get-docker/).
13-
2. Create a directory for html2rss:
14-
```bash
15-
mkdir html2rss-web && cd html2rss-web
16-
```
17-
3. Download the configuration:
18-
```bash
19-
curl -O https://raw.githubusercontent.com/html2rss/html2rss-web/master/docker-compose.yml
20-
curl -O https://raw.githubusercontent.com/html2rss/html2rss-web/master/config/feeds.yml
21-
```
22-
4. Start the instance:
23-
```bash
24-
docker compose up -d
25-
```
26-
5. Visit [http://localhost:3000](http://localhost:3000)
27-
You should see the html2rss-web interface.
28-
29-
## Next Steps
30-
31-
- [Secure your instance](/web-application/how-to/deployment#secure-your-instance)
32-
- [Enable HTTPS](/web-application/how-to/deployment#option-a-caddy-automatic-https)
33-
- [Troubleshoot issues](/troubleshooting/troubleshooting)
34-
- [Join the community](https://github.com/orgs/html2rss/discussions)
8+
Turn any website into an RSS feed. Self-host your own instance to take back control of your information diet and help the html2rss ecosystem grow for everyone.
359

36-
---
10+
## Before You Begin
11+
12+
This guide walks you through running a production-ready instance that friends, teams, or communities can rely on. You'll need:
13+
14+
- A server you control (a VPS, home lab, or cloud instance) with Docker support.
15+
- Comfort running a few terminal commands and editing configuration files.
16+
17+
If that feels new, start with the [Getting Started guide](/web-application/getting-started/) for a friendly local install. It introduces the same concepts at a slower pace. When you're ready to go live, come back here and review the full [Deployment & Production guide](/web-application/how-to/deployment) for sizing tips, proxy examples, and hardening advice.
18+
19+
Before you deploy, double-check this quick checklist:
20+
21+
- Docker Engine and Docker Compose Plugin are installed on the host.
22+
- Ports 80/443 (or the ports used by your TLS terminator) are open to the internet if you plan to serve other users.
23+
- You can publish DNS for your chosen domain.
24+
25+
## Deployment Overview
26+
27+
1. Generate your `docker-compose.yml` and `config/feeds.yml` by following [Step 2 of the Getting Started guide](/web-application/getting-started/#step-2-create-the-configuration-file), then copy the resulting files into your deployment directory.
28+
2. Create an `.env` file with production credentials and the values documented in the [environment reference](/web-application/reference/env-variables). Generate new secrets (`openssl rand -hex 32`) and avoid reusing the samples from local testing.
29+
3. Adjust the compose file to match your host (volumes, proxy service, watchtower, resource limits). The [deployment guide](/web-application/how-to/deployment) shows complete examples for Caddy, health-check protection, and automatic updates.
30+
4. Start the stack with `docker compose up -d` and verify the application is reachable at your chosen domain or internal endpoint.
31+
32+
For extra reliability, integrate the instance with your existing reverse proxy, DNS, or platform tooling rather than running it ad hoc on a laptop. Treat it like any other production service so readers can trust it.
33+
34+
## Harden & Secure
35+
36+
- Follow the [Secure Your Instance](/web-application/how-to/deployment#secure-your-instance) checklist to lock down credentials, TLS, and network access.
37+
- Enforce HTTPS by configuring a reverse proxy (see [Option A: Caddy](/web-application/how-to/deployment#option-a-caddy-automatic-https)) or your preferred terminator. If you manage certificates separately, document the renewal procedure alongside your deployment scripts.
38+
- Review the [production preparation guidelines](/web-application/how-to/deployment#prepare-for-production) and keep secrets outside of version control.
39+
40+
## Monitor & Maintain
41+
42+
- Point your uptime monitor at `/health_check.txt` and review container logs regularly. The [Operate & Monitor](/web-application/how-to/deployment#operate--monitor) section outlines suggested thresholds.
43+
- Automate updates with Watchtower (a Docker container that updates running containers) or your container management platform to receive the latest html2rss-web releases quickly.
44+
- Track storage usage for feed cache volumes and prune unused images. Schedule periodic configuration reviews so feeds and credentials remain accurate.
45+
46+
## Share Your Instance
47+
48+
Running a reliable deployment benefits the broader community. Share your server with the broader community by adding it to the [community instance list](https://github.com/html2rss/html2rss-web/wiki/Instances) once it is stable and you are ready for other readers. Include details such as uptime expectations, moderation policy, and contact information so people know what to expect.
49+
50+
Thanks for investing the time to share html2rss with others. Each new instance expands the open web and helps readers stay in control of the stories they follow.
3751

3852
## License
3953

0 commit comments

Comments
 (0)