55html2rss-web converts arbitrary websites into RSS 2.0 feeds with a slim Ruby backend and an Astro-powered frontend.
66
77## Links
8+
89- Docs & feed directory: https://html2rss.github.io
910- Discussions: https://github.com/orgs/html2rss/discussions
1011- Sponsor: https://github.com/sponsors/gildesmarais
1112
1213## Highlights
14+
1315- Responsive Astro interface with gallery and custom feed creation.
1416- Automatic source discovery with token-scoped permissions.
1517- Signed public feed URLs that work in standard RSS readers.
1618- Built-in SSRF defences, input validation, and HMAC-protected tokens.
1719
1820## Architecture
21+
1922- ** Backend:** Ruby + Roda, backed by the ` html2rss ` gem for extraction.
2023- ** Frontend:** Astro static site with progressive enhancement.
2124- ** Distribution:** Docker Compose by default; other deployments require manual wiring.
2225
2326## Documentation
27+
2428In-repo docs live under ` frontend/src/content/docs/ ` and are published by Astro.
29+
2530- [ Configuration Guide] ( frontend/src/content/docs/configuration.md )
2631- [ Security Guide] ( frontend/src/content/docs/security.md )
2732- [ REST API v1] ( frontend/src/content/docs/api/v1.md )
2833- [ Testing Overview] ( frontend/src/content/docs/testing.md )
2934
3035## REST API Snapshot
36+
3137``` bash
3238# List available strategies
3339curl -H " Authorization: Bearer <token>" \
@@ -41,13 +47,15 @@ curl -X POST "https://your-domain.com/api/v1/feeds" \
4147```
4248
4349## Deploy (Docker Compose)
50+
44511 . Generate a key: ` openssl rand -hex 32 ` .
45522 . Set ` HTML2RSS_SECRET_KEY ` in ` docker-compose.yml ` .
46533 . Start: ` docker-compose up ` .
4754
4855UI + API run on ` http://localhost:4000 ` . The app exits if the secret key is missing.
4956
5057## Development (Dev Container)
58+
5159Use the repository's [ Dev Container] ( .devcontainer/README.md ) for all local development and tests.
5260Running the app directly on the host is not supported.
5361
@@ -82,12 +90,12 @@ Dev URLs: Ruby app at `http://localhost:4000`, Astro dev server at `http://local
8290
8391## Frontend npm Scripts (inside Dev Container)
8492
85- | Command | Purpose |
86- | ----------------------- | --------------------------------- |
93+ | Command | Purpose |
94+ | ----------------------- | --------------------------------------------- |
8795| ` npm run dev ` | Astro dev server with hot reload (port 4001). |
88- | ` npm run build ` | Production build. |
89- | ` npm run test:run ` | Unit tests (Vitest). |
90- | ` npm run test:contract ` | Contract tests with MSW. |
96+ | ` npm run build ` | Production build. |
97+ | ` npm run test:run ` | Unit tests (Vitest). |
98+ | ` npm run test:contract ` | Contract tests with MSW. |
9199
92100## Testing Strategy
93101
@@ -99,4 +107,5 @@ Dev URLs: Ruby app at `http://localhost:4000`, Astro dev server at `http://local
99107| Docker smoke | RSpec (` :docker ` ) | Net::HTTP probes against the containerised service. |
100108
101109## Contributing
110+
102111See the [ html2rss project guidelines] ( https://html2rss.github.io/get-involved/contributing ) .
0 commit comments