docker-compose up will leave you with working ukeeper-readability service (both API and frontend) running on http://localhost:8080.
| Command line | Environment | Default | Description |
|---|---|---|---|
| address | UKEEPER_ADDRESS | all interfaces | web server listening address |
| port | UKEEPER_PORT | 8080 |
web server port |
| mongo-uri | MONGO_URI | none | MongoDB connection string, required |
| frontend-dir | FRONTEND_DIR | /srv/web |
directory with frontend files |
| token | UKEEPER_TOKEN | none | token for API endpoint auth |
| mongo-delay | MONGO_DELAY | 0 |
mongo initial delay |
| mongo-db | MONGO_DB | ureadability |
mongo database name |
| creds | CREDS | none | credentials for protected calls (POST, DELETE /rules) |
| cf-account-id | CF_ACCOUNT_ID | none | Cloudflare account ID for Browser Rendering API |
| cf-api-token | CF_API_TOKEN | none | Cloudflare API token with Browser Rendering Edit perm |
| cf-route-all | CF_ROUTE_ALL | false |
route every request through Cloudflare Browser Rendering |
| dbg | DEBUG | false |
debug mode |
Cloudflare Browser Rendering is useful for JavaScript-heavy pages and sites behind a "please enable JS" wall, but it's slower than direct HTTP and the free tier throttles at 1 request per 10 seconds. To keep the service cost-effective, Cloudflare routing is opt-in.
- Set
--cf-account-idand--cf-api-tokento enable Cloudflare routing. - Either flip the
use_cloudflarecheckbox on individual rules (per-domain, recommended) or set--cf-route-all=trueto route every request through Cloudflare.
When Cloudflare credentials are not set, the service uses a standard HTTP client for everything (default). On HTTP 429 (rate limit) the service automatically retries with exponential backoff and respects the Retry-After header.
GET /api/content/v1/parser?token=secret&url=http://aa.com/blah - extract content (emulate Readability API parse call)
POST /api/extract {url: http://aa.com/blah} - extract content
To run the full test suite, you need MongoDB running without authorisation on port 27017. To start such Mongo instance, check comments in docker-compose.yaml file and run Mongo according to them.
Command to run full test suite would be:
ENABLE_MONGO_TESTS=true go test ./...