You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Zero-downtime deployments with included configuration:
204
-
205
-
```bash
206
-
kamal deploy
214
+
### App Settings Secrets
215
+
216
+
Instead of polluting each GitHub Reposity with multiple App-specific GitHub Action Secrets, you can save all your secrets in a single `APPSETTINGS_PATCH` GitHub Action Secret to patch `appsettings.json` with environment-specific configuration using [JSON Patch](https://jsonpatch.com). E.g:
This project includes GitHub Actions for CI/CD with automatic Docker image builds and production [deployment with Kamal](https://docs.servicestack.net/kamal-deploy). The `/config/deploy.yml` configuration is designed to be reusable across projects—it dynamically derives service names, image paths, and volume mounts from environment variables, so you only need to configure your server's IP and hostname using GitHub Action secrets.
269
+
270
+
### GitHub Action Secrets
271
+
272
+
**Required - App Specific*:
273
+
274
+
The only secret needed to be configured per Repository.
275
+
276
+
| Variable | Example | Description |
277
+
|----------|---------|-------------|
278
+
|`KAMAL_DEPLOY_HOST`|`example.org`| Hostname used for SSL certificate and Kamal proxy |
279
+
280
+
**Required** (Organization Secrets):
281
+
282
+
Other Required variables can be globally configured in your GitHub Organization or User secrets which will
283
+
enable deploying all your Repositories to the same server.
284
+
285
+
| Variable | Example | Description |
286
+
|----------|----------|-------------|
287
+
|`KAMAL_DEPLOY_IP`|`100.100.100.100`| IP address of the server to deploy to |
288
+
|`SSH_PRIVATE_KEY`|`ssh-rsa ...`| SSH private key to access the server |
289
+
|`LETSENCRYPT_EMAIL`|`[email protected]`| Email for Let's Encrypt SSL certificate |
These are inferred from the GitHub Action context and don't need to be configured.
299
+
300
+
| Variable | Source | Description |
301
+
|----------|--------|-------------|
302
+
|`GITHUB_REPOSITORY`|`${{ github.repository }}`| e.g. `acme/example.org` - used for service name and image |
303
+
|`KAMAL_REGISTRY_USERNAME`|`${{ github.actor }}`| GitHub username for container registry |
304
+
|`KAMAL_REGISTRY_PASSWORD`|`${{ secrets.GITHUB_TOKEN }}`| GitHub token for container registry auth |
305
+
306
+
#### Features
307
+
308
+
-**Docker containerization** with optimized .NET images
309
+
-**SSL auto-certification** via Let's Encrypt
310
+
-**GitHub Container Registry** integration
311
+
-**Volume persistence** for App_Data including any SQLite database
312
+
313
+
235
314
## AutoQuery CRUD Dev Workflow
236
315
237
316
For Rapid Development simple [TypeScript Data Models](https://docs.servicestack.net/autoquery/okai-models) can be used to generate C# AutoQuery APIs and DB Migrations.
0 commit comments