Adding site#1
Conversation
Initial commit for the Listenarr documentation site: adds Docusaurus config, docs (intro, getting-started, product-tour, reference), sidebars, site assets, and static API UI bundle. Includes src pages, custom CSS, a sync script (scripts/sync-listenarr.mjs) to pull assets and the OpenAPI document from the Listenarr repo, and a GitHub Actions workflow (.github/workflows/deploy.yml) to build and deploy to GitHub Pages. Also adds package.json, .gitignore, README updates and other supporting files.
Add a set of configuration and getting-started documentation pages (root-folders, download-clients, indexers, quality-profiles, notifications, discord-bot, general-settings, quick-start) and update intro/first-run/installation guidance. Add an Audimeta trending fetch script and generated data (scripts/fetch-audimeta-trending.mjs, src/data/audimeta.trending.json) and wire prestart/prebuild/fetch scripts in package.json. Rename API UI doc to /reference/api, update sidebars to expose new docs, and tweak header UI (GitHub/Discord icons and styles), homepage/API pages, and some static images and CSS for improved navigation and visual polish.
There was a problem hiding this comment.
Pull request overview
Adds a full Docusaurus-based documentation site for Listenarr, including a bundled Swagger UI page that is synced from the upstream Listenarr repository during CI.
Changes:
- Introduces a new homepage + documentation structure (getting started, configuration, reference, product tour) and Docusaurus configuration.
- Adds an
/api/page that loads a pre-bundled Swagger UI + OpenAPI document fromstatic/api-ui/. - Adds build-time sync scripts + a GitHub Pages workflow to periodically rebuild docs, refresh trending data, and regenerate API assets.
Reviewed changes
Copilot reviewed 30 out of 46 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| static/img/listenarr/github-mark.svg | Adds GitHub icon asset used by navbar styling. |
| static/img/listenarr/discord-mark.svg | Adds Discord icon asset used by navbar styling. |
| static/api-ui/index.html | Bundled standalone Swagger UI HTML (static assets). |
| static/api-ui/swagger-initializer.js | Swagger UI bootstrap configuration for the static bundle. |
| static/api-ui/openapi.json | Bundled OpenAPI document used by Swagger UI. |
| static/api-ui/swagger-ui-bundle.js | Bundled Swagger UI runtime JS. |
| static/api-ui/swagger-ui-standalone-preset.js | Bundled Swagger UI standalone preset JS. |
| static/api-ui/swagger-ui.css | Bundled Swagger UI CSS. |
| src/pages/index.js | Implements the new Listenarr homepage (hero, discovery, capabilities, API callout). |
| src/pages/index.module.css | Homepage styling including carousel/lightbox visuals. |
| src/pages/api/index.js | Implements /api/ page that dynamically loads Swagger UI assets in-browser. |
| src/pages/api/index.module.css | Styling overrides for embedded Swagger UI. |
| src/data/listenarr.generated.json | Generated metadata pointing at the upstream Listenarr source/version. |
| src/data/audimeta.trending.json | Generated trending audiobook dataset used on the homepage. |
| src/css/custom.css | Global theme, navbar, and component styling (including icon masks). |
| sidebars.js | Defines doc sidebar structure for new documentation. |
| scripts/sync-listenarr.mjs | Syncs upstream Listenarr assets and regenerates Swagger/OpenAPI bundle into static/api-ui/. |
| scripts/fetch-audimeta-trending.mjs | Fetches and writes trending audiobook data used by the homepage. |
| package.json | Adds Docusaurus + site dependencies and scripts for syncing/fetching data. |
| package-lock.json | Locks dependency graph for reproducible builds. |
| docusaurus.config.js | Configures site branding, navbar/footer, docs preset, and color mode. |
| docs/reference/development.md | Documents the sync workflow and local usage. |
| docs/reference/api.md | Documents how to access the bundled API UI and how it’s regenerated. |
| docs/product-tour/features.md | Adds a features overview page. |
| docs/intro.md | Adds docs landing page content and primary navigation links. |
| docs/getting-started/quick-start.md | Adds quick-start instructions. |
| docs/getting-started/installation.md | Adds installation guidance across Docker and platforms. |
| docs/getting-started/first-run.md | Adds a first-run checklist and security notes. |
| docs/configuration/root-folders.md | Adds root folders configuration guide. |
| docs/configuration/download-clients.md | Adds download clients configuration guide and path mapping notes. |
| docs/configuration/indexers.md | Adds indexers configuration guide including Prowlarr import. |
| docs/configuration/quality-profiles.md | Adds quality profiles explanation and guidance. |
| docs/configuration/notifications.md | Adds notification/webhook setup documentation. |
| docs/configuration/discord-bot.md | Adds Discord bot setup + troubleshooting documentation. |
| docs/configuration/general-settings.md | Adds comprehensive General Settings documentation. |
| README.md | Updates repository README with local dev and build instructions. |
| .gitignore | Adds standard Node/Docusaurus ignore entries. |
| .github/workflows/deploy.yml | Adds GitHub Actions workflow to build/sync and deploy to GitHub Pages on schedule and events. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
Stop copying static assets from the Listenarr repo in scripts/sync-listenarr.mjs: remove the cp import, assetMappings list, and copyAssets function, and update the console message to indicate syncing the API bundle. Also update generatedAt timestamps in src/data/audimeta.trending.json and src/data/listenarr.generated.json, and replace the social-card.png image under static/img/listenarr/.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5c7d9c9866
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Refactor API page to use React state for Swagger UI load errors (avoid direct DOM writes) and show a styled error message when loading fails. Update docs/reference/development.md to reflect the sync script changes (publishes API, fetches OpenAPI/Swagger assets from running instance, writes to static/api-ui/, and refreshes Listenarr version metadata). Remove an unused formatDate helper from the homepage. Tweak .heroLightboxClose CSS (alignment, font/line-height) and update audimeta.trending.json generatedAt timestamp.
Enhance Listenarr sync script to more robustly resolve the API version: prefer MSBuild -getProperty, fall back to parsing the csproj (including VersionPrefix/VersionSuffix), then git describe, then normalized source ref, finally 'unknown'. Refactor helpers into readListenarrVersion, readMsbuildProperty, readVersionFromProjectFile, and normalizeRefName, and reorder version/commit lookup to use the source ref. Also harden client-side script loading: remove existing script elements so a fresh one is added and ensure the element is removed on load error. Finally update the audimeta.trending.json generatedAt timestamp.
Make docs deployment more resilient when syncing Listenarr: mark the sync step as continue-on-error, add an ID for checking outcome, fail fast if the ref is main, and checkout Listenarr main as a fallback to re-run the sync when the original ref fails. Improve sync script error messages to include stderr/stdout/error.message (or exit code) for clearer diagnostics. Also update generatedAt timestamps in audimeta and listenarr data files.
Remove the hard failure when Listenarr sync from the detected ref fails and instead attempt a fallback sync from main (continue-on-error). Add a verification step that checks for the committed API bundle files (HTML/CSS/JS and generated JSON) and fails the job if those fallback files are missing, otherwise emits a warning and proceeds to build the docs. This lets the docs workflow use a committed API bundle when remote syncs fail, but still fails fast if no valid fallback is available.
Change CI and sync behavior to prefer the Listenarr 'canary' ref instead of 'main'. Updated .github/workflows/deploy.yml to set the default ref and fallback checks to 'canary', and adjusted scripts/sync-listenarr.mjs to default to 'canary' when no ref is provided. Also updated generated metadata (src/data/listenarr.generated.json and src/data/audimeta.trending.json) with new commit, ref, and timestamps, and trimmed deprecated/unneeded Root Folders endpoints and a property from the bundled OpenAPI (static/api-ui/openapi.json). These changes align the repo with the canary API bundle and refresh generated artifacts.
No description provided.