Prerequisites
Before you begin, ensure you have the following installed:.NET 10 SDK
Download from dotnet.microsoft.com
Docker Desktop
Required for Postgres and Redis containers
.NET Aspire Workload
Install via
dotnet workload install aspireIDE
Visual Studio 2025+, VS Code, or Rider
The starter kit targets net10.0 and requires the latest C# language features. Make sure your SDK is up to date.
Installation Steps
Restore Dependencies
Restore NuGet packages for the entire solution:This will restore all dependencies defined in
Directory.Packages.props including:- Entity Framework Core 10.0.2
- Finbuckle.MultiTenant 10.0.2
- Hangfire 1.8.23
- Mediator 3.0.1
- OpenTelemetry packages
Start Docker Desktop
Ensure Docker Desktop is running. Aspire will use it to spin up:
- PostgreSQL container (with persistent volume
fsh-postgres-data) - Redis container (with persistent volume
fsh-redis-data)
Run with Aspire
Launch the entire application stack using Aspire:Aspire will:
- Start PostgreSQL and Redis containers
- Apply database migrations automatically
- Launch the Playground API at
https://localhost:5285 - Launch the Blazor UI at
https://localhost:7140 - Enable OpenTelemetry export to
http://localhost:4317
First run may take a few minutes while Docker pulls images and applies migrations.
Verification Commands
After installation, verify your setup:Check running containers
postgres(port 5432)redis(port 6379)
Check API endpoint
Run tests
Running Without Aspire
If you prefer to run the API standalone without Aspire:Configure Connection Strings
Update
src/Playground/Playground.Api/appsettings.json or set environment variables:Next Steps
Aspire Setup
Learn how Aspire orchestrates your application
Configuration
Understand all configuration options
Project Structure
Explore the codebase organization
Architecture
Deep dive into the architecture
Troubleshooting
Docker containers won't start
Docker containers won't start
Ensure Docker Desktop is running and you have sufficient resources allocated:
- Memory: At least 4GB
- CPU: At least 2 cores
Migration errors on startup
Migration errors on startup
The API automatically applies migrations on startup via
UseHeroMultiTenantDatabases(). If migrations fail:- Check database connectivity
- Verify the connection string in
appsettings.json - Ensure the
MigrationsAssemblymatches your database provider
Port conflicts
Port conflicts
If default ports are in use, modify
launchSettings.json or Aspire configuration:- API: 5285 (HTTPS)
- Blazor: 7140 (HTTPS)
- PostgreSQL: 5432
- Redis: 6379
SSL certificate errors
SSL certificate errors
Trust the development certificate:
