| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Welcome to the documentation of all Duende Software products and open-source tools!
You will need the following installed:
cd astro
npm install
npm run devFor local development with the full stack (Astro dev server + ASP.NET Core):
dotnet build.cs aspireThis starts:
Alternatively in VS Code, GitHub Codespaces, or WebStorm, you can use the devcontainer to get a development environment set up.
All commands use the build.cs file-based build script and can be run from any directory in the repository:
| Command | Action |
|---|---|
| dotnet build.cs | Build everything (Astro + .NET) |
| dotnet build.cs astro-build | Build Astro to wwwroot |
| dotnet build.cs dotnet-build | Build .NET solution |
| dotnet build.cs container | Build container image |
| dotnet build.cs aspire | Start Aspire dev environment |
| dotnet build.cs clean | Clean all build outputs |
| dotnet build.cs verify-formatting | Check .NET code formatting |
| dotnet build.cs --list-targets | List all available targets |
The container is built using dotnet publish /t:PublishContainer (no Dockerfile required).
dotnet build.cs containerdocker run -p 8080:8080 docsThe site will be available at http://localhost:8080.
This project uses Astro + Starlight for the documentation site, served by ASP.NET Core in production.
.
├── build.cs # File-based build script
├── astro/ # Astro documentation site
│ ├── public/
│ ├── src/
│ │ ├── assets/
│ │ ├── content/
│ │ │ └── docs/
│ │ └── content.config.ts
│ ├── astro.config.mjs
│ ├── package.json
│ └── tsconfig.json
└── server/ # ASP.NET Core server
├── src/
│ ├── Docs.Web/ # Static file server
│ │ └── wwwroot/ # Astro build output (gitignored)
│ ├── Docs.AppHost/ # .NET Aspire orchestrator
│ └── Docs.ServiceDefaults/ # Shared configuration
└── tests/
└── Docs.Web.Tests/ # Integration tests
Starlight looks for .md or .mdx files in the astro/src/content/docs/ directory. Each file is exposed as a route based on its file name.
Images can be added to astro/src/assets/ and embedded in Markdown with a relative link.
Static assets, like favicons, can be placed in the astro/public/ directory.
The astro/ folder has been configured as a VS Code and WebStorm project, which you can open from that location to work on content.
Content can be authored in Markdown, in a .md or .mdx file. The Starlight documentation has some guidance on Markdown syntax, components, and more:
Use a spell checker like Grazie or Grammarly to check your content for spelling and grammar errors. WebStorm has Grazie as a built-in spell checker and grammar checker, and supports a good default writing style.
Always have a title property to set the page title.
Always have a description property to set the page description. This is a summary of the page's core content.
Always have a date property to set the creation/significant update date for a page. Use the YYYY-MM-DD format.
Add the sidebar property and must include the label and order. The label is used in the menu, and should typically be shorter than the more descriptive title. For example:
title: "Using IdentityServer As A Federation Gateway"
sidebar:
label: "Federation"
order: 1Astro commands are run from the astro/ directory:
| Command | Action |
|---|---|
| npm install | Installs dependencies |
| npm run dev | Starts local dev server at localhost:4321 |
| npm run build | Build production site (use dotnet build.cs astro-build instead) |
| npm run preview | Preview your build locally |
| npm run astro ... | Run CLI commands like astro add, astro check |
There are two ways to restructure content:
When doing internal restructuring, move the page to its new location and then update its frontmatter to include the old location:
---
title: Page title
redirect_from:
- /old-path-to/content
---
Page content goes hereThis will generate the page at the new location, and put a redirect to it at the old location.
When moving a page outside the structure, or you need a redirect to another location altogether, edit the astro/astro.config.mjs file and append a key/value pair to the redirects property:
redirects: {
"/identityserver/product-page": "https://duendesoftware.com/products/identityserver",
},This will remove the old page from the navigation structure, but keeps the URL around with a redirect to the new location.
We make our docs consumable by AI agents and LLMs, not just humans.
Beyond this repo, Duende also provides tools that give AI coding assistants specialized knowledge (see AI Agent Tools):
Developers increasingly use AI assistants to find answers. If our docs aren't AI-friendly, those assistants hallucinate or point elsewhere. Making content machine-readable means Duende products get accurate representation in AI-generated answers.
For all licensing information, refer to the relevant license files:
The Astro documentation engine is licensed under the MIT license.
| Back | FazBrowse Home | New Git URL |