Skip to content

Commit 1fb92a5

Browse files
authored
docs(onboarding): make docker the default path (#1088)
* docs(onboarding): make docker the default path * refactor(docs): share onboarding content blocks * docs(nav): prioritize onboarding paths * docs(onboarding): make web app guide canonical * docs(web-app): strengthen activation follow-ups
1 parent 3dd4e5e commit 1fb92a5

10 files changed

Lines changed: 201 additions & 290 deletions

astro.config.mjs

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -248,17 +248,17 @@ export default defineConfig({
248248
},
249249
sidebar: [
250250
{
251-
label: "Home",
252-
link: "/",
253-
},
254-
{
255-
label: "Common Use Cases",
256-
link: "/common-use-cases",
251+
label: "Getting Started",
252+
link: "/getting-started",
257253
},
258254
{
259255
label: "Feed Directory",
260256
link: "/feed-directory/",
261257
},
258+
{
259+
label: "Create Custom Feeds",
260+
link: "/creating-custom-feeds",
261+
},
262262
{
263263
label: "Web Application",
264264
collapsed: true,
@@ -299,10 +299,6 @@ export default defineConfig({
299299
},
300300
],
301301
},
302-
{
303-
label: "Write Your Own Feed Configs",
304-
link: "/creating-custom-feeds",
305-
},
306302
{
307303
label: "About",
308304
link: "/about",
@@ -312,11 +308,6 @@ export default defineConfig({
312308
collapsed: false,
313309
autogenerate: { directory: "get-involved" },
314310
},
315-
{
316-
label: "Troubleshooting",
317-
collapsed: true,
318-
autogenerate: { directory: "troubleshooting" },
319-
},
320311
],
321312
defaultLocale: "root",
322313
locales: {
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
import { Aside } from "@astrojs/starlight/components";
3+
---
4+
5+
<Aside type="note" title="Automatic generation is optional">
6+
The "paste a website URL and generate a feed" workflow is not enabled by default. If you want it, continue
7+
with <a href="/web-application/how-to/use-automatic-feed-generation/">Use automatic feed generation</a>.
8+
</Aside>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
import Code from "astro/components/Code.astro";
3+
4+
const code = `services:
5+
html2rss-web:
6+
image: gilcreator/html2rss-web
7+
restart: unless-stopped
8+
ports:
9+
- "127.0.0.1:3000:3000"
10+
volumes:
11+
- type: bind
12+
source: ./feeds.yml
13+
target: /app/config/feeds.yml
14+
read_only: true
15+
environment:
16+
RACK_ENV: production
17+
HEALTH_CHECK_USERNAME: health
18+
HEALTH_CHECK_PASSWORD: CHANGE_THIS_PASSWORD_BEFORE_USE
19+
BROWSERLESS_IO_WEBSOCKET_URL: ws://browserless:3001
20+
BROWSERLESS_IO_API_TOKEN: 6R0W53R135510
21+
22+
browserless:
23+
image: "ghcr.io/browserless/chromium"
24+
restart: unless-stopped
25+
ports:
26+
- "127.0.0.1:3001:3001"
27+
environment:
28+
PORT: 3001
29+
CONCURRENT: 10
30+
TOKEN: 6R0W53R135510`;
31+
---
32+
33+
<Code code={code} lang="yaml" />

src/content/docs/creating-custom-feeds.mdx

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ When auto-sourcing isn't enough, you can write your own configuration files to c
1919
releases](/web-application/reference/versioning-and-releases/) for details.
2020
</Aside>
2121

22+
<Aside type="tip" title="Use this guide when you need more control">
23+
Start with included feeds first. If your site is not covered, try [automatic feed
24+
generation](/web-application/how-to/use-automatic-feed-generation/) next. Reach for a custom config when you
25+
need a stable, reviewable setup or the generated feed misses important content.
26+
</Aside>
27+
2228
---
2329

2430
## When to Use Custom Configs
@@ -35,6 +41,20 @@ When auto-sourcing isn't enough, you can write your own configuration files to c
3541

3642
---
3743

44+
## Recommended Workflow
45+
46+
1. **Inspect the live page** in your browser developer tools
47+
2. **Write the smallest useful config** that extracts items, titles, and links
48+
3. **Validate the config** with `html2rss validate your-config.yml`
49+
4. **Render the feed** with `html2rss feed your-config.yml`
50+
5. **Add it to `html2rss-web`** so you can use it through your normal instance
51+
6. **Escalate to `browserless`** if the content is rendered by JavaScript
52+
53+
This order keeps iteration fast and makes it easier to see whether the problem is the page structure, your
54+
selectors, or the fetch strategy.
55+
56+
---
57+
3858
## How It Works
3959

4060
A config file is a simple "recipe" that tells html2rss:
@@ -82,7 +102,7 @@ This says: "Find each article, get the title from the h2 anchor, and get the lin
82102

83103
## Your First Config
84104

85-
**Step 1:** Look at the website you want to create a feed for. Right-click → "View Page Source" to see the HTML structure.
105+
**Step 1:** Inspect the website you want to create a feed for. Start with your browser's developer tools to inspect the live DOM. "View Page Source" can still help, but it may miss JavaScript-rendered content.
86106

87107
**Step 2:** Create a file called `example.com.yml` with this basic structure:
88108

@@ -140,6 +160,12 @@ html2rss supports many configuration options:
140160

141161
4. **Check the output:** Make sure all items have titles, links, and descriptions
142162

163+
## Add It To html2rss-web
164+
165+
Once the config works locally, add it to your `feeds.yml` or shared config repository and restart your
166+
instance. Then open the feed through your normal `html2rss-web` URL and confirm it behaves the same way
167+
there.
168+
143169
---
144170

145171
## Sharing Your Config
@@ -177,11 +203,13 @@ html2rss supports many configuration options:
177203
**For Beginners:**
178204

179205
- **[Browse the Feed Directory](/feed-directory/)** - See real-world examples
206+
- **[Run html2rss-web with Docker](/web-application/getting-started)** - Use the newest integrated behavior
180207
- **[Learn more about selectors](/ruby-gem/reference/selectors/)** - Master CSS selectors
181208
- **[Submit your config via GitHub Web](https://github.com/html2rss/html2rss-configs)** - No Git knowledge required!
182209

183210
**For Contributors:**
184211

185212
- **[Browse existing configs](https://github.com/html2rss/html2rss-configs/tree/master/lib/html2rss/configs)** - See real examples
186213
- **[Join discussions](https://github.com/orgs/html2rss/discussions)** - Connect with other users
214+
- **[Learn about strategies](/ruby-gem/reference/strategy/)** - Decide when to use `browserless`
187215
- **[Learn advanced features](/ruby-gem/how-to/advanced-features/)** - Take your configs to the next level

src/content/docs/getting-started.mdx

Lines changed: 12 additions & 172 deletions
Original file line numberDiff line numberDiff line change
@@ -5,181 +5,21 @@ sidebar:
55
order: 1
66
---
77

8-
Ready to get RSS feeds from any website? Choose your path below. No technical knowledge required!
8+
This page points to the main onboarding flow.
99

10-
## Quick Start Options
10+
## Start Here
1111

12-
### Option 1: Use a Public Instance (Easiest)
12+
If you want the recommended path, go to [Run html2rss-web with Docker](/web-application/getting-started).
1313

14-
**Try html2rss right now:**
14+
That guide is the canonical setup flow for:
1515

16-
1. **Go to a public html2rss instance** (see our [community wiki](https://github.com/html2rss/html2rss-web/wiki/Instances) for available instances)
17-
2. **Browse existing feeds** or create auto-sourced feeds from any URL
18-
3. **Copy the RSS URL** and add it to your feed reader
19-
4. **Done!** You're now following the website in your RSS reader
16+
- running `html2rss-web` locally
17+
- confirming your first successful feed
18+
- deciding when to use included feeds, automatic generation, or custom configs
2019

21-
**Perfect for:** Testing, quick feeds, or if you don't want to install anything.
20+
## Quick Shortcuts
2221

23-
### Option 2: Install Your Own Instance
24-
25-
**For full control and custom feeds:**
26-
27-
1. **Follow the installation steps below**
28-
2. **Create auto-sourced feeds** from any website
29-
3. **Add custom configs** when you need more control
30-
4. **Run your own RSS feed server** with stable HTTPS URLs
31-
32-
**Perfect for:** Power users, custom configurations, or when you need reliability.
33-
34-
---
35-
36-
## Installation Guide
37-
38-
This guide will help you set up your own copy of html2rss-web on your computer. Don't worry - we'll walk you through every step!
39-
40-
### What You'll Need
41-
42-
- **Docker** - A tool that makes installation simple (like an app store for server software)
43-
- **About 10 minutes** - The whole process is quick and automated
44-
45-
**Don't have Docker?** [Install it first](https://docs.docker.com/get-started/) - it's free and works on all major operating systems.
46-
47-
### Step 1: Create a Folder
48-
49-
Create a new folder on your computer to store html2rss-web files:
50-
51-
**Create a new folder** on your computer and name it "html2rss-web". You can do this through your file manager or terminal:
52-
53-
```bash
54-
mkdir html2rss-web
55-
cd html2rss-web
56-
```
57-
58-
### Step 2: Create the Configuration File
59-
60-
Create a file called `docker-compose.yml` in your new folder. This file tells Docker how to set up html2rss-web with all the features you need.
61-
62-
**How to create the file:**
63-
64-
- **Using a text editor:** Create a new file and save it as `docker-compose.yml`
65-
- **Using terminal:** Use any text editor to create the file
66-
67-
```yaml
68-
services:
69-
html2rss-web:
70-
image: gilcreator/html2rss-web:latest
71-
restart: unless-stopped
72-
ports:
73-
- "127.0.0.1:3000:3000"
74-
volumes:
75-
- type: bind
76-
source: ./feeds.yml
77-
target: /app/config/feeds.yml
78-
read_only: true
79-
environment:
80-
RACK_ENV: production
81-
HEALTH_CHECK_USERNAME: health
82-
HEALTH_CHECK_PASSWORD: CHANGE_THIS_PASSWORD_BEFORE_USE
83-
BROWSERLESS_IO_WEBSOCKET_URL: ws://browserless:3001
84-
BROWSERLESS_IO_API_TOKEN: 6R0W53R135510
85-
86-
watchtower:
87-
image: containrrr/watchtower
88-
restart: unless-stopped
89-
volumes:
90-
- /var/run/docker.sock:/var/run/docker.sock
91-
- "~/.docker/config.json:/config.json"
92-
command: --cleanup --interval 7200
93-
94-
browserless:
95-
image: "ghcr.io/browserless/chromium"
96-
restart: unless-stopped
97-
ports:
98-
- "127.0.0.1:3001:3001"
99-
environment:
100-
PORT: 3001
101-
CONCURRENT: 10
102-
TOKEN: 6R0W53R135510
103-
```
104-
105-
### Step 3: Download the Feed List
106-
107-
html2rss-web needs a list of feeds to work with. Download our pre-made list:
108-
109-
**Download the feeds.yml file:**
110-
111-
- **Using your browser:** Right-click [this link](https://raw.githubusercontent.com/html2rss/html2rss-web/master/config/feeds.yml) → Save As → Name it "feeds.yml" → Save in your html2rss-web folder
112-
- **Using terminal:** Open Terminal in your html2rss-web folder and run:
113-
114-
```bash
115-
curl https://raw.githubusercontent.com/html2rss/html2rss-web/master/config/feeds.yml -o feeds.yml
116-
```
117-
118-
### Step 4: Start html2rss-web
119-
120-
Now start html2rss-web:
121-
122-
**Start html2rss-web:**
123-
124-
Open a terminal in your html2rss-web folder and run:
125-
126-
```bash
127-
docker compose up -d
128-
```
129-
130-
**That's it!** 🎉 html2rss-web is now running.
131-
132-
**To verify it's working:**
133-
134-
1. Open your web browser
135-
2. Go to `http://localhost:3000`
136-
3. You should see the html2rss-web interface with a list of available feeds
137-
138-
**If you see the interface, congratulations!** You've successfully set up html2rss-web.
139-
140-
---
141-
142-
## Using Your Instance
143-
144-
### Browse Existing Feeds
145-
146-
Your html2rss-web instance comes with pre-configured feeds for popular websites. Browse the list and copy any RSS URL to your feed reader.
147-
148-
### Create Auto-Sourced Feeds
149-
150-
**Want a feed for a website that's not in the list?**
151-
152-
1. **Go to your html2rss-web interface** (http://localhost:3000)
153-
2. **Enter any website URL** you want to create a feed for
154-
3. **Click "Generate Feed"** - html2rss will automatically analyze the page
155-
4. **Copy the RSS URL** and add it to your feed reader
156-
157-
**This works for most websites** without any configuration needed!
158-
159-
### Add Custom Feeds
160-
161-
**Need more control?** You can add custom feed configurations to your `feeds.yml` file. See our [Creating Custom Feeds](/creating-custom-feeds) guide for details.
162-
163-
---
164-
165-
## Troubleshooting
166-
167-
**Common issues when getting started:**
168-
169-
- **Instance won't start?** Check that Docker is running and the port isn't already in use
170-
- **Can't access the interface?** Make sure you're going to `http://localhost:3000`
171-
- **Auto-sourced feed not working?** Some websites need custom configuration - see our [troubleshooting guide](/troubleshooting/troubleshooting)
172-
- **Need help?** Join our [community discussions](https://github.com/orgs/html2rss/discussions)
173-
174-
---
175-
176-
## Next Steps
177-
178-
**Ready for more?**
179-
180-
- **[Browse the Feed Directory](/feed-directory/)** - See real-world examples
181-
- **[Create Custom Feeds](/creating-custom-feeds)** - Learn to write your own configurations
182-
- **[Troubleshooting Guide](/troubleshooting/troubleshooting)** - Solve common issues
183-
- **[Join the Community](https://github.com/orgs/html2rss/discussions)** - Get help and share ideas
184-
185-
**🎉 Congratulations!** You now have your own RSS feed server running.
22+
- **[Run html2rss-web with Docker](/web-application/getting-started)** - Recommended first step
23+
- **[Browse working feed examples](/feed-directory/)** - See what success looks like
24+
- **[Create Custom Feeds](/creating-custom-feeds)** - Write configs when you need more control
25+
- **[Troubleshooting Guide](/troubleshooting/troubleshooting)** - Fix startup or extraction problems

0 commit comments

Comments
 (0)