Skip to content

feat: add and document quickstart trial path#976

Merged
gildesmarais merged 9 commits intomainfrom
refine-journey-success
May 10, 2026
Merged

feat: add and document quickstart trial path#976
gildesmarais merged 9 commits intomainfrom
refine-journey-success

Conversation

@gildesmarais
Copy link
Copy Markdown
Member

@gildesmarais gildesmarais commented May 2, 2026

Quickstart

Test drive the app with these steps:

  1. Download docker-compose.quickstart.yml
  2. docker compose -f docker-compose.quickstart.yml up -d
  3. Open http://localhost:4000/ in your browser
  4. When prompted for a token, use CHANGE_ME_ADMIN_TOKEN

This pull request introduces a new quickstart mode for easier local testing, refines configuration and environment variable handling, and tightens security validation around access tokens. It also updates documentation to streamline onboarding and clarifies the development process. The most important changes are grouped below.

Quickstart and Onboarding Improvements:

  • Added a quickstart job to the CI workflow and a new docker-compose.quickstart.yml for fast local setup, with a default admin access token for testing. [1] [2]
  • Updated the README.md to provide a simplified quickstart guide, removing older, more complex instructions and emphasizing the new workflow. [1] [2]

Configuration and Environment Handling:

  • Changed the config file (config/feeds.yml) to use an ERB template for the admin token, which now defaults to a runtime environment value. The configuration loader now supports ERB evaluation. [1] [2] [3]
  • Introduced HTML2RSS_ACCESS_TOKEN and related helpers in RuntimeEnv, and updated code and tests to use this new environment variable for authentication. [1] [2] [3] [4] [5] [6]

Security and Validation Enhancements:

  • Strengthened production environment validation by enforcing non-placeholder, non-empty access tokens when auto source is enabled, and by validating account token shapes. [1] [2] [3]
  • Expanded the list of sensitive environment variables to include the access token, ensuring they are scrubbed after validation. [1] [2]

Code and Test Updates:

  • Updated health check and integration tests to use the new configuration loading methods and to expect the new access token handling. [1] [2] [3] [4] [5] [6]

These changes collectively make local setup easier, improve security defaults, and ensure configuration is robust and testable.


Summary

  • make the quickstart path an explicit trial flow with a known token
  • keep production auto-source strict by rejecting placeholder create-feed tokens
  • verify the quickstart compose contract in CI and support local quickstart image builds

What changed

  • add docker-compose.quickstart.yml as the minimal quickstart stack
  • drive the admin account token from HTML2RSS_ACCESS_TOKEN via ERB-backed config loading
  • remove the production quickstart carve-out from environment validation
  • keep readiness checks reparsing current config through LocalConfig.load_snapshot
  • add bin/quickstart-verify, bin/quickstart-up, and bin/quickstart-down
  • add a quickstart CI job that validates the rendered quickstart compose contract

Quickstart behavior

  • quickstart runs in RACK_ENV=development
  • quickstart uses CHANGE_ME_ADMIN_TOKEN
  • quickstart keeps Botasaurus wired for first-success UX
  • local trial builds can override the image through HTML2RSS_WEB_IMAGE

Validation

  • bin/quickstart-verify
  • ruby -c bin/quickstart-verify
  • bash -n bin/quickstart-up
  • bash -n bin/quickstart-down
  • docker compose -f docker-compose.quickstart.yml config --format json

This comment was marked as outdated.

@gildesmarais gildesmarais force-pushed the refine-journey-success branch 2 times, most recently from 396e395 to ed001fb Compare May 8, 2026 16:13
@gildesmarais gildesmarais requested a review from Copilot May 8, 2026 16:34
@gildesmarais gildesmarais changed the title feat: simplify token-gated onboarding flow feat: simplify service setup works with quickstart May 8, 2026
@gildesmarais gildesmarais changed the title feat: simplify service setup works with quickstart feat: simplify initial setup with quickstart May 8, 2026

This comment was marked as outdated.

@gildesmarais gildesmarais force-pushed the refine-journey-success branch from f29f280 to 6fb0697 Compare May 10, 2026 06:27
@gildesmarais gildesmarais force-pushed the refine-journey-success branch from 6fb0697 to 0200735 Compare May 10, 2026 06:44
@gildesmarais gildesmarais force-pushed the refine-journey-success branch from e5aeed0 to 4c54bbc Compare May 10, 2026 07:28
@gildesmarais gildesmarais requested a review from Copilot May 10, 2026 07:30
@gildesmarais gildesmarais changed the title feat: simplify initial setup with quickstart feat: make quickstart an honest trial path May 10, 2026
@gildesmarais gildesmarais changed the title feat: make quickstart an honest trial path feat: add a quickstart trial path May 10, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 18 changed files in this pull request and generated 2 comments.

Comment thread README.md Outdated
Comment on lines +74 to +76
def load_yaml
template = File.read(CONFIG_FILE)
YAML.safe_load(ERB.new(template, trim_mode: '-').result, symbolize_names: true).freeze
@gildesmarais gildesmarais force-pushed the refine-journey-success branch from 4c54bbc to 2526876 Compare May 10, 2026 07:47
@gildesmarais gildesmarais marked this pull request as ready for review May 10, 2026 07:51
@gildesmarais gildesmarais force-pushed the refine-journey-success branch from 659d8d1 to 751fae7 Compare May 10, 2026 09:23
@gildesmarais gildesmarais force-pushed the refine-journey-success branch from 751fae7 to d7a742c Compare May 10, 2026 09:34
@gildesmarais gildesmarais force-pushed the refine-journey-success branch from d7a742c to 3ac4729 Compare May 10, 2026 09:45
@gildesmarais gildesmarais changed the title feat: add a quickstart trial path feat: add and document quickstart trial path May 10, 2026
@gildesmarais gildesmarais merged commit 8bfe0ba into main May 10, 2026
15 checks passed
@gildesmarais gildesmarais deleted the refine-journey-success branch May 10, 2026 09:49
gildesmarais added a commit that referenced this pull request May 10, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.3.0](v1.2.0...v1.3.0)
(2026-05-10)


### Features

* add and document quickstart trial path
([#976](#976))
([8bfe0ba](8bfe0ba))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants