Add complete Paperless NGX community app guide#407
Add complete Paperless NGX community app guide#407grizzlechips wants to merge 72 commits intounraid:mainfrom
Conversation
… notification icons - Expand notification settings documentation with detailed configuration options: * Add comprehensive display/behavior settings, notification types, and delivery methods * Include step-by-step SMTP configuration with Gmail app password setup * Add detailed notification agent setup with icons for 13+ services (Discord, Slack, Telegram, etc.) - Significantly expand VM setup documentation with new Unraid 7.x features: * Add comprehensive VM snapshot management (create, revert, block commit/pull) * Include detailed troubleshooting sections and storage considerations * Expand GPU passthrough and PCI device binding documentation - Enhance system administration guides with detailed upgrade/downgrade procedures: * Add a comprehensive downgrade process via the Downgrade OS tool * Include post-downgrade verification and troubleshooting sections * Add warnings about ZFS compatibility and plugin issues - Add Creative Commons license information to the footer configuration - Include 20+ notification service icons (Discord, Slack, Telegram, Pushover, etc.) - Update Docker guide image and other visual assets
- Clarify WebGUI downgrade tool scope in upgrading-unraid.mdx - Fix broken snapshot link and list formatting in vm-setup.mdx - Correct Parity 2 technical description (Reed-Solomon Q-parity) in array-configuration.mdx - Fix compound adjective hyphenation (XFS‑formatted) - Remove redundant wording and incorrect "Sync" button reference in rebuild steps - Standardize formatting and cross-references in tailscale.mdx
Correct inaccurate "Memory dump" checkbox description - it's not preselected by default. Replace alarmist "permanent crash state" language with accurate explanation of memory-backed vs disk-only snapshots and their trade-offs.
- Fix inconsistent vDisk storage paths in VM conversion docs (use /mnt/user/ instead of /mnt/cache/) - Correct IDE vs SATA bus guidance to change both bus and dev attributes - Replace Force stop recommendation with safer Stop/normal shutdown guidance - Organize notification agent icons in dedicated static directory structure - Fix incorrect rebuild instruction (change "Sync" to "Start" button guidance)
Address critical feedback about content hidden behind tabbed/collapsible elements by reorganizing content as inline sections while maintaining clean layouts. **FAQ & Licensing FAQ:** - Improve anchor linking with heading structure (unique shareable links without cluttering TOC) - Flatten all questions for immediate accessibility - Verify all anchors work correctly **Array Configuration:** - Split monolithic 1,160+ line page into 5 focused pages: Overview, Adding disks, Replacing disks, Removing disks, Health & maintenance - Flatten content from tabs/expandables to inline sections - Retain version-specific tabs only - Update links and redirects for new structure **File Systems:** - Add Unraid 7.2 filesystem content (EXT4, NTFS, exFAT) - Add filesystem comparison table at top of page - Remove tab UI for filesystem introductions - Retain CLI-specific tabs for file system checks/repairs - Consolidate redundant partial files (btrfs/xfs/zfs intro, balance/scrub partials) - Add cross-reference link to ZFS storage page **Shares:** - Convert configurable option tabs to inline sections with descriptive headers - Move "Transferring files from network share" to CLI page (per feedback) - Retain version-specific tabs for 6.12+ vs 6.11 differences - Update links for new content location **Cache Pools:** - Remove tab UI, convert to inline sections - Delete "Backing up cache pool" section (redundant with move operations, per feedback) - Retain version-specific guidance as inline notes - Improve content flow with clear section headers **Unclean Shutdowns:** - Flatten tabbed VM configuration to inline sections - Expand Windows VM configuration with detailed step-by-step instructions - Add comprehensive timeout configuration tables - Enhance shutdown sequence explanations **Additional improvements:** - Improve CLI documentation with network file transfer section - Enhance VM setup documentation accessibility - Update Apple Time Machine style/formatting - Add ZFS storage cross-references - Apply CodeRabbit configuration file improvements - Reduce excessive bold text across pages for better visual hierarchy (maintain content substance)
- Changed import path for sidebar sorting utility from `sitebar-semver-sort.js` to `sidebar-semver-sort.js`. - Removed outdated `sitebar-semver-sort` TypeScript definition and JavaScript implementation. - Updated various documentation files for consistency, including fixing minor grammatical issues and improving formatting for better readability. - Adjusted links in the Docusaurus configuration to point to the new overview page for managing storage arrays.
- Changed the maximum heading level for the table of contents from 2 to 3 to improve navigation. - Removed the outdated index section to streamline the FAQ content and enhance readability.
…bility - Changed table of contents maximum heading level from 2 to 3 for better organization. - Removed outdated index sections from the FAQ to streamline content and enhance user experience. - Improved overall clarity and accessibility of the FAQ and Licensing FAQ sections.
- Removed outdated redirect entries in docusaurus.config.ts for clarity. - Enhanced API documentation with consistent formatting and improved readability across multiple files. - Updated CLI and API key management guides to reflect best practices and streamline user experience. - Improved overall structure and accessibility of various documentation sections, including OIDC provider setup and array management. - Minor editorial fixes and adjustments to ensure consistency in terminology and formatting.
- Updated redirect paths in docusaurus.config.ts to point to the new overview page for array management. - Improved API documentation formatting and consistency across multiple files. - Adjusted image paths in ZFS storage documentation to reference the correct assets folder. - Added markdown linting comments for better formatting in various Docker container management guides. - Removed outdated images related to ZFS storage to clean up the repository.
- Adjusted image paths in the ZFS storage documentation across multiple languages to reference the correct assets folder. - Ensured consistency in image references for better accessibility and organization of documentation.
- Corrected formatting of the eMMC support section in the release notes. - Ensured consistent use of backslashes in configuration options for clarity.
- Changed the tagline in docusaurus.config.ts for clarity. - Updated favicon path to use .ico format. - Ensured consistent use of backslashes in release notes for package versions.
- Standardized section headings for consistency across various settings pages. - Added detailed instructions for WiFi setup, including initial requirements and limitations. - Enhanced RAIDZ expansion documentation with step-by-step guidance and important notes. - Clarified BTRFS and ZFS pool management instructions, including adding disks and changing RAID levels. - Improved formatting and readability throughout the documentation for better user experience.
- Replaced outdated image reference in the ZFS storage documentation with a new image for improved clarity and accuracy.
- Updated Node.js version in .nvmrc to 24.11.1 for compatibility. - Added 'i18n/' to .remarkignore to exclude internationalization files from linting. - Integrated remarkComment plugin into .remarkrc.mjs for enhanced comment handling. - Adjusted docusaurus.config.ts to include markdown hooks for broken link warnings. - Updated package dependencies to latest versions for improved performance and security. - Fixed sidebar sorting logic to sort items in descending order. - Updated GitHub Actions workflows to use the latest setup-node action and improved error handling for linting. - Enhanced various documentation files for clarity, including API usage, licensing FAQs, and troubleshooting guides. - Removed outdated references and improved formatting across multiple language files.
…mentation - Moved markdown hooks under customFields in docusaurus.config.ts for better organization. - Revised the licensing FAQ to clarify installation methods for license key files, including detailed steps for WebGUI, network share, and USB flash drive installations, enhancing user guidance and accessibility.
- Moved markdown hooks directly under the markdown key for improved clarity and organization, removing the unnecessary customFields wrapper.
## Summary - Move the two most common internal-boot troubleshooting questions to the top of the Internal Boot FAQ. - Tighten FAQ wording, including UEFI boot-order guidance and Secure Boot remediation language. - Replace duplicated troubleshooting bullets in the onboarding flow with a link to the Internal Boot FAQ. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Consolidated and reorganized setup troubleshooting content for improved guidance and discoverability * Enhanced guidance on BIOS/UEFI boot order and Secure Boot handling * Clarified attached device count rules and that licensing works regardless of boot method * Restructured Internal Boot and TPM FAQs for clearer, reordered answers and improved in-page navigation/anchors * Minor formatting tweaks for clearer UI breadcrumb emphasis <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Before Submitting This PR, Please Ensure You Have Completed The Following: 1. [ ] Are internal links to wiki documents using [relative file links](https://docusaurus.io/docs/markdown-features/links)? 2. [ ] Are all new documentation files lowercase, with dash separated names (ex. unraid-os.mdx)? 3. [ ] Are all assets (images, etc), located in an assets/ subfolder next to the .md/mdx files? 4. [ ] Have you checked to ensure there aren't other open [Pull Requests](../../../pulls) for the same update/change? 5. [ ] Is the build succeeding? <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added video walkthroughs (step-by-step videos) for setting up and converting to internal boot, including embedded videos and external links. * Updated 7.3.0 release notes to call out two known issues: non-encrypted XFS pools may fail to mount, and formatting XFS on 4Kn drives can cause newly formatted volumes not to mount after fixes. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
- also fix some SSR issues Before Submitting This PR, Please Ensure You Have Completed The Following: 1. [ ] Are internal links to wiki documents using [relative file links](https://docusaurus.io/docs/markdown-features/links)? 2. [ ] Are all new documentation files lowercase, with dash separated names (ex. unraid-os.mdx)? 3. [ ] Are all assets (images, etc), located in an assets/ subfolder next to the .md/mdx files? 4. [ ] Have you checked to ensure there aren't other open [Pull Requests](../../../pulls) for the same update/change? 5. [ ] Is the build succeeding? <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Responsive video embed component for optimized viewing across screen sizes. * Variable font added and global typography enhancements. * Improved theme persistence and synchronization across embedded content and iframes. * **Documentation** * Development setup updated to use pnpm and Node 22+. * Embedded instructional videos standardized and updated across languages. * **Chores** * CI workflow and local scripts switched to pnpm; workspace and ignore rules updated. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary - replace several default Docusaurus theme icons with Tabler-based overrides and update the iframe back arrow - refine dark theme, footer, and DocSearch styling to better match the Unraid docs look and update the dark theme-color metadata - render footer copyright years dynamically across localized footers and ignore the local `.gstack/` directory ## Testing - `pnpm run test:run` - `pnpm run lint` - passes, but Docusaurus reports pre-existing broken links to `warn/` in translated pages and one pre-existing broken anchor under SMART reports <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Many new UI icons with a unified icon wrapper; dynamic footer shows the current year; new floating feedback widget; responsive embed accepts optional class overrides. * **Style** * Dark-mode meta/color tweak and refined menu/dropdown caret and search/external-link visuals; several theme CSS improvements for visual consistency. * **Chores** * Added Tabler Icons React package; updated ignore rules. * **Documentation** * Added validation guidance file. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…#408) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@tsconfig/docusaurus](https://redirect.github.com/tsconfig/bases) ([source](https://redirect.github.com/tsconfig/bases/tree/HEAD/bases)) | [`^2.0.7` → `^2.0.9`](https://renovatebot.com/diffs/npm/@tsconfig%2fdocusaurus/2.0.9/2.0.9) |  |  | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/unraid/docs). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS4xMSIsInVwZGF0ZWRJblZlciI6IjQzLjY2LjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [pnpm/action-setup](https://redirect.github.com/pnpm/action-setup) | action | major | `v4` → `v5` | --- ### Release Notes <details> <summary>pnpm/action-setup (pnpm/action-setup)</summary> ### [`v5`](https://redirect.github.com/pnpm/action-setup/compare/v4...v5) [Compare Source](https://redirect.github.com/pnpm/action-setup/compare/v4...v5) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/unraid/docs). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [glob](https://redirect.github.com/isaacs/node-glob) | [`^11.1.0` → `^13.0.6`](https://renovatebot.com/diffs/npm/glob/11.1.0/13.0.6) |  |  | --- ### Release Notes <details> <summary>isaacs/node-glob (glob)</summary> ### [`v13.0.6`](https://redirect.github.com/isaacs/node-glob/compare/v13.0.5...v13.0.6) [Compare Source](https://redirect.github.com/isaacs/node-glob/compare/v13.0.5...v13.0.6) ### [`v13.0.5`](https://redirect.github.com/isaacs/node-glob/compare/v13.0.4...v13.0.5) [Compare Source](https://redirect.github.com/isaacs/node-glob/compare/v13.0.4...v13.0.5) ### [`v13.0.4`](https://redirect.github.com/isaacs/node-glob/compare/v13.0.3...v13.0.4) [Compare Source](https://redirect.github.com/isaacs/node-glob/compare/v13.0.3...v13.0.4) ### [`v13.0.3`](https://redirect.github.com/isaacs/node-glob/compare/v13.0.2...782e3a74b42d8f71deca7b4b74cea17a600e59d2) [Compare Source](https://redirect.github.com/isaacs/node-glob/compare/v13.0.2...v13.0.3) ### [`v13.0.2`](https://redirect.github.com/isaacs/node-glob/compare/v13.0.1...2135b0c3580caf6330e28dedb2d57cea75f15154) [Compare Source](https://redirect.github.com/isaacs/node-glob/compare/v13.0.1...v13.0.2) ### [`v13.0.1`](https://redirect.github.com/isaacs/node-glob/compare/v13.0.0...v13.0.1) [Compare Source](https://redirect.github.com/isaacs/node-glob/compare/v13.0.0...v13.0.1) ### [`v13.0.0`](https://redirect.github.com/isaacs/node-glob/compare/v12.0.0...v13.0.0) [Compare Source](https://redirect.github.com/isaacs/node-glob/compare/v12.0.0...v13.0.0) ### [`v12.0.0`](https://redirect.github.com/isaacs/node-glob/compare/v11.1.0...v12.0.0) [Compare Source](https://redirect.github.com/isaacs/node-glob/compare/v11.1.0...v12.0.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/unraid/docs). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xNi4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…uidance (unraid#429) ## Summary - Replace "flash device" with "boot device" in user-facing prose to match the 7.3+ WebGUI labeling. - Add reusable partials for USB drive brand/counterfeit guidance and the "Boot device vs Flash" version note. - Update GUID, licensing, and troubleshooting sections with consistent copy and cross-links. - Product-literal names (USB Flash Creator, `flash` share) are unchanged. ## Files touched (24) Terminology updates across getting-started, system-administration, troubleshooting, and manage-storage docs. Two new partials: - `flash-drive-selection-guidance.mdx` — brand recommendations and counterfeit PSA - `webgui-boot-device-labels.mdx` — explains Boot device (7.3+) vs Flash (older) labels ## Notes for reviewers - All existing anchors and URL slugs are preserved (e.g. `changing-the-flash-device.mdx`, `#choosing-a-usb-flash-drive`). - No build/config/dependency changes. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Standardized “boot device” terminology across guides for consistency and clearer instructions * Added guidance on choosing reliable boot media, counterfeit awareness, and community-recommended options * Added targeted callouts/anchors and a new subsection for boot-media selection guidance * Updated WebGUI label references, image captions, and compatibility notes for Unraid 7.3.0+ * Clarified recovery, replacement, backup, password-reset, CLI examples, and licensing FAQ wording <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1213589838099743 --------- Co-authored-by: grizzlechips <zach@zachtuttle.com>
## Summary - replace the existing Algolia reindex action with the direct crawler API flow captured from the dashboard HAR - resolve the crawler dynamically by name and trigger reindexing with crawler-specific credentials only - document the exact GitHub secrets and optional variables needed for the workflow ## Validation - parsed `.github/workflows/algolia-reindex.yml` successfully with Ruby YAML - reviewed the workflow and README diff directly - did not run the full build because this repo’s AGENTS.md explicitly says not to use it for routine validation ## Notes - defaults come from the HAR and current repo config: app `JUYLFQHE7W`, crawler `unraid` - the workflow keeps `workflow_dispatch` and `workflow_call` support while adding automatic runs for content changes on `main` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added guide documenting the automated search index refresh workflow, including configuration variables and triggering conditions. * **Chores** * Improved search index reliability through enhanced workflow with automatic triggering on documentation updates and robust error handling. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary - explain how to restore a flash backup when the server uses internal boot - document that users should restore to USB first, then switch to internal boot via the onboarding wizard - clarify that users do not manually place backup files into the internal boot partition ## Validation - ran `git diff --check` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added detailed instructions for restoring flash backups to internal boot, including steps to boot from the restored USB drive and use the Onboarding Wizard to complete the internal boot configuration switch with automatic boot configuration copying. * Added FAQ entry clarifying flash backup compatibility with internal boot and proper restoration procedures to avoid manual file copying. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary - add a new Unraid Account walkthrough for updating the billing address shown on invoice PDFs - update the instructions to match the current order confirmation and Manage Purchases -> Orders flow - keep only the current three screenshots, crop them to the relevant UI, circle the Update Address target, and redact sensitive values ## Testing - reviewed the new MDX page content - verified only the three current walkthrough screenshots remain under `static/img/unraid-account` - used targeted OCR checks to confirm redacted personal info and activation-code text no longer read back from the images <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added comprehensive guide for updating your billing address in the Unraid account * Step-by-step instructions for accessing address updates from order confirmation or account management * Details on modifying your billing address through the customer portal * Troubleshooting guidance for common scenarios <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Before Submitting This PR, Please Ensure You Have Completed The Following: 1. [ ] Are internal links to wiki documents using [relative file links](https://docusaurus.io/docs/markdown-features/links)? 2. [ ] Are all new documentation files lowercase, with dash separated names (ex. unraid-os.mdx)? 3. [ ] Are all assets (images, etc), located in an assets/ subfolder next to the .md/mdx files? 4. [x] Have you checked to ensure there aren't other open [Pull Requests](../../../pulls) for the same update/change? 5. [ ] Is the build succeeding? <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Corrected a spelling error in the "Application Server" section of the getting started guide to improve documentation clarity and accuracy. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Made-with: Cursor
There was a problem hiding this comment.
Actionable comments posted: 15
🧹 Nitpick comments (6)
i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx (1)
63-63: Optional: keep German wording consistent with the new boot-drive page.The link points to
secure-your-boot-drive, but text still says “Flash-Laufwerk.” Consider aligning wording.Suggested wording tweak
-Bevor Sie installieren, sollten Sie in Erwägung ziehen, Ihr Flash-Laufwerk zu sichern, um Ihre Konfiguration zu schützen. Siehe [Sichern Sie Ihr Flash-Laufwerk](/unraid-os/system-administration/secure-your-server/secure-your-boot-drive/) für Sicherungsanweisungen. +Bevor Sie installieren, sollten Sie in Erwägung ziehen, Ihr Boot-Gerät zu sichern, um Ihre Konfiguration zu schützen. Siehe [Sichern Sie Ihr Boot-Gerät](/unraid-os/system-administration/secure-your-server/secure-your-boot-drive/) für Sicherungsanweisungen.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx` at line 63, Replace the inconsistent German term "Flash-Laufwerk" in the sentence that links to /unraid-os/system-administration/secure-your-server/secure-your-boot-drive/ with the wording used on the new boot-drive page (e.g., "Boot-Laufwerk" or the exact phrase used on that page) so the link text and target are consistent; update the sentence "Bevor Sie installieren, sollten Sie in Erwägung ziehen, Ihr Flash-Laufwerk zu sichern..." to use the matched term and ensure the link anchor text remains intact.i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx (1)
55-55: Optional: align Spanish link text with the new “boot drive” route.The destination was updated to
secure-your-boot-drive, but the anchor text still says “unidad flash.” Consider matching terminology for consistency.Suggested wording tweak
-Antes de instalar, considera realizar una copia de seguridad de tu flash para proteger tu configuración. Consulta [Asegura tu unidad flash](/unraid-os/system-administration/secure-your-server/secure-your-boot-drive/) para obtener orientación sobre copias de seguridad. +Antes de instalar, considera realizar una copia de seguridad de tu dispositivo de arranque para proteger tu configuración. Consulta [Asegura tu dispositivo de arranque](/unraid-os/system-administration/secure-your-server/secure-your-boot-drive/) para obtener orientación sobre copias de seguridad.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx` at line 55, The link anchor text still reads “Asegura tu unidad flash” but the route was changed to secure-your-boot-drive; update the anchor text to match the new terminology (e.g., “Asegura tu unidad de arranque” or “Asegura tu boot drive”) in the sentence containing the link so the visible text aligns with the destination; locate the sentence with "Asegura tu unidad flash" and replace that phrase while keeping the existing link target intact.docs/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx (1)
146-164: Inconsistent indentation in checklist items.The checklist items have a leading space before
✅on continuation lines (e.g., line 147:✅ Configure...). This may cause unexpected rendering in some Markdown processors.Proposed fix - align indentation
✅ Set the USB flash drive as the primary boot device.\ - ✅ Configure the storage controller to **%%AHCI|ahci%%** mode with SATA connections.\ - ✅ Set the controller to **%%HBA mode|hba-mode%%** (not **%%RAID|raid%%**).\ - ✅ Disable **Secure Boot** as it is not supported by Unraid OS. +✅ Configure the storage controller to **%%AHCI|ahci%%** mode with SATA connections.\ +✅ Set the controller to **%%HBA mode|hba-mode%%** (not **%%RAID|raid%%**).\ +✅ Disable **Secure Boot** as it is not supported by Unraid OS.Apply similar changes to lines 153-154 and 160-163.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx` around lines 146 - 164, The checklist items in the MDX have inconsistent leading spaces before the check emoji (e.g., lines with " ✅ Configure the storage controller...", " ✅ Enable **%%IOMMU|iommu%%**...", and the Troubleshooting list items like " ✅ Disabling USB 2.0/3.0 support."), which can break rendering; remove the extra leading space so each line starts directly with "✅" to align indentation for items like the storage controller line, the Advanced Settings IOMMU/hvm lines, and all Troubleshooting checklist lines.docs/unraid-os/system-administration/secure-your-server/secure-your-boot-drive.mdx (1)
41-45: Make the restore action explicit in USB Creator.Line 44 should name the Use custom option explicitly so users can reliably restore from the backup ZIP.
🧭 Proposed wording improvement
-If you need to recreate your boot device, use this backup with the [USB Creator tool](https://unraid.net/download). +If you need to recreate your boot device, use this backup with the [USB Creator tool](https://unraid.net/download) via the **Use custom** option.Based on learnings: Unraid's flash backup feature creates complete installation ZIP files compatible with the USB Flash Creator's "Use custom" option for restoring to new flash devices.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/unraid-os/system-administration/secure-your-server/secure-your-boot-drive.mdx` around lines 41 - 45, Update the restore instruction to explicitly name the USB Flash Creator's "Use custom" option so users know exactly how to restore the backup ZIP; change the sentence that currently says "use this backup with the USB Creator tool" to something like "use the USB Flash Creator's 'Use custom' option to restore this backup ZIP" and ensure mentions of "backup ZIP", "USB Flash Creator", and the "Use custom" option are clear and consistent (look for the existing phrasing referencing the USB Creator tool and replace it)..github/workflows/algolia-reindex.yml (1)
51-62: Consider pagination if crawler count exceeds 100.The API call uses
limit=100. If the Algolia account has more than 100 crawlers, the target crawler may not appear in the first page. This is unlikely for most setups but worth noting if the account grows.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/algolia-reindex.yml around lines 51 - 62, The current call that populates response using curl with "limit=100" may miss crawlers beyond the first page; update the logic that builds response and extracts crawler_id (variables response and crawler_id, and the jq selection using ALGOLIA_CRAWLER_NAME) to handle pagination: loop/fetch additional pages (or follow next-page cursor) until either the desired crawler name is found or no more pages remain, aggregating results before running the jq filter, and keep using the same jq expression '.data[] | select(.name == $crawler_name) | .id' to extract the id once the crawler is discovered.src/components/ResponsiveEmbed/index.tsx (1)
40-48: Consider lazy-loading embeds by default.Adding
loading="lazy"on the iframe would reduce initial page cost for docs with many embeds.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/components/ResponsiveEmbed/index.tsx` around lines 40 - 48, The iframe in the ResponsiveEmbed component should lazy-load to reduce initial page cost; update the iframe element inside ResponsiveEmbed (the JSX that spreads credentialless and uses className={iframeClasses}, src, title, allow, referrerPolicy, allowFullScreen) to include loading="lazy" by default (or add a prop like loading that defaults to "lazy" if you need an override) so embeds are lazy-loaded unless explicitly disabled.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/unraid-os/partials/flash-drive-selection-guidance.mdx`:
- Line 5: The sentence in the paragraph that reads "...These brands usually
offer good quality products but are less targeted by counterfeiters." needs the
compound modifier hyphenated for readability; update that phrase to
"good-quality products" in the same paragraph (the sentence starting "If you are
unsure whether you are buying an authentic product..."), preserving the rest of
the wording and punctuation.
In `@docs/unraid-os/troubleshooting/faq.mdx`:
- Line 340: Update the instruction that currently says to rename the `EFI-`
folder: replace `EFI-` with `EFI~` so the sentence reads that the boot volume
initially contains an `EFI~` folder which should be renamed to `EFI` (remove the
tilde) to enable UEFI boot; modify the text referencing `EFI-` in the sentence
to use `EFI~` and ensure it still instructs to rename it to `EFI`.
In `@docs/unraid-os/troubleshooting/licensing-faq.mdx`:
- Line 93: Update the legacy UI wording in the sentence that references pre-7.3
backup controls: replace the ambiguous “Flash / Flash device” text with the
exact control label “FLASH BACKUP” and revise the path to read “Main → Flash
device → FLASH BACKUP” so the documentation explicitly matches the legacy UI
used in releases before 7.3.0 (edit the sentence containing “Boot Device Backup”
/ “Flash / Flash device” in licensing-faq.mdx).
In
`@docs/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx`:
- Around line 148-150: Step 8 is ambiguous about how the rebuild is triggered in
Normal vs Maintenance Mode; clarify that the **Start** button begins the rebuild
only when not in Maintenance Mode and that when in %%Maintenance
Mode|maintenance-mode%% you must instead manually press the **Sync** button in
the **Main** tab to start the rebuild (i.e., update the wording of Step 8 to
scope it to Normal Mode and keep Step 9 describing the manual **Sync** action in
Maintenance Mode).
In `@guides/paperless-ngx.mdx`:
- Around line 159-160: The CI warnings come from literal URLs in the table
entries for PAPERLESS_TIKA_GOTENBERG_ENDPOINT and PAPERLESS_TIKA_ENDPOINT; fix
by replacing the plain URLs with Markdown autolinks (wrap each URL in angle
brackets, e.g. <http://...>) wherever those variables appear in the document
(including the other occurrences referenced), so the URLs are not treated as
literal strings by remark-lint/no-literal-urls.
- Around line 93-102: Update the Paperless-ngx guide section that currently
instructs using Bitnami Redis with "allow empty passwords" and deleting the
template password: replace those steps with secure Redis password setup
instructions—create a strong password in the Bitnami Redis template (do not
delete it), enable password authentication, and show how to configure
Paperless-ngx to use the redis://:PASSWORD@HOST:PORT URL (example placeholder)
in the Paperless config (refer to the redis URL format used by Paperless-ngx).
Also note changing the template field instead of leaving it blank and include a
short note on storing the password securely.
In
`@i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx`:
- Line 268: The MDX contains a literal "\n --" sequence in the sentence
starting "Ab Unraid OS 6.9 beginnt Partition 1..." which will render verbatim;
replace that literal escape with proper MDX formatting (e.g., insert an actual
line break or paragraph break and use an em dash or a new paragraph) so the note
about backing up the flash drive renders correctly; update the string that
contains "Ab Unraid OS 6.9 beginnt Partition 1..." to remove the "\n --" and
format the separator as a real newline/paragraph or "—" instead.
In
`@i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx`:
- Line 272: Replace the escaped sequence "\--" at the start of the line
containing "\-- Siempre [respalda tu unidad flash]..." with a proper em-dash or
an unescaped dash; locate the line with the literal text "\-- Siempre [respalda
tu unidad flash]" and change it to "— Siempre [respalda tu unidad flash]..." (or
simply remove the backslash to use "-- Siempre...") so the em-dash renders
correctly in the FAQ content.
In
`@i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx`:
- Line 272: The bullet contains a malformed literal sequence "\n --"; replace
that with proper Markdown by splitting into two lines or making the second part
its own bullet — e.g. end the sentence after "style de partition." then on the
next line add a new Markdown sentence or list item starting with "-- Toujours
[sauvegarder votre clé USB]..." so the link remains intact and the output
renders correctly; locate the exact bullet text "À partir d'Unraid OS 6.9, la
partition 1 commence..." and update it accordingly.
In
`@i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx`:
- Line 53: The embed title attribute currently reads title="Loom walkthrough:
Unraid licensing FAQ" in the document metadata; replace that English string with
a Chinese translation (e.g., title="Loom 演示:Unraid 授权常见问题") so the page
metadata/localized embed title matches the rest of the Chinese content—update
the title="..." value accordingly in the file where that attribute appears.
In `@src/components/ResponsiveEmbed/index.tsx`:
- Line 41: In ResponsiveEmbed's iframe JSX, remove the spread hack `{...{
credentialless: "" }}` and set the credentialless attribute directly on the
iframe element (either as `credentialless` for boolean usage or
`credentialless=""` if you prefer an explicit empty string) where the iframe
with `iframeClasses` is defined; update the iframe JSX in the ResponsiveEmbed
component accordingly so props use normal typing instead of the spread object.
In `@src/css/custom.css`:
- Around line 158-164: The stylelint failure is caused by the text-rendering
property using "optimizeLegibility" (camelCase) in the css rule for the html,
body selectors and another occurrence; change the value to the expected
lowercase form "optimizelegibility" wherever text-rendering: optimizeLegibility
appears (e.g., in the html, body rule and the second occurrence around the
footer/body styles) so the stylesheet conforms to the configured rule.
In `@src/theme/Footer/Copyright/index.tsx`:
- Around line 5-11: The COPYRIGHT_YEAR_PATTERN currently is non-global so
FooterCopyright's replace only updates the first "2005-YYYY" occurrence; change
COPYRIGHT_YEAR_PATTERN to a global regex (e.g., /2005-\d{4}/g) and keep the
replace chain that uses CURRENT_YEAR_TOKEN_PATTERN and COPYRIGHT_YEAR_PATTERN so
all legacy year ranges in the resolvedCopyright string are replaced with
`2005-${currentYear}`.
In `@src/theme/Layout/FeedbackWidget.tsx`:
- Around line 9-17: FOCUSABLE_SELECTOR currently includes 'iframe', which allows
Tab/Escape to move focus into the iframe and escape the modal trap; remove
'iframe' from FOCUSABLE_SELECTOR and instead treat iframes as non-focusable for
the trap, and add a focus management fix: update the component that implements
the trap (the keydown handler/onKeyDown block and the focus-trap logic used
around lines 51-83 and 153-218) to listen for focusin events and if
document.activeElement is an iframe move focus back into the modal (e.g., focus
the first or last focusable element found by the existing focus-finding
helpers), and ensure the global keydown/close logic still runs by keeping the
Escape/Tab handling in the component-level handlers; in short—remove 'iframe'
from FOCUSABLE_SELECTOR and add a focusin handler that redirects iframe focus
back into the modal (using the same helper functions the trap already uses) so
Tab and Escape remain handled by the parent.
In `@src/theme/Layout/ThemeSync.tsx`:
- Around line 50-66: The code currently writes the embed's resolved theme to the
shared DOCUSAURUS_THEME_STORAGE_KEY inside setCurrentTheme, which can overwrite
the user's global docs preference; change the logic so that when running inside
an iframe/embed you persist to the iframe-local THEME_STORAGE_KEY instead of
DOCUSAURUS_THEME_STORAGE_KEY, while keeping the existing
dispatchStorageChangeEvent behavior for whichever key you write. Detect embed
context (e.g. window.self !== window.top or an existing isIframe/isEmbed flag)
and in the try block call window.localStorage.setItem(THEME_STORAGE_KEY, theme)
and dispatchStorageChangeEvent(THEME_STORAGE_KEY, oldValue, theme) for iframes,
otherwise keep using DOCUSAURUS_THEME_STORAGE_KEY as before with
dispatchStorageChangeEvent(DOCUSAURUS_THEME_STORAGE_KEY, oldValue, theme).
---
Nitpick comments:
In @.github/workflows/algolia-reindex.yml:
- Around line 51-62: The current call that populates response using curl with
"limit=100" may miss crawlers beyond the first page; update the logic that
builds response and extracts crawler_id (variables response and crawler_id, and
the jq selection using ALGOLIA_CRAWLER_NAME) to handle pagination: loop/fetch
additional pages (or follow next-page cursor) until either the desired crawler
name is found or no more pages remain, aggregating results before running the jq
filter, and keep using the same jq expression '.data[] | select(.name ==
$crawler_name) | .id' to extract the id once the crawler is discovered.
In
`@docs/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx`:
- Around line 146-164: The checklist items in the MDX have inconsistent leading
spaces before the check emoji (e.g., lines with " ✅ Configure the storage
controller...", " ✅ Enable **%%IOMMU|iommu%%**...", and the Troubleshooting list
items like " ✅ Disabling USB 2.0/3.0 support."), which can break rendering;
remove the extra leading space so each line starts directly with "✅" to align
indentation for items like the storage controller line, the Advanced Settings
IOMMU/hvm lines, and all Troubleshooting checklist lines.
In
`@docs/unraid-os/system-administration/secure-your-server/secure-your-boot-drive.mdx`:
- Around line 41-45: Update the restore instruction to explicitly name the USB
Flash Creator's "Use custom" option so users know exactly how to restore the
backup ZIP; change the sentence that currently says "use this backup with the
USB Creator tool" to something like "use the USB Flash Creator's 'Use custom'
option to restore this backup ZIP" and ensure mentions of "backup ZIP", "USB
Flash Creator", and the "Use custom" option are clear and consistent (look for
the existing phrasing referencing the USB Creator tool and replace it).
In
`@i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx`:
- Line 63: Replace the inconsistent German term "Flash-Laufwerk" in the sentence
that links to
/unraid-os/system-administration/secure-your-server/secure-your-boot-drive/ with
the wording used on the new boot-drive page (e.g., "Boot-Laufwerk" or the exact
phrase used on that page) so the link text and target are consistent; update the
sentence "Bevor Sie installieren, sollten Sie in Erwägung ziehen, Ihr
Flash-Laufwerk zu sichern..." to use the matched term and ensure the link anchor
text remains intact.
In
`@i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx`:
- Line 55: The link anchor text still reads “Asegura tu unidad flash” but the
route was changed to secure-your-boot-drive; update the anchor text to match the
new terminology (e.g., “Asegura tu unidad de arranque” or “Asegura tu boot
drive”) in the sentence containing the link so the visible text aligns with the
destination; locate the sentence with "Asegura tu unidad flash" and replace that
phrase while keeping the existing link target intact.
In `@src/components/ResponsiveEmbed/index.tsx`:
- Around line 40-48: The iframe in the ResponsiveEmbed component should
lazy-load to reduce initial page cost; update the iframe element inside
ResponsiveEmbed (the JSX that spreads credentialless and uses
className={iframeClasses}, src, title, allow, referrerPolicy, allowFullScreen)
to include loading="lazy" by default (or add a prop like loading that defaults
to "lazy" if you need an override) so embeds are lazy-loaded unless explicitly
disabled.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: eb4f3c6b-11dc-47cd-861f-d8af996de20c
⛔ Files ignored due to path filters (90)
guides/images/images/add-another-path-port-variable-button.pngis excluded by!**/*.pngguides/images/images/add-configuration-dialog-box.pngis excluded by!**/*.pngguides/images/images/all-variables-shown-in-paperless-template.pngis excluded by!**/*.pngguides/images/images/apps-search-paperless-results.pngis excluded by!**/*.pngguides/images/images/archive-folder-pdf.pngis excluded by!**/*.pngguides/images/images/bitnami-redis-community-apps.pngis excluded by!**/*.pngguides/images/images/clean-logs-after-fixing.pngis excluded by!**/*.pngguides/images/images/consume-folder-in-finder.pngis excluded by!**/*.pngguides/images/images/consume-subfolder-created.pngis excluded by!**/*.pngguides/images/images/consume-subfolder-network-share.pngis excluded by!**/*.pngguides/images/images/create-mail-account-gmail.pngis excluded by!**/*.pngguides/images/images/create-tag-from-document.pngis excluded by!**/*.pngguides/images/images/create-tag-motherboard-parent-server.pngis excluded by!**/*.pngguides/images/images/create-tag-server.pngis excluded by!**/*.pngguides/images/images/creating-share-in-unraid-called-paperless.pngis excluded by!**/*.pngguides/images/images/docker-tab-all-containers-running.pngis excluded by!**/*.pngguides/images/images/document-with-server-tag.pngis excluded by!**/*.pngguides/images/images/documents-after-email-import.pngis excluded by!**/*.pngguides/images/images/documents-with-multiple-tags.pngis excluded by!**/*.pngguides/images/images/documents-with-tag-badges.pngis excluded by!**/*.pngguides/images/images/gotenberg-template.pngis excluded by!**/*.pngguides/images/images/mail-rule-setup.pngis excluded by!**/*.pngguides/images/images/mail-settings-process-mail-button.pngis excluded by!**/*.pngguides/images/images/making-share-exportable-and-setting-permissions.pngis excluded by!**/*.pngguides/images/images/nvidia-driver-community-apps.pngis excluded by!**/*.pngguides/images/images/nvidia-driver-settings-page.pngis excluded by!**/*.pngguides/images/images/ollama-community-apps.pngis excluded by!**/*.pngguides/images/images/open-webui-community-apps.pngis excluded by!**/*.pngguides/images/images/open-webui-first-setup.pngis excluded by!**/*.pngguides/images/images/open-webui-ollama-url-template.pngis excluded by!**/*.pngguides/images/images/open-webui-pulling-minicpmv.pngis excluded by!**/*.pngguides/images/images/open-webui-pulling-qwen3.pngis excluded by!**/*.pngguides/images/images/originals-folder-docx.pngis excluded by!**/*.pngguides/images/images/paperless-ai-chat-document.pngis excluded by!**/*.pngguides/images/images/paperless-ai-community-apps.pngis excluded by!**/*.pngguides/images/images/paperless-ai-dashboard.pngis excluded by!**/*.pngguides/images/images/paperless-ai-port-changed.pngis excluded by!**/*.pngguides/images/images/paperless-ai-port-conflict.pngis excluded by!**/*.pngguides/images/images/paperless-ai-rag-chat.pngis excluded by!**/*.pngguides/images/images/paperless-ai-wizard-classification-options.pngis excluded by!**/*.pngguides/images/images/paperless-ai-wizard-connection.pngis excluded by!**/*.pngguides/images/images/paperless-ai-wizard-ollama-settings.pngis excluded by!**/*.pngguides/images/images/paperless-consumer-variables.pngis excluded by!**/*.pngguides/images/images/paperless-dashboard-first-start.pngis excluded by!**/*.pngguides/images/images/paperless-django-admin-token.pngis excluded by!**/*.pngguides/images/images/paperless-document-id-in-url.pngis excluded by!**/*.pngguides/images/images/paperless-documents-with-ai-tags.pngis excluded by!**/*.pngguides/images/images/paperless-full-ai-stack.pngis excluded by!**/*.pngguides/images/images/paperless-gotenberg-tika-stack.pngis excluded by!**/*.pngguides/images/images/paperless-gpt-community-apps.pngis excluded by!**/*.pngguides/images/images/paperless-gpt-ocr-results.pngis excluded by!**/*.pngguides/images/images/paperless-gpt-template-ocr-tag.pngis excluded by!**/*.pngguides/images/images/paperless-gpt-template-top.pngis excluded by!**/*.pngguides/images/images/paperless-gpt-template-vision.pngis excluded by!**/*.pngguides/images/images/paperless-postgres-redis.pngis excluded by!**/*.pngguides/images/images/paperless-settings-django-admin.pngis excluded by!**/*.pngguides/images/images/paperless-sign-up-page.pngis excluded by!**/*.pngguides/images/images/paperless-template-media-consumption-export-paths.pngis excluded by!**/*.pngguides/images/images/paperless-template-redis-address-highlighted.pngis excluded by!**/*.pngguides/images/images/paperless-tika-gotenberg-variables.pngis excluded by!**/*.pngguides/images/images/paperless-word-doc-uploaded.pngis excluded by!**/*.pngguides/images/images/postgres-16-unraid-docker-template-default.pngis excluded by!**/*.pngguides/images/images/postgres-template-password-user-database-filled-in.pngis excluded by!**/*.pngguides/images/images/redis-authentication-error-in-logs.pngis excluded by!**/*.pngguides/images/images/redis-container-template-delete-password.pngis excluded by!**/*.pngguides/images/images/tags-list-with-counts.pngis excluded by!**/*.pngguides/images/images/tags-page-empty.pngis excluded by!**/*.pngguides/images/images/three-paperless-folders-created.pngis excluded by!**/*.pngguides/images/images/tika-pull-error.pngis excluded by!**/*.pngguides/images/images/tika-repository-close-up.pngis excluded by!**/*.pngguides/images/images/tika-template-fixed-repository.pngis excluded by!**/*.pngguides/images/images/view-of-first-uploaded-document.pngis excluded by!**/*.pngguides/images/images/word-doc-preview-in-paperless.pngis excluded by!**/*.pngpackage-lock.jsonis excluded by!**/package-lock.jsonpnpm-lock.yamlis excluded by!**/pnpm-lock.yamlstatic/img/icons/tabler-chevron-up.svgis excluded by!**/*.svgstatic/img/icons/tabler-external-link.svgis excluded by!**/*.svgstatic/img/icons/tabler-search.svgis excluded by!**/*.svgstatic/img/icons/tabler-x.svgis excluded by!**/*.svgstatic/img/move-license-to-tpm-replace-key.pngis excluded by!**/*.pngstatic/img/onboarding_step1.pngis excluded by!**/*.pngstatic/img/onboarding_step2.pngis excluded by!**/*.pngstatic/img/onboarding_step3a.pngis excluded by!**/*.pngstatic/img/onboarding_step3b.pngis excluded by!**/*.pngstatic/img/onboarding_step4.pngis excluded by!**/*.pngstatic/img/onboarding_step5.pngis excluded by!**/*.pngstatic/img/onboarding_step6.pngis excluded by!**/*.pngstatic/img/unraid-account/update-billing-address-new-step-1.pngis excluded by!**/*.pngstatic/img/unraid-account/update-billing-address-new-step-2.pngis excluded by!**/*.pngstatic/img/unraid-account/update-billing-address-new-step-3.pngis excluded by!**/*.png
📒 Files selected for processing (119)
.github/workflows/algolia-reindex.yml.github/workflows/pr-lint.yml.gitignore.nvmrc.remarkignoreAGENTS.mdREADME.mddocs/unraid-account/update-billing-address-on-file.mdxdocs/unraid-connect/automated-flash-backup.mdxdocs/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdxdocs/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdxdocs/unraid-os/getting-started/set-up-unraid/configure-your-array.mdxdocs/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdxdocs/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdxdocs/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdxdocs/unraid-os/getting-started/set-up-unraid/internal-boot-faq.mdxdocs/unraid-os/getting-started/what-is-unraid.mdxdocs/unraid-os/partials/flash-drive-selection-guidance.mdxdocs/unraid-os/partials/webgui-boot-device-labels.mdxdocs/unraid-os/release-notes/7.2.4.mddocs/unraid-os/release-notes/7.3.0.mddocs/unraid-os/system-administration/advanced-tools/command-line-interface.mdxdocs/unraid-os/system-administration/advanced-tools/wake-on-lan.mdxdocs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdxdocs/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdxdocs/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdxdocs/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdxdocs/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdxdocs/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdxdocs/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdxdocs/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdxdocs/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdxdocs/unraid-os/system-administration/secure-your-server/secure-your-boot-drive.mdxdocs/unraid-os/system-administration/secure-your-server/security-fundamentals.mdxdocs/unraid-os/system-administration/secure-your-server/user-management.mdxdocs/unraid-os/system-administration/secure-your-server/wireguard.mdxdocs/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdxdocs/unraid-os/troubleshooting/common-issues/data-recovery.mdxdocs/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdxdocs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdxdocs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdxdocs/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdxdocs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdxdocs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdxdocs/unraid-os/troubleshooting/faq.mdxdocs/unraid-os/troubleshooting/licensing-faq.mdxdocs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdxdocs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdxdocs/unraid-os/troubleshooting/tpm-licensing-faq.mdxdocs/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdxdocs/unraid-os/using-unraid-to/manage-storage/array/array-health-and-maintenance.mdxdocs/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array.mdxdocs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdxdocs/unraid-os/using-unraid-to/manage-storage/shares.mdxdocs/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdxdocs/unraid-os/using-unraid-to/run-docker-containers/overview.mdxdocusaurus.config.tsembedding.mdglossary.yamlguides/paperless-ngx.mdxi18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdxi18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdxi18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdxi18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdxi18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdxi18n/de/docusaurus-theme-classic/footer.jsoni18n/en/docusaurus-theme-classic/footer.jsoni18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdxi18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdxi18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdxi18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdxi18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdxi18n/es/docusaurus-theme-classic/footer.jsoni18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdxi18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdxi18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdxi18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdxi18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdxi18n/fr/docusaurus-theme-classic/footer.jsoni18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdxi18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdxi18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdxi18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdxi18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdxi18n/zh/docusaurus-theme-classic/footer.jsoniframe-test.htmlpackage.jsonplugins/structured-data/index.mjspnpm-workspace.yamlsrc/components/ResponsiveEmbed/index.tsxsrc/components/ResponsiveEmbed/styles.module.csssrc/css/custom.csssrc/hooks/useIframe.tssrc/theme/Admonition/Icon/Danger.tsxsrc/theme/Admonition/Icon/Info.tsxsrc/theme/Admonition/Icon/Note.tsxsrc/theme/Admonition/Icon/Tip.tsxsrc/theme/Admonition/Icon/Warning.tsxsrc/theme/Footer/Copyright/index.tsxsrc/theme/Icon/Arrow/index.tsxsrc/theme/Icon/Close/index.tsxsrc/theme/Icon/Copy/index.tsxsrc/theme/Icon/DarkMode/index.tsxsrc/theme/Icon/Edit/index.tsxsrc/theme/Icon/ExternalLink/index.tsxsrc/theme/Icon/Home/index.tsxsrc/theme/Icon/Language/index.tsxsrc/theme/Icon/LightMode/index.tsxsrc/theme/Icon/Menu/index.tsxsrc/theme/Icon/Success/index.tsxsrc/theme/Icon/SystemColorMode/index.tsxsrc/theme/Icon/WordWrap/index.tsxsrc/theme/Icon/shared.tsxsrc/theme/Layout/FeedbackWidget.tsxsrc/theme/Layout/IframeNavigation.tsxsrc/theme/Layout/Provider/index.tsxsrc/theme/Layout/ThemeSync.tsxsrc/theme/Layout/index.tsxwrangler.jsonc
✅ Files skipped from review due to trivial changes (65)
- .gitignore
- .nvmrc
- AGENTS.md
- i18n/fr/docusaurus-theme-classic/footer.json
- i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx
- docs/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx
- docs/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx
- docs/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx
- docs/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx
- docs/unraid-os/system-administration/secure-your-server/user-management.mdx
- docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx
- .remarkignore
- docs/unraid-account/update-billing-address-on-file.mdx
- docs/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx
- docs/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx
- docs/unraid-os/partials/webgui-boot-device-labels.mdx
- i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx
- i18n/es/docusaurus-theme-classic/footer.json
- i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx
- iframe-test.html
- i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx
- i18n/zh/docusaurus-theme-classic/footer.json
- i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx
- i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx
- pnpm-workspace.yaml
- docs/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx
- docs/unraid-os/system-administration/secure-your-server/wireguard.mdx
- docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx
- docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx
- docs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx
- docs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx
- docs/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx
- src/theme/Admonition/Icon/Tip.tsx
- src/theme/Admonition/Icon/Note.tsx
- src/theme/Icon/Edit/index.tsx
- src/theme/Layout/IframeNavigation.tsx
- src/theme/Admonition/Icon/Info.tsx
- docs/unraid-os/getting-started/what-is-unraid.mdx
- docs/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx
- docs/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx
- docs/unraid-os/system-administration/advanced-tools/command-line-interface.mdx
- docs/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx
- docs/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx
- docs/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx
- docs/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx
- docs/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx
- docs/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx
- docs/unraid-os/using-unraid-to/manage-storage/shares.mdx
- docs/unraid-os/using-unraid-to/run-docker-containers/overview.mdx
- docs/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx
- glossary.yaml
- i18n/en/docusaurus-theme-classic/footer.json
- i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx
- embedding.md
- src/theme/Icon/Copy/index.tsx
- wrangler.jsonc
- src/theme/Layout/index.tsx
- docs/unraid-connect/automated-flash-backup.mdx
- docs/unraid-os/getting-started/set-up-unraid/internal-boot-faq.mdx
- src/components/ResponsiveEmbed/styles.module.css
- src/theme/Icon/Language/index.tsx
- docs/unraid-os/troubleshooting/tpm-licensing-faq.mdx
- i18n/de/docusaurus-theme-classic/footer.json
- docs/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx
- i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
- docusaurus.config.ts
docs/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx
Outdated
Show resolved
Hide resolved
Made-with: Cursor
|
The branch is now fully up to date with upstream/main. All 17 merge conflicts have been resolved (boot-device terminology, theme refresh, disk replacement steps, i18n formatting, and src component changes). The PR preview should build cleanly. |
Made-with: Cursor
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (3)
guides/paperless-ngx.mdx (2)
159-160:⚠️ Potential issue | 🟡 MinorResolve remaining
remark-lint/no-literal-urlsviolations.These lines still use literal URLs/email forms and should be converted to Markdown autolinks.
🔧 Suggested patch
-| Variable | PAPERLESS_TIKA_GOTENBERG_ENDPOINT | http://192.168.1.50:3000 | Gotenberg endpoint (used later in this guide) | -| Variable | PAPERLESS_TIKA_ENDPOINT | http://192.168.1.50:9998 | Tika endpoint (used later in this guide) | +| Variable | PAPERLESS_TIKA_GOTENBERG_ENDPOINT | <http://192.168.1.50:3000> | Gotenberg endpoint (used later in this guide) | +| Variable | PAPERLESS_TIKA_ENDPOINT | <http://192.168.1.50:9998> | Tika endpoint (used later in this guide) | @@ -So for example, if your energy company always sends bills from billing@energycompany.com, put that address in the from filter. Paperless will only grab attachments from emails sent by that address. +So for example, if your energy company always sends bills from <mailto:billing@energycompany.com>, put that address in the from filter. Paperless will only grab attachments from emails sent by that address. @@ -The Paperless base URL is the IP address of your Paperless server along with the port. Mine looks like http://10.10.20.70:8000 but yours will be whatever address your Paperless server is on. +The Paperless base URL is the IP address of your Paperless server along with the port. Mine looks like <http://10.10.20.70:8000> but yours will be whatever address your Paperless server is on.Also applies to: 475-475, 651-651
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@guides/paperless-ngx.mdx` around lines 159 - 160, Convert the literal URLs in the environment variable table entries to Markdown autolinks to satisfy remark-lint/no-literal-urls; specifically replace the plain URLs used for PAPERLESS_TIKA_GOTENBERG_ENDPOINT and PAPERLESS_TIKA_ENDPOINT (and the other occurrences around the noted lines) with autolink form <http://...> so the table cells contain markdown autolinks instead of raw literal URLs or email-like text.
242-249:⚠️ Potential issue | 🟠 MajorFix contradictory Redis troubleshooting guidance.
Line 242–249 currently tells users to delete the Redis password, which conflicts with the secure setup in Line 93–102 and will cause misconfiguration for password-protected Redis. Troubleshooting should instead keep Redis auth enabled and correct
PAPERLESS_REDIS.🔧 Suggested patch
-If you forgot to delete the password field in the Redis container template, you'll see this error in the Paperless logs. +If Redis authentication is enabled but the Paperless Redis URL is missing the password (or has the wrong one), you'll see this error in the Paperless logs. @@ -To fix this, go back to the Redis container, edit it, delete the password so the field is completely blank, and apply. Then restart the Paperless container. That should clear the error. +To fix this, keep Redis authentication enabled and verify your `PAPERLESS_REDIS` value uses this format: + +`redis://:your-redis-password@YOUR-UNRAID-IP:6379` + +Then restart the Paperless container and re-check the logs.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@guides/paperless-ngx.mdx` around lines 242 - 249, The troubleshooting section (currently lines referenced as 242–249) incorrectly advises deleting the Redis password and conflicts with the secure setup described earlier (lines referenced as 93–102); update the text to keep Redis auth enabled and instruct users to fix the PAPERLESS_REDIS environment variable instead (e.g., use the redis URL format including the password like redis://:PASSWORD@HOST:PORT/DB or set the correct password in the PAPERLESS_REDIS value), then restart the Paperless container—refer to PAPERLESS_REDIS and the earlier secure Redis configuration when editing this guidance.src/theme/Layout/FeedbackWidget.tsx (1)
9-16:⚠️ Potential issue | 🟠 MajorThe iframe trap is still unresolved, and it blocks keyboard access to the survey.
Line 60 makes the close button both the first and last trapped element, so
Tabnever reaches the embedded survey. If a user clicks into the iframe instead, Line 94 still treats that focus as inside the dialog, so the parent loses itsEscape/Tabhandling. A cross-origin survey iframe cannot provide a reliable modal trap in this shape; please add a keyboard-accessible fallback such as an “open survey in a new tab” control, or move the survey out of the modal.Also applies to: 50-98, 220-232
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/theme/Layout/FeedbackWidget.tsx` around lines 9 - 16, The modal's focus trap in FeedbackWidget makes the close button both the first and last focusable element and treats iframe focus as internal, so Tab never reaches the embedded cross-origin survey; to fix this add a keyboard-accessible fallback (an "Open survey in new tab" button) and adjust the focus-trap logic to not treat iframe focus as inside the dialog. Concretely: add a new focusable control (e.g., openSurveyInNewTab button) inside the FeedbackWidget so there are at least two real tabbable elements, include it in the FOCUSABLE_SELECTOR set so Tab can reach it, and wire it to open the survey URL in a new tab/window; also update the focus management code (the focus-trap handler that queries FOCUSABLE_SELECTOR and checks document.activeElement) to treat document.activeElement.tagName === 'IFRAME' as "outside" the dialog (skip trapping behavior and still allow Escape/tab handling) rather than trying to keep focus inside the modal.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/theme/Layout/ThemeSync.tsx`:
- Around line 63-67: The iframe storage listener in ThemeSync uses the wrong key
and re-reads localStorage instead of using the event payload; update the storage
event handler to listen for THEME_STORAGE_KEY (in addition to or instead of
DOCUSAURUS_THEME_STORAGE_KEY for embeds) and, when matching, use event.newValue
directly to set/apply the theme rather than calling window.localStorage.getItem
again; adjust any logic around dispatchStorageChangeEvent/setting theme so the
embed path correctly responds to THEME_STORAGE_KEY changes.
---
Duplicate comments:
In `@guides/paperless-ngx.mdx`:
- Around line 159-160: Convert the literal URLs in the environment variable
table entries to Markdown autolinks to satisfy remark-lint/no-literal-urls;
specifically replace the plain URLs used for PAPERLESS_TIKA_GOTENBERG_ENDPOINT
and PAPERLESS_TIKA_ENDPOINT (and the other occurrences around the noted lines)
with autolink form <http://...> so the table cells contain markdown autolinks
instead of raw literal URLs or email-like text.
- Around line 242-249: The troubleshooting section (currently lines referenced
as 242–249) incorrectly advises deleting the Redis password and conflicts with
the secure setup described earlier (lines referenced as 93–102); update the text
to keep Redis auth enabled and instruct users to fix the PAPERLESS_REDIS
environment variable instead (e.g., use the redis URL format including the
password like redis://:PASSWORD@HOST:PORT/DB or set the correct password in the
PAPERLESS_REDIS value), then restart the Paperless container—refer to
PAPERLESS_REDIS and the earlier secure Redis configuration when editing this
guidance.
In `@src/theme/Layout/FeedbackWidget.tsx`:
- Around line 9-16: The modal's focus trap in FeedbackWidget makes the close
button both the first and last focusable element and treats iframe focus as
internal, so Tab never reaches the embedded cross-origin survey; to fix this add
a keyboard-accessible fallback (an "Open survey in new tab" button) and adjust
the focus-trap logic to not treat iframe focus as inside the dialog. Concretely:
add a new focusable control (e.g., openSurveyInNewTab button) inside the
FeedbackWidget so there are at least two real tabbable elements, include it in
the FOCUSABLE_SELECTOR set so Tab can reach it, and wire it to open the survey
URL in a new tab/window; also update the focus management code (the focus-trap
handler that queries FOCUSABLE_SELECTOR and checks document.activeElement) to
treat document.activeElement.tagName === 'IFRAME' as "outside" the dialog (skip
trapping behavior and still allow Escape/tab handling) rather than trying to
keep focus inside the modal.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: cb36ed74-95ba-4021-a06c-781c9c2f4b4d
📒 Files selected for processing (10)
docs/unraid-os/partials/flash-drive-selection-guidance.mdxdocs/unraid-os/troubleshooting/faq.mdxdocs/unraid-os/troubleshooting/licensing-faq.mdxdocs/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array.mdxguides/paperless-ngx.mdxsrc/components/ResponsiveEmbed/index.tsxsrc/css/custom.csssrc/theme/Footer/Copyright/index.tsxsrc/theme/Layout/FeedbackWidget.tsxsrc/theme/Layout/ThemeSync.tsx
✅ Files skipped from review due to trivial changes (1)
- docs/unraid-os/partials/flash-drive-selection-guidance.mdx
🚧 Files skipped from review as they are similar to previous changes (3)
- docs/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx
- docs/unraid-os/troubleshooting/faq.mdx
- src/components/ResponsiveEmbed/index.tsx
Resolve conflicts between our CodeRabbit review fixes and upstream changes (boot-device terminology, theme refresh, disk replacement). Our branch retains all upstream content plus the additional review-driven improvements. Made-with: Cursor
Wrap remaining literal URLs/emails in autolinks, fix Redis troubleshooting to match password-enabled setup, fix ThemeSync storage listener for embeds, and add keyboard-accessible survey fallback to FeedbackWidget. Made-with: Cursor
a8fcec0 to
d352877
Compare
Summary
Testing
Summary by CodeRabbit
New Features
Documentation
Build & Infrastructure