{"id":47821927,"url":"https://github.com/unraid/docs","last_synced_at":"2026-04-03T19:12:28.447Z","repository":{"id":167303084,"uuid":"642392687","full_name":"unraid/docs","owner":"unraid","description":"Unraid Documentation","archived":false,"fork":false,"pushed_at":"2026-03-28T18:13:40.000Z","size":41555,"stargazers_count":44,"open_issues_count":9,"forks_count":50,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-03-28T18:31:05.042Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://docs.unraid.net/","language":"MDX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unraid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2023-05-18T13:16:39.000Z","updated_at":"2026-03-28T16:43:28.000Z","dependencies_parsed_at":"2026-01-10T22:03:41.986Z","dependency_job_id":null,"html_url":"https://github.com/unraid/docs","commit_stats":null,"previous_names":["unraid/docs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/unraid/docs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unraid%2Fdocs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unraid%2Fdocs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unraid%2Fdocs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unraid%2Fdocs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unraid","download_url":"https://codeload.github.com/unraid/docs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unraid%2Fdocs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31372199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T17:53:18.093Z","status":"ssl_error","status_checked_at":"2026-04-03T17:53:17.617Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-03T19:12:27.206Z","updated_at":"2026-04-03T19:12:28.440Z","avatar_url":"https://github.com/unraid.png","language":"MDX","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Improved compatibility of back to top link: See: https://github.com/othneildrew/Best-README-Template/pull/73 --\u003e\n\u003ca id=\"readme-top\"\u003e\u003c/a\u003e\n\u003c!--\n*** Thanks for checking out the Best-README-Template. If you have a suggestion\n*** that would make this better, please fork the repo and create a pull request\n*** or simply open an issue with the tag \"enhancement\".\n*** Don't forget to give the project a star!\n*** Thanks again! Now go create something AMAZING! :D\n--\u003e\n\n\u003c!-- PROJECT SHIELDS --\u003e\n\u003c!--\n*** I'm using markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n*** See the bottom of this document for the declaration of the reference variables\n*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.\n*** https://www.markdownguide.org/basic-syntax/#reference-style-links\n--\u003e\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![Docs Status][docs-shield]][docs-url]\n[![Crowdin][crowdin-shield]][crowdin-url]\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/unraid/docs\"\u003e\n    \u003cimg src=\"static/img/unraid-stacked-dark.svg\" alt=\"Unraid Logo\" width=\"120\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eUnraid Documentation\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Source for the official Unraid documentation site.\n    \u003cbr /\u003e\n    \u003ca href=\"https://docs.unraid.net\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://docs.unraid.net\"\u003eView Site\u003c/a\u003e\n    \u0026middot;\n    \u003ca href=\"https://github.com/unraid/docs/issues/new?labels=bug\"\u003eReport Bug\u003c/a\u003e\n    \u0026middot;\n    \u003ca href=\"https://github.com/unraid/docs/issues/new?labels=enhancement\"\u003eRequest Content\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\n[![Unraid Docs Screenshot][product-screenshot]](https://docs.unraid.net)\n\nThis repository powers the public [Unraid Docs](https://docs.unraid.net) site. It contains source content, UI components, and supporting scripts that help the Unraid team publish accurate, localized, and accessible documentation for Unraid OS and connected services.\n\nThe documentation site is built on [Docusaurus 3](https://docusaurus.io/), rendered as a static site, and deployed via GitHub Pages. Remark-based linting, Crowdin integrations, and automated formatting scripts keep Markdown/MDX contributions consistent across the project.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### Built With\n\n* [![Docusaurus][Docusaurus-shield]][Docusaurus-url]\n* [![React][React.js]][React-url]\n* [![TypeScript][TypeScript-shield]][TypeScript-url]\n* [![Remark][Remark-shield]][Remark-url]\n* [![Vitest][Vitest-shield]][Vitest-url]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n\nFollow these steps to work on the docs locally.\n\n### Prerequisites\n\n* Node.js 22 or newer (see the `package.json` `engines` field)\n* pnpm via [Corepack](https://nodejs.org/api/corepack.html)\n* Recommended: [nvm](https://github.com/nvm-sh/nvm) for managing Node versions\n\nInstall or update Node with nvm:\n\n```bash\nnvm install --lts\nnvm use\n```\n\n### Installation\n\n1. Clone the repo\n\n   ```bash\n   git clone https://github.com/unraid/docs.git\n   cd docs\n   ```\n\n2. Install dependencies\n\n   ```bash\n   corepack enable\n   pnpm install\n   ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- USAGE EXAMPLES --\u003e\n## Usage\n\nSpin up a local Docusaurus dev server:\n\n```bash\npnpm start\n```\n\nThe local docs dev server listens on `http://localhost:3001` by default. This keeps local iframe/embed testing aligned with [`iframe-test.html`](iframe-test.html) and other localhost examples in the repo.\n\nPreview specific locales (one at a time):\n\n```bash\npnpm start -- --locale zh\npnpm start -- --locale es\n```\n\nRun Docusaurus lint/build checks:\n\n```bash\npnpm lint\n```\n\nAdditional project scripts:\n\n* Type check TypeScript: `pnpm typecheck`\n* Unit tests (watch): `pnpm test`\n* Single test run (CI): `pnpm test:run`\n* Build production site: `pnpm build`\n* Preview production build: `pnpm serve`\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Algolia Reindex\n\nThe docs search index is refreshed by the GitHub Actions workflow at [`.github/workflows/algolia-reindex.yml`](.github/workflows/algolia-reindex.yml).\n\nThat workflow matches the current Algolia Crawler API flow for this site:\n\n* It looks up crawler `unraid` with `GET https://crawler.algolia.com/api/1/crawlers?name=unraid`\n* It checks crawler details with `GET https://crawler.algolia.com/api/1/crawlers/\u003ccrawler_id\u003e`\n* It triggers `POST https://crawler.algolia.com/api/1/crawlers/\u003ccrawler_id\u003e/reindex`\n\nThe workflow runs automatically on `main` when published docs content changes, and it can also be started manually with **Actions \u003e Algolia Reindex \u003e Run workflow**.\n\nTo enable it in GitHub, create these repository secrets:\n\n* `ALGOLIA_CRAWLER_USER_ID`\n* `ALGOLIA_CRAWLER_API_KEY`\n\nYou can find both in the Algolia dashboard under **Data sources \u003e Crawler \u003e Settings**.\n\nOptional repository variables:\n\n* `ALGOLIA_APP_ID` defaults to `JUYLFQHE7W`\n* `ALGOLIA_CRAWLER_NAME` defaults to `unraid`\n* `ALGOLIA_REINDEX_DELAY_SECONDS` defaults to `300`\n\nThe workflow does not need the standard `ALGOLIA_API_KEY` secret. Reindexing uses the crawler-specific credentials above.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Fork PR Previews\n\nForked pull requests do not get native Cloudflare preview builds, so this repo uses a two-workflow GitHub Actions flow for untrusted contributions:\n\n* `.github/workflows/fork-preview-build.yml` runs on fork PRs, installs dependencies, builds the site, and uploads the static `build/` output as an artifact.\n* `.github/workflows/fork-preview-deploy.yml` runs after that build completes, downloads the artifact in a trusted workflow, and deploys it to a preview-only Cloudflare Pages project with `wrangler pages deploy --branch=pr-\u003cnumber\u003e`.\n\nThis keeps Cloudflare secrets out of the untrusted PR build while still producing a stable preview URL at `https://pr-\u003cnumber\u003e.\u003cproject\u003e.pages.dev`.\n\nSet these before enabling the workflows:\n\n* Repository variable: `CLOUDFLARE_PREVIEW_PAGES_PROJECT`\n* Repository secret: `CLOUDFLARE_ACCOUNT_ID`\n* Repository secret: `CLOUDFLARE_DEPLOY_TOKEN`\n\nRecommended setup:\n\n1. Create a separate Cloudflare Pages project dedicated to previews only.\n2. Keep production on the existing deployment path.\n3. Scope the Cloudflare deploy token to Pages edit access for the account that owns the preview project.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\n\nNew to the docs? Start with the contributor [Style Guide](docs/contribute/style-guide.mdx) for voice, formatting, and workflow expectations. It covers terminology, MDX conventions, screenshots, and review tips.\n\nOnce you're comfortable with the guidelines, typical workflow looks like:\n\n1. Fork the project\n2. Create a feature branch (`git checkout -b docs/your-change`)\n3. Run `pnpm lint` before committing\n4. Commit with a clear message (`git commit -m \"docs: describe change\"`)\n5. Push to your fork and open a pull request against `main`\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### Top contributors\n\n\u003ca href=\"https://github.com/unraid/docs/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=unraid/docs\" alt=\"Contributor graph\" /\u003e\n\u003c/a\u003e\n\n\u003c!-- LOCALIZATION --\u003e\n## Localization\n\nHelp translate Unraid Docs for the global community.\n\n* Join the project on Crowdin: [unraid.crowdin.com/unraid-docs](https://unraid.crowdin.com/unraid-docs)\n* Follow the glossary and tone guidance in the [Style Guide](docs/contribute/style-guide.mdx)\n* Use `pnpm crowdin:upload` or `pnpm crowdin:upload:sources` after changing English source docs\n* Use `pnpm crowdin:upload:translations -- --language \u003clang\u003e` after manually fixing files under `i18n/` so those fixes are pushed back to Crowdin before the next download\n* The upload wrapper accepts the repo locale codes directly: use `de`, `es`, `fr`, and `zh` for `i18n/zh`; it normalizes `zh` to Crowdin's `zh-CN` project language code automatically\n* Use `pnpm crowdin:download` to pull the latest exported translations after uploads\n* `pnpm crowdin:sync` updates source strings and downloads translations, but it does not replace `crowdin:upload:translations` when you need to preserve manual translation fixes\n\nCrowdin suggestions are reviewed regularly by maintainers and native-language contributors.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- LICENSE --\u003e\n## License\n\n© 2024 Lime Technology, Inc. All rights reserved. See the [Unraid Legal Terms][license-url] for usage guidelines.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTACT --\u003e\n## Contact\n\nNeed help? Open an issue on GitHub or reach us via [unraid.net/contact](https://unraid.net/contact).\n\nProject Link: [https://github.com/unraid/docs](https://github.com/unraid/docs)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n## Acknowledgments\n\n* [Docusaurus](https://docusaurus.io/)\n* [Crowdin](https://crowdin.com/)\n* [Remark Lint](https://github.com/remarkjs/remark-lint)\n* [Vitest](https://vitest.dev/)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/unraid/docs.svg?style=for-the-badge\n[contributors-url]: https://github.com/unraid/docs/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/unraid/docs.svg?style=for-the-badge\n[forks-url]: https://github.com/unraid/docs/network/members\n[stars-shield]: https://img.shields.io/github/stars/unraid/docs.svg?style=for-the-badge\n[stars-url]: https://github.com/unraid/docs/stargazers\n[issues-shield]: https://img.shields.io/github/issues/unraid/docs.svg?style=for-the-badge\n[issues-url]: https://github.com/unraid/docs/issues\n[docs-shield]: https://img.shields.io/badge/site-docs.unraid.net-orange?style=for-the-badge\n[docs-url]: https://docs.unraid.net\n[crowdin-shield]: https://img.shields.io/badge/Crowdin-Join-orange?style=for-the-badge\u0026logo=crowdin\n[crowdin-url]: https://unraid.crowdin.com/unraid-docs\n[product-screenshot]: static/img/docusaurus.png\n[Docusaurus-shield]: https://img.shields.io/badge/Docusaurus-3B0997?style=for-the-badge\u0026logo=docusaurus\u0026logoColor=white\n[Docusaurus-url]: https://docusaurus.io/\n[React.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\n[React-url]: https://react.dev/\n[TypeScript-shield]: https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\n[TypeScript-url]: https://www.typescriptlang.org/\n[Remark-shield]: https://img.shields.io/badge/Remark-000000?style=for-the-badge\u0026logo=markdown\u0026logoColor=white\n[Remark-url]: https://github.com/remarkjs/remark\n[Vitest-shield]: https://img.shields.io/badge/Vitest-6E9F18?style=for-the-badge\u0026logo=vitest\u0026logoColor=white\n[Vitest-url]: https://vitest.dev/\n[license-url]: https://unraid.net/legal\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funraid%2Fdocs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funraid%2Fdocs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funraid%2Fdocs/lists"}