Installation and secrets

  1. Clone the repository under your product's name.
  2. Set the AppHost's secrets — before the first run.
  3. Optionally, set the secrets of the providers you want to try.

Clone

git clone https://github.com/BlouppyStarter/blouppy-starter.git my-product
cd my-product

There is no npm install to run: the AppHost's build runs npm ci in front/ whenever front/node_modules is missing, so the first build takes a few minutes longer.

The AppHost's secrets

Aspire reads its parameters from the AppHost's user secrets. Six of them are required, and Aspire refuses to start with one missing or empty:

cd back/Blouppy.Aspire.AppHost
dotnet user-secrets set "Parameters:sql-password"        "<a password for PostgreSQL>"
dotnet user-secrets set "Parameters:rabbitmq-userName"   "guest"
dotnet user-secrets set "Parameters:rabbitmq-password"   "<a password for RabbitMQ>"
dotnet user-secrets set "Parameters:oidc-clientSecret"   "<a secret shared by the identity host and the gateway>"
dotnet user-secrets set "Parameters:github-clientId"     "<OAuth App client id, or not-configured>"
dotnet user-secrets set "Parameters:github-clientSecret" "<OAuth App client secret, or not-configured>"
cd ../..

The first four protect containers and clients that only exist on your machine, so any values will do.

The two GitHub values are those of a GitHub OAuth App, for Sign in with GitHub. Without one, put any placeholder: everything else works, and only the GitHub button fails, at GitHub's end.

Two more parameters need nothing from you. api-introspection-secret is generated on the first run and kept in the same user secrets; anthropic-apiKey is optional (see below).

Optional providers

Each provider is read by the service that uses it, from that service's own user secrets, under the names .env.example documents. Without them, the feature stays off and says so.

To tryServiceUser secrets
Sign in with GoogleBlouppy.IdentityGoogleOptions:ClientId, GoogleOptions:ClientSecret — redirect URI https://localhost:5051/signin-oidc-google
Stripe, in test modeBlouppy.WebStripe:SecretKey, Stripe:WebhookSecret and the four Stripe:Prices:*
The CAPTCHABlouppy.IdentityCaptcha:SiteKey, Captcha:SecretKey (Cloudflare's test keys are in .env.example)
S3 file storageBlouppy.Web and Blouppy.IdentityFileStorage:Provider = S3 and the FileStorage:S3:* values
AI featuresthe AppHostParameters:anthropic-apiKey
dotnet user-secrets set "GoogleOptions:ClientId" "<client id>" --project back/Blouppy.Identity
dotnet user-secrets set "Parameters:anthropic-apiKey" "sk-ant-…" --project back/Blouppy.Aspire.AppHost

Without them: Google's button is not drawn, billing shows the plans and sells nothing, the forms have no CAPTCHA, files stay on disk under each service's App_Data/, and the AI features say they are not set up.