Deploy guide · runtime = "docker"
Deploy .NET 8 (ASP.NET Core) on Percher
Minimal ASP.NET Core Web API on .NET 8. The Dockerfile uses the Alpine SDK image for the build stage and the ASP.NET runtime image for the final container — small image, fast cold start.
Why Percher fits
- ASP.NET Core's Kestrel server handles high concurrency well within Percher's per-container resource budget.
- Built-in DI and structured logging integrate with `bunx percher logs` as JSON lines out of the box.
Quick start
bunx percher create my-app --template dotnet
cd my-app
bunx percher publishThe first command scaffolds a working .NET 8 (ASP.NET Core) project plus a `percher.toml`. Publish builds and deploys it; the live URL prints on completion.
percher.toml
The canonical config for a .NET 8 (ASP.NET Core) app on Percher. `bunx percher init` generates this automatically when it detects .NET 8 (ASP.NET Core) in your project.
[app]
name = "my-api"
runtime = "docker"
framework = "dotnet"
[web]
port = 8080
health = "/health"
Common gotchas
- Set `ASPNETCORE_URLS=http://+:8080` in the Dockerfile so Kestrel listens on the right port; the default `5000` won't match the toml.
- Configure `AddHealthChecks()` and map `/health` in `Program.cs` — a missing endpoint will fail the deploy health probe.
Related docs
Ready to deploy .NET 8 (ASP.NET Core)?
Free plan, no credit card. Live in under a minute.
Sign up free