Warning
Pre-alpha. The Blazor app is being scaffolded - APIs, UI and file
layout can change without notice until v0.1.2. Pin to a specific tag
if you depend on it.
preflight.xml helps IT admins, sysadmins and homelabbers craft
autounattend.xml answer files for unattended Windows 10 / 11 installs
- without touching raw XML. Everything runs in the browser; your config never leaves your machine.
Note
New to the autounattend.xml format? Microsoft's
Unattended Windows Setup Reference
is the canonical source.
|
|
| Layer | Choice |
|---|---|
| Runtime | .NET 10 · Blazor WebAssembly |
| UI | Microsoft Fluent UI for Blazor |
| Hosting | GitHub Pages (static, no backend) |
| Distribution | Installable PWA, fully offline-capable |
| Upstream | Vendors cschneegans/unattend-generator |
- .NET 10 SDK
just- the command runner
Install just
winget install Casey.Just # Windows
brew install just # macOS
cargo install just # any platform (Rust)
scoop install just # Windows (Scoop)git clone https://github.com/kYaRick/preflight.xml.git
cd preflight.xml
just init # configures git hooks, restores NuGet packagesRun just with no args to list every recipe.
| Command | What it does |
|---|---|
just init |
One-time onboarding setup |
just run |
Start the app with hot-reload |
just build |
Build all projects (Debug) |
just test |
Run the test suite |
just format |
Auto-format source |
just lint |
Verify formatting (CI-friendly) |
just publish |
Produce a release build for GitHub Pages |
just serve |
Serve the published site at :8080 |
just clean |
Remove all build artifacts |
Tip
just publish accepts an optional base path:
just publish # /preflight.xml/ (GitHub Pages)
just publish / # / (custom domain / localhost)
just publish /apps/preflight/ # /apps/preflight/ (reverse proxy)Note
Prefer raw dotnet? The justfile is short and readable - every
recipe is a thin wrapper.
| Channel | How it works |
|---|---|
| 🌐 Live web app | Push to main → deployed to GitHub Pages by pages.yml |
| 📱 Installable PWA | Visit the live app, tap the install icon - works on Windows, macOS, Linux, Android, iOS |
| 📥 Offline archive | Push tag vX.Y.Z → zip + tar.gz attached to the Release by release.yml |
| 🧰 Self-host | Extract the archive, serve wwwroot/ with any static server (see releasing.md) |
Important
First-time Pages deploy needs a one-time repo setting: Settings → Pages → Source = GitHub Actions. See docs/ci-cd.md for the full checklist.
| Topic | Read |
|---|---|
| Architecture overview | docs/architecture.md |
| CI / CD pipelines | docs/ci-cd.md |
| Publishing & PWA | docs/publishing.md |
| Cutting a release | docs/releasing.md |
| Upstream vendor sync | docs/upstream-sync.md |
Contributions are welcome once the app scaffold lands.
- Open an issue first to discuss the change.
- Follow Conventional Commits - see
.gitmessage. - Keep diffs focused and small; read CONTRIBUTING.md.
Security issues → SECURITY.md (do not file a public issue).
Released under the MIT License © kYaRick.
Vendored portions of Preflight.Unattend remain under their upstream
MIT license - see NOTICE and LICENSES/.
Built by a Ukrainian developer during an ongoing war. If preflight.xml
saves you time, please consider supporting the people defending Europe's
eastern border:
- 🛡️ Хартія · Kharchenko Foundation - equipment, medical aid and training for Ukraine's defenders
- 🦅 Azov ONE - fundraising hub for Azov brigade units on the front line
Any contribution matters.

