Installation and secrets
- Clone the repository under your product's name.
- Set the AppHost's secrets — before the first run.
- 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 try | Service | User secrets |
|---|---|---|
| Sign in with Google | Blouppy.Identity | GoogleOptions:ClientId, GoogleOptions:ClientSecret — redirect URI https://localhost:5051/signin-oidc-google |
| Stripe, in test mode | Blouppy.Web | Stripe:SecretKey, Stripe:WebhookSecret and the four Stripe:Prices:* |
| The CAPTCHA | Blouppy.Identity | Captcha:SiteKey, Captcha:SecretKey (Cloudflare's test keys are in .env.example) |
| S3 file storage | Blouppy.Web and Blouppy.Identity | FileStorage:Provider = S3 and the FileStorage:S3:* values |
| AI features | the AppHost | Parameters: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.