ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Anubis 文档站构建与部署指南:基于 Docusaurus 的本地开发、静态构建与多环境上线

Anubis 文档站构建与部署指南:基于 Docusaurus 的本地开发、静态构建与多环境上线 后端网络安全【免费下载链接】anubisWeighs the soul of incoming HTTP requests to stop AI crawlers项目地址https://gitcode.com/gh_mirrors/anubis4/anubis点击查看免费下载本篇指南面向希望本地修改、构建或自行部署 Anubis 官方文档站的开发者。Anubis 的文档站点位于仓库docs/目录由 Docusaurus现代静态网站生成器驱动其内容体系覆盖安装部署、管理员配置、设计原理与开发者贡献等多个章节。读完本文你将掌握文档站的依赖安装、热更新本地开发、静态产物构建以及通过 GitHub Pages、容器镜像、Fly.io 与 Kubernetes 四种路径完成上线部署的完整方法。一、文档站全景目录结构与技术选型Anubis 官方文档站不是零散 Markdown 的堆叠而是一套完整的 Docusaurus 工程核心入口与配置如下docs/README.md构建与部署操作说明本文的主体来源docs/docusaurus.config.ts站点全局配置包括标题、URL、导航栏、页脚与代码高亮主题docs/sidebars.ts侧边栏配置通过autogenerated方式从docs/目录结构自动生成文档侧边栏docs/package.jsonnpm 脚本与依赖清单使用 Docusaurus 3.8.xdocs/tsconfig.jsonTypeScript 配置供配置文件和 React 组件类型检查使用。文档内容按主题组织在 docs/docs 下覆盖admin管理员操作、design设计原理、developer开发者指南、user用户 FAQ四大板块docs/blog 则承载发布公告、事故报告与资金更新等博文。docs/src 中存放自定义组件、页面与样式如 docs/src/css/custom.css用于定制默认主题。值得说明的是站点配置开启了onBrokenLinks: throw与onBrokenMarkdownLinks: warn见 docs/docusaurus.config.ts意味着构建时任何失效的内部链接都会直接导致构建失败从机制上保证文档站链接的健壮性。二、安装依赖文档站是独立的 npm 工程需先安装其依赖。仓库内 docs/package.json 定义了项目依赖其中运行时依赖包括docusaurus/core与docusaurus/preset-classic版本 ^3.8.1Docusaurus 核心与经典预设文档、博客、页面三大能力docusaurus/theme-mermaidMermaid 图表渲染支持配合配置中的markdown.mermaid: true使用mdx-js/reactMDX 文档渲染prism-react-renderer代码高亮react/react-dom^19.0.0组件运行时。原文档给出的安装命令为$ yarn由于仓库实际只提供 npm 脚本无 yarn.lock但存在 docs/package-lock.json等价命令为$ npm install环境要求见 docs/package.json 的engines字段Node.js 18.0。若使用容器方式见下文构建镜像选用node:lts可自动满足该要求。三、本地开发原文档中的本地开发命令$ yarn start等价 npm 形式为npm start实际执行的是 docs/package.json 中定义的docusaurus start --host 0.0.0.0该命令会启动一个本地开发服务器并自动打开浏览器窗口默认监听所有网卡--host 0.0.0.0便于容器或局域网内预览。Docusaurus 开发服务器具备以下特性热更新对 Markdown、MDX、配置或组件源码的修改会即时反映到浏览器无需手动重启这是迭代文档内容时的核心体验本地实时预览编辑 docs/docs 下的文档时可边写边看渲染效果包括 TOC、面包屑与侧边栏导航类型检查npm run typecheck对应 docs/package.json 的tsc可在开发阶段校验 TypeScript 配置与组件的类型正确性。开发期间如遇缓存或异常状态可使用npm run clear即docusaurus clear清理 Docusaurus 的构建缓存后重试。四、构建静态产物原文档中的构建命令$ yarn build等价命令为npm run build实际执行docusaurus build见 docs/package.json。该命令会校验全部 Markdown/MDX 文档的 front matter、链接与资源引用链接失效将因onBrokenLinks: throw而报错处理博客 feed 生成RSS / Atom / JSON见 docs/docusaurus.config.ts编译 React 组件与页面生成最终静态内容到build目录。构建产物是纯静态文件可被任意静态内容托管服务直接托管。事实上仓库内的生产部署全部围绕这一build目录展开无论是容器镜像中的COPY --frombuild /app/build /www见 docs/Dockerfile还是 Kubernetes 与 Fly.io 部署消费的都是这份静态产物。构建完成后可在本地先行验证产物用$ npm run serve即docusaurus serve它会在本地以生产模式伺服build目录供上线前检查。五、部署原文档给出了基于 GitHub Pages 的两种部署方式同时仓库还提供了容器、Fly.io 与 Kubernetes 三套生产级方案。下面逐一展开。5.1 GitHub Pages原文档方式使用 SSH 方式部署$ USE_SSHtrue yarn deploy不使用 SSH需提供 GitHub 用户名与访问令牌$ GIT_USERYour GitHub username yarn deploy若使用 GitHub Pages 托管这条命令会构建网站并推送到gh-pages分支是原文档推荐的便捷途径。对应 npm 形式分别为USE_SSHtrue npm run deploy与GIT_USER用户名 npm run deploy。注意仓库中docs/package.json的deploy脚本被改写为echo use CI exit 1见 docs/package.json即此仓库自身约定部署由 CI 完成、禁止本地直接 deploy。因此若在本仓库内运行 deploy 脚本会主动失败上面给出的命令来自原文档通用说明适用于你自己 fork 出的、保留默认 deploy 脚本的 Docusaurus 工程。5.2 容器镜像构建docs/Dockerfile 采用多阶段构建将 Node 构建与轻量运行分离构建阶段基于node:lts执行npm ci npm run buildnpm ci依据package-lock.json做确定性安装产出build静态目录运行阶段基于ghcr.io/xe/nginx-micro极简 nginx 镜像将静态产物复制到/www并把自定义 nginx 配置挂到/conf。运行阶段的 nginx 配置见 docs/manifest/cfg/nginx/nginx.conf监听 80 端口、以/www为根目录、通过try_files $uri $uri/ 404提供 SPA 友好的资源查找并将访问与错误日志输出到/dev/stdout便于容器日志采集。同目录下的 mime.types 补充了 WebP、WASM、woff2、AVIF 等现代资源类型的 MIME 映射。5.3 部署到 Fly.iodocs/fly.toml 是 Fly.io 的部署清单关键配置项app anubis-docs指定应用名主区域为yyz镜像直接使用 CI 构建的ghcr.io/techarohq/anubis/docs:mainHTTP 服务监听内部 80 端口强制 HTTPS启用自动启停auto_stop_machines/auto_start_machines空闲时可缩至 0 台机器以节省成本虚拟机规格为 1 共享 CPU、256MB 内存。在本地安装 flyctl 后于docs/目录执行fly deploy即可按此清单上线。5.4 Kubernetes 部署仓库在 docs/manifest 下提供了完整的 Kubernetes 资源清单可用kubectl apply -k docs/manifest应用kustomization 入口见 docs/manifest/kustomization.yaml其中 deployment.yaml 展示了官方文档站的真实生产拓扑——Anubis 用自己的产品保护自己的文档站容器anubis-docs以ghcr.io/techarohq/anubis/docs:main镜像伺服静态页面挂载 nginx 配置 ConfigMap暴露 80 端口并配置了就绪/存活探针容器anubis并置运行 Anubis 本体作为前置反爬防火墙通过环境变量配置BIND:8081、DIFFICULTY4、TARGEThttp://localhost:80回源到本 Pod 的文档服务、POLICY_FNAME指向机器人策略文件、SERVE_ROBOTS_TXTfalse等同时以runAsNonRoot: true、丢弃全部 capabilities、启用 seccomp 默认 Profile 等安全上下文加固运行环境ingress.yaml通过 nginx-ingress 暴露anubis.techaro.lol域名使用 cert-manager 签发 Lets Encrypt 证书并限制 RPS 为 10 以进一步缓解攻击面。这套清单完整展示了文档站 Anubis 反爬保护的一体化部署模式可作为自托管 Anubis 文档站的参考模板其 Anubis 侧的环境变量语义与主项目文档 docs/docs/admin/installation.mdx 中描述的配置项一一对应。六、自定义站点外观与内容若需定制文档站而非仅部署可关注以下几处全局外观docs/src/css/custom.css 提供自定义 CSS站点已启用跟随系统配色colorMode.respectPrefersColorScheme并在 docs/docusaurus.config.ts 中配置了基于 prism-react-renderer 的明暗两套代码高亮主题导航与页脚导航栏Navbar包含 Blog、Docs、Unbranded Version 与外部链接项页脚Footer链接到安装文档、社区与状态页均可直接修改 docs/docusaurus.config.ts 调整侧边栏docs/sidebars.ts 默认使用autogenerated侧边栏即新增docs/docs/下的 Markdown/MDX 文件会自动出现在导航中无需手工登记。七、小结从 docs/README.md 的四条核心命令出发Anubis 文档站的完整生命周期可以概括为安装依赖→本地热更新开发→构建静态产物→多路径部署。仓库不仅给出了开发体验极佳的本地工作流还通过 Dockerfile、Fly.io 清单与 Kubernetes Manifest 提供了从单机预览到反爬保护的生产环境的全套落地范式——尤其是 deployment.yaml 中 Anubis 前置守护自身文档站的拓扑正是本主题最生动的实践注脚。赞分享后端网络安全【免费下载链接】anubisWeighs the soul of incoming HTTP requests to stop AI crawlers项目地址https://gitcode.com/gh_mirrors/anubis4/anubis点击查看免费下载相关推荐OHIF 文档站构建指南基于 Docusaurus 的安装、本地开发、静态构建与部署全流程OHIF 文档站构建指南基于 Docusaurus 的安装、本地开发、静态构建与部署全流程 本篇指南围绕 OHIF Viewer 仓库中 platform/d医疗健康前端音视频n.eko 官方文档站构建指南基于 Docusaurus 的本地开发、静态构建与部署全流程n.eko 官方文档站构建指南基于 Docusaurus 的本地开发、静态构建与部署全流程 本文面向需要在本地预览、调试或发布 n.eko 官方文档站的开发者后端音视频TeslaMate 文档网站基于 Docusaurus 的本地开发、静态构建与自动部署实战指南TeslaMate 文档网站基于 Docusaurus 的本地开发、静态构建与自动部署实战指南 本篇指南围绕 TeslaMate 仓库中的 website/后端数据分析数据可视化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表