Skip to content

Move to docusaurus#313

Merged
ildyria merged 18 commits into
masterfrom
docusaurus
Jul 1, 2026
Merged

Move to docusaurus#313
ildyria merged 18 commits into
masterfrom
docusaurus

Conversation

@ildyria

@ildyria ildyria commented Jun 30, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • New Features

    • Added new documentation for several product areas, including getting started, usage, webshop, supporter edition, and feature guides.
    • Introduced a revamped docs experience with improved navigation, styling, and structured sections.
  • Bug Fixes

    • Updated links, redirects, and trailing-slash handling across the site for more reliable page navigation.
    • Simplified build and deployment output so the published site uses the newer documentation workflow.

@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@ildyria, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 27 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 6ae962bd-b3c4-43e3-ae4c-4306231044d8

📥 Commits

Reviewing files that changed from the base of the PR and between 074af3a and 2807fcd.

📒 Files selected for processing (7)
  • astro.config.ts
  • src/content/docs/docs/administration/update.md
  • src/content/docs/docs/administration/upgrade.md
  • src/content/docs/docs/faq/troubleshooting.md
  • src/content/docs/docs/getting-started/configuration.md
  • src/content/docs/docs/getting-started/releases.md
  • src/navigation.js
📝 Walkthrough

Walkthrough

This PR migrates the documentation site from a custom Python-generated docs pipeline to Astro with Starlight. It removes the Python builder stage, legacy CSS/JS/template vendor assets, and Python tooling, then adds Starlight integration, a docs content collection, and migrates nearly all documentation into Starlight-formatted markdown pages across administration, features, getting-started, SE, usage, and webshop sections. Site code (navigation, releases data, pages) is updated to match new URLs and behaviors.

Changes

Docs site migration to Astro Starlight

