Installation
Install Runwick and one store package, add the optional packages you need, install the CLI and create the store's schema.
Runwick is split into small packages. Every app needs Runwick and exactly one store package. Everything else is optional.
Packages
Use the same version for every Runwick package.
Add the packages
Add the optional packages the same way, for example:
The command line tool
The runwick command migrates stores, raises one-time capabilities, and talks to the management API for jobs, queues and workers.
See CLI for the full command list.
Requirements
- .NET 10. Every package targets
net10.0only. There are no .NET 8, .NET 9, .NET Framework or .NET Standard builds. - No Node or npm. The dashboard's web files ship inside its package.
- One store:
- PostgreSQL 16, 17 or 18 (18 is the reference version). Connect to the primary directly.
- SQLite 3.38 or newer. The engine is bundled with
Microsoft.Data.Sqlite, so there is nothing to install. The file must be on a local disk. - Redis 8.2 or newer, one standalone primary with durable settings (see below).
The tested operating systems are Linux x64 and Windows x64. Runwick makes no claim for Native AOT or trimming.
Create the schema
Workers never change the schema when they start. You create it once, as a deployment step, before the first app starts. Running the migration again on a store that is already up to date does nothing.
Each store has a MigrateAsync method, and the CLI runs the same code.
Run the migration with a role that may create schemas. Everything goes into one schema, runwick, and that name cannot be changed. Your running app can then use a role with data access only.
Connection strings stay out of your shell history
The CLI never takes a connection string as an argument. Pass the name of an environment variable with --connection-env, or pipe the string in with --connection-stdin.