Layer / File(s) Summary
Build pipeline migration off Python docs generator
.github/workflows/CI.yml, Dockerfile, makefile, package.json, docs/css/prism.css
CI now runs make astro; Dockerfile drops the Python builder stage and copies only dist/ output; makefile removes doc/test targets and adds astro/docker targets; package.json adds Starlight dependencies and bumps Astro/mdx.
Astro Starlight integration and theming
astro.config.ts, src/content.config.ts, src/styles/starlight.css
Configures the Starlight integration (sidebar, site metadata, custom CSS), registers a new docs content collection, and adds theme CSS with accent colors and SE/Pro/Expert tag styling.
Site code updates supporting docs migration
src/data/releases.ts, src/navigation.js, src/pages/roadmap.astro, src/components/widgets/Announcement.astro, src/components/widgets/HeroIndex.astro, src/components/common/BasicScripts.astro, src/pages/index.astro, src/pages/get-supporter-edition.astro, src/pages/update.json.ts, src/config.yaml, src/pages/rss.xml.ts, vendor/integration/*
Introduces a shared releases module and releaseVersionToNumber, updates navigation links to new docs paths, adjusts trailingSlash handling across config/vendor code, and tweaks component markup.
Administration and FAQ documentation migration
src/content/docs/docs/administration/*, src/content/docs/docs/faq/*
Converts pages to Starlight frontmatter/admonition syntax, updates internal links, and revises update/upgrade Docker Compose and Git-based update guidance.
Features and Getting-Started documentation
src/content/docs/docs/features/*, src/content/docs/docs/getting-started/*
Adds new feature pages (facial recognition, flow, frame, map, rss, search, sensitive albums, slideshow, smart albums, tagging, timeline) and getting-started pages (configuration, installation, settings, releases, docker, contributions).
Supporter Edition, usage, and webshop documentation
src/content/docs/docs/se/*, src/content/docs/docs/usage/*, src/content/docs/docs/webshop/*
Adds SE feature pages (AES links, NSFW classification, watermarking, white label, statistics, user groups, overview) and usage/webshop pages (albums, photos, sharing, users, keyboard, configuration, orders, payments, overview).

Estimated code review effort: 3 (Moderate) | ~25 minutes

Related Issues: None specified

Related PRs: None specified

Suggested labels: documentation, build

Suggested reviewers: LycheeOrg maintainers

Poem

A rabbit hopped through docs so old,
Python gone, now Astro bold! 🌟
Starlight shines on every page,
New markdown blooms at every stage.
Hop, hop, through the sidebar tree—
Docs reborn for you and me! 🐇📚

🚥 Pre-merge checks | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ildyria ildyria marked this pull request as ready for review July 1, 2026 06:28

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 11

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
src/content/docs/docs/getting-started/contributions.md (1)

180-180: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Add missing space after bold tag.

"checkedThis will allow us" renders without space. Add a space: "checked This will allow us".

src/content/docs/docs/getting-started/docker.md (1)

56-56: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Inconsistent .env mount guidance.

The Version 7+ volume mounts no longer include .env, but "Security Considerations" (line 416) still recommends mounting .env as read-only, and the commented production setup (lines 466, 498) still shows .env mounts. If v7+ intentionally omits .env bind mounts, update these sections to explain why and what replaces them (e.g., environment in docker-compose). If this removal was accidental, restore the .env line to the v7+ example.

🧹 Nitpick comments (6)
makefile (2)

1-4: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Remove leftover commented-out target.

This is dead code from the old Python doc-generation pipeline; safe to delete now that the pipeline is fully removed.

🧹 Proposed cleanup
-# all: assets
-# 	`@echo` ""
-# 	`@python3` gen.py
-
 .PHONY: astro

5-11: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Declare clean, docker-build, and docker-run as .PHONY too.

Only astro is declared .PHONY; checkmake flags clean specifically since it doesn't produce a file named clean. Same reasoning applies to docker-build/docker-run.

🧹 Proposed fix
-.PHONY: astro
+.PHONY: astro clean docker-build docker-run

Source: Linters/SAST tools

src/styles/starlight.css (1)

17-18: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Fix font-family keyword casing flagged by Stylelint.

Stylelint's value-keyword-case rule reports errors on BlinkMacSystemFont, Roboto, and Arial.

🧹 Proposed fix
-  --sl-font: 'InterVariable', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
-    'Helvetica Neue', Arial, sans-serif;
+  --sl-font: 'InterVariable', -apple-system, blinkmacsystemfont, 'Segoe UI', roboto,
+    'Helvetica Neue', arial, sans-serif;

Source: Linters/SAST tools

Dockerfile (1)

20-21: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Drop --force from npm ci — the current lockfile already satisfies the Astro/Starlight/MDX peer ranges, so the flag is unnecessary and can hide install problems. Keep --no-audit only if suppressing audits in image builds is intentional.

src/data/releases.ts (1)

139-142: 🎯 Functional Correctness | 🔵 Trivial | 💤 Low value

Numeric encoding assumes minor/patch stay below 100.

releaseVersionToNumber packs minor/patch into fixed-width slots (* 100, * 10000). If either ever reaches 100+, version ordering silently breaks (e.g., a hypothetical v7.100.0 would rank below v7.2.0). Consider a wider multiplier or comparing version tuples directly.

src/pages/update.json.ts (1)

3-8: 🩺 Stability & Availability | 🔵 Trivial | 💤 Low value

No guard against an empty releases array.

releases[0] would be undefined if the array were ever empty, throwing on .version access. Low risk today given the static data, but consider a defensive check if releases becomes dynamically sourced later.


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f0a612e2-7c8c-4ca3-835a-1f23dea5c729

📥 Commits

Reviewing files that changed from the base of the PR and between 83545c5 and 074af3a.

⛔ Files ignored due to path filters (97)
  • docs/fonts/SourceCodePro.woff2 is excluded by !**/*.woff2
  • docs/fonts/source-sans-pro-v21-latin-600.woff2 is excluded by !**/*.woff2
  • docs/fonts/source-sans-pro-v21-latin-regular.woff2 is excluded by !**/*.woff2
  • package-lock.json is excluded by !**/package-lock.json
  • public/docs/Banner.png is excluded by !**/*.png
  • public/docs/Livewire Class Diagram.jpg is excluded by !**/*.jpg
  • public/docs/Livewire-component-diagram.png is excluded by !**/*.png
  • public/docs/Lychee.png is excluded by !**/*.png
  • public/docs/callouts/exclamation.min.svg is excluded by !**/*.svg
  • public/docs/callouts/lightbulb.min.svg is excluded by !**/*.svg
  • public/docs/contribute1.png is excluded by !**/*.png
  • public/docs/contribute2.png is excluded by !**/*.png
  • public/docs/contribute3.png is excluded by !**/*.png
  • public/docs/contribute4.png is excluded by !**/*.png
  • public/docs/contribute5.png is excluded by !**/*.png
  • public/docs/contribute6.png is excluded by !**/*.png
  • public/docs/contribute7.png is excluded by !**/*.png
  • public/docs/contribute8.png is excluded by !**/*.png
  • public/docs/create-album.png is excluded by !**/*.png
  • public/docs/external-link.svg is excluded by !**/*.svg
  • public/docs/icons/active_marker.min.svg is excluded by !**/*.svg
  • public/docs/icons/ul_marker.min.svg is excluded by !**/*.svg
  • public/docs/img/Banner.png is excluded by !**/*.png
  • public/docs/img/Livewire Class Diagram.jpg is excluded by !**/*.jpg
  • public/docs/img/Livewire-component-diagram.png is excluded by !**/*.png
  • public/docs/img/Lychee.png is excluded by !**/*.png
  • public/docs/img/callouts/exclamation.min.svg is excluded by !**/*.svg
  • public/docs/img/callouts/lightbulb.min.svg is excluded by !**/*.svg
  • public/docs/img/contribute1.png is excluded by !**/*.png
  • public/docs/img/contribute2.png is excluded by !**/*.png
  • public/docs/img/contribute3.png is excluded by !**/*.png
  • public/docs/img/contribute4.png is excluded by !**/*.png
  • public/docs/img/contribute5.png is excluded by !**/*.png
  • public/docs/img/contribute6.png is excluded by !**/*.png
  • public/docs/img/contribute7.png is excluded by !**/*.png
  • public/docs/img/contribute8.png is excluded by !**/*.png
  • public/docs/img/create-album.png is excluded by !**/*.png
  • public/docs/img/external-link.svg is excluded by !**/*.svg
  • public/docs/img/icons/active_marker.min.svg is excluded by !**/*.svg
  • public/docs/img/icons/ul_marker.min.svg is excluded by !**/*.svg
  • public/docs/img/install/install-1.png is excluded by !**/*.png
  • public/docs/img/install/install-2.png is excluded by !**/*.png
  • public/docs/img/install/install-3.png is excluded by !**/*.png
  • public/docs/img/install/install-4.png is excluded by !**/*.png
  • public/docs/img/install/install-5.png is excluded by !**/*.png
  • public/docs/img/install/install-6.png is excluded by !**/*.png
  • public/docs/img/install/install-7.png is excluded by !**/*.png
  • public/docs/img/install/install-8.png is excluded by !**/*.png
  • public/docs/img/install/install-error.png is excluded by !**/*.png
  • public/docs/img/logo.png is excluded by !**/*.png
  • public/docs/img/mvc-diagram.png is excluded by !**/*.png
  • public/docs/img/page1.png is excluded by !**/*.png
  • public/docs/img/page2.png is excluded by !**/*.png
  • public/docs/img/special-right-click-missing.png is excluded by !**/*.png
  • public/docs/img/update/update_1.png is excluded by !**/*.png
  • public/docs/img/update/update_2.png is excluded by !**/*.png
  • public/docs/img/update/update_3.png is excluded by !**/*.png
  • public/docs/img/update/update_4.png is excluded by !**/*.png
  • public/docs/img/update/update_5.png is excluded by !**/*.png
  • public/docs/img/update/update_6.png is excluded by !**/*.png
  • public/docs/img/update/update_7.png is excluded by !**/*.png
  • public/docs/img/webshop/admin-autofulfill-settings.png is excluded by !**/*.png
  • public/docs/img/webshop/admin-config.png is excluded by !**/*.png
  • public/docs/img/webshop/admin-fulfilled.png is excluded by !**/*.png
  • public/docs/img/webshop/admin-mark-paid.png is excluded by !**/*.png
  • public/docs/img/webshop/admin-order-detail.png is excluded by !**/*.png
  • public/docs/img/webshop/admin-orders.png is excluded by !**/*.png
  • public/docs/img/webshop/admin-paid.png is excluded by !**/*.png
  • public/docs/img/webshop/admin-prices.png is excluded by !**/*.png
  • public/docs/img/webshop/guest-basket.png is excluded by !**/*.png
  • public/docs/img/webshop/guest-cart.png is excluded by !**/*.png
  • public/docs/img/webshop/guest-checkout.png is excluded by !**/*.png
  • public/docs/img/webshop/guest-download.png is excluded by !**/*.png
  • public/docs/img/webshop/guest-gallery.png is excluded by !**/*.png
  • public/docs/img/webshop/guest-order.png is excluded by !**/*.png
  • public/docs/img/webshop/guest-payment.png is excluded by !**/*.png
  • public/docs/install/install-1.png is excluded by !**/*.png
  • public/docs/install/install-2.png is excluded by !**/*.png
  • public/docs/install/install-3.png is excluded by !**/*.png
  • public/docs/install/install-4.png is excluded by !**/*.png
  • public/docs/install/install-5.png is excluded by !**/*.png
  • public/docs/install/install-6.png is excluded by !**/*.png
  • public/docs/install/install-7.png is excluded by !**/*.png
  • public/docs/install/install-8.png is excluded by !**/*.png
  • public/docs/install/install-error.png is excluded by !**/*.png
  • public/docs/logo.png is excluded by !**/*.png
  • public/docs/mvc-diagram.png is excluded by !**/*.png
  • public/docs/page1.png is excluded by !**/*.png
  • public/docs/page2.png is excluded by !**/*.png
  • public/docs/special-right-click-missing.png is excluded by !**/*.png
  • public/docs/update/update_1.png is excluded by !**/*.png
  • public/docs/update/update_2.png is excluded by !**/*.png
  • public/docs/update/update_3.png is excluded by !**/*.png
  • public/docs/update/update_4.png is excluded by !**/*.png
  • public/docs/update/update_5.png is excluded by !**/*.png
  • public/docs/update/update_6.png is excluded by !**/*.png
  • public/docs/update/update_7.png is excluded by !**/*.png
📒 Files selected for processing (75)
  • .github/workflows/CI.yml
  • Dockerfile
  • astro.config.ts
  • docs/architecture.md
  • docs/configuration.md
  • docs/css/app.css
  • docs/css/prism.css
  • docs/installation.md
  • docs/js/app.js
  • docs/js/vendor/jquery.js
  • docs/js/vendor/prism.js
  • docs/settings.md
  • makefile
  • package.json
  • src/components/common/BasicScripts.astro
  • src/components/widgets/Announcement.astro
  • src/components/widgets/HeroIndex.astro
  • src/config.yaml
  • src/content.config.ts
  • src/content/docs/docs/administration/advanced-setups.md
  • src/content/docs/docs/administration/api.md
  • src/content/docs/docs/administration/external-tracking.md
  • src/content/docs/docs/administration/honeypot.md
  • src/content/docs/docs/administration/update.md
  • src/content/docs/docs/administration/upgrade.md
  • src/content/docs/docs/faq/general.md
  • src/content/docs/docs/faq/installation.md
  • src/content/docs/docs/faq/troubleshooting.md
  • src/content/docs/docs/features/facial-recognition.md
  • src/content/docs/docs/features/flow.md
  • src/content/docs/docs/features/frame.md
  • src/content/docs/docs/features/map.md
  • src/content/docs/docs/features/rss.md
  • src/content/docs/docs/features/search.md
  • src/content/docs/docs/features/sensitive-albums.md
  • src/content/docs/docs/features/slideshow.md
  • src/content/docs/docs/features/smart-albums.md
  • src/content/docs/docs/features/tagging.md
  • src/content/docs/docs/features/timeline.md
  • src/content/docs/docs/getting-started/configuration.md
  • src/content/docs/docs/getting-started/contributions.md
  • src/content/docs/docs/getting-started/docker.md
  • src/content/docs/docs/getting-started/installation.md
  • src/content/docs/docs/getting-started/manual-installation.md
  • src/content/docs/docs/getting-started/releases.md
  • src/content/docs/docs/getting-started/settings.md
  • src/content/docs/docs/se/aes-links.md
  • src/content/docs/docs/se/nsfw-classification.md
  • src/content/docs/docs/se/overview.md
  • src/content/docs/docs/se/statistics.md
  • src/content/docs/docs/se/user-groups.md
  • src/content/docs/docs/se/watermarking.md
  • src/content/docs/docs/se/white-label.md
  • src/content/docs/docs/usage/albums.md
  • src/content/docs/docs/usage/keyboard.md
  • src/content/docs/docs/usage/photos.md
  • src/content/docs/docs/usage/sharing.md
  • src/content/docs/docs/usage/users.md
  • src/content/docs/docs/webshop/configuration.md
  • src/content/docs/docs/webshop/orders.md
  • src/content/docs/docs/webshop/overview.md
  • src/content/docs/docs/webshop/payments.md
  • src/data/releases.ts
  • src/navigation.js
  • src/pages/get-supporter-edition.astro
  • src/pages/index.astro
  • src/pages/roadmap.astro
  • src/pages/rss.xml.ts
  • src/pages/update.json.ts
  • src/styles/starlight.css
  • template/doc-frame.html
  • template/update.tpl
  • utils/tools.py
  • vendor/integration/index.mjs
  • vendor/integration/utils/configBuilder.ts
💤 Files with no reviewable changes (12)
  • docs/architecture.md
  • utils/tools.py
  • docs/settings.md
  • template/update.tpl
  • docs/installation.md
  • docs/js/app.js
  • docs/configuration.md
  • template/doc-frame.html
  • docs/css/prism.css
  • docs/css/app.css
  • docs/js/vendor/prism.js
  • docs/js/vendor/jquery.js

Comment thread astro.config.ts
Comment thread makefile
Comment thread src/config.yaml
Comment thread src/content/docs/docs/administration/update.md Outdated
Comment thread src/content/docs/docs/administration/update.md
Comment thread src/content/docs/docs/faq/troubleshooting.md
Comment thread src/content/docs/docs/getting-started/configuration.md
Comment thread src/content/docs/docs/getting-started/configuration.md Outdated
Comment thread src/content/docs/docs/getting-started/settings.md
Comment thread src/content/docs/docs/getting-started/settings.md
@ildyria ildyria merged commit bde9c1f into master Jul 1, 2026
2 checks passed
@ildyria ildyria deleted the docusaurus branch July 1, 2026 07:01
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.

1 participant