Skip to content

Repository files navigation

CheMa.VNext

About this solution

This is a layered startup solution based on Domain Driven Design (DDD) practises. All the fundamental ABP modules are already installed.

Pre-requirements

Configurations

The solution comes with a default configuration that works out of the box. However, you may consider to change the following configuration before running your solution:

  • Check the ConnectionStrings in appsettings.json files under the CheMa.VNext.AuthServer, CheMa.VNext.HttpApi.Host and CheMa.VNext.DbMigrator projects and change it if you need.

Before running the application

Generating a Signing Certificate

In the production environment, you need to use a production signing certificate. ABP Framework sets up signing and encryption certificates in your application and expects an openiddict.pfx file in your application.

This certificate is already generated by ABP CLI, so most of the time you don't need to generate it yourself. However, if you need to generate a certificate, you can use the following command:

dotnet dev-certs https -v -ep openiddict.pfx -p a10f4038-e3c8-488e-b5ba-49ed35b098c8

a10f4038-e3c8-488e-b5ba-49ed35b098c8 is the password of the certificate, you can change it to any password you want.

It is recommended to use two RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing.

For more information, please refer to: https://documentation.openiddict.com/configuration/encryption-and-signing-credentials.html#registering-a-certificate-recommended-for-production-ready-scenarios

Also, see the Configuring OpenIddict documentation for more information.

Install Client-Side Libraries

Run the following command in the directory of your final application:

abp install-libs

This command installs all NPM packages for MVC/Razor Pages and Blazor Server UIs and this command is already run by the ABP CLI, so most of the time you don't need to run this command manually.

Create the Database

Run CheMa.VNext.DbMigrator to create the initial database. This should be done in the first run. It is also needed if a new database migration is added to the solution later.

Solution structure

This is a layered monolith application that consists of the following applications:

  • CheMa.VNext.DbMigrator: A console application which applies the migrations and also seeds the initial data. It is useful on development as well as on production environment.
  • CheMa.VNext.AuthServer: ASP.NET Core MVC / Razor Pages application that is integrated OAuth 2.0(OpenIddict) and account modules. It is used to authenticate users and issue tokens.
  • CheMa.VNext.HttpApi.Host: ASP.NET Core API application that is used to expose the APIs to the clients.
  • CheMa.VNext.Blazor: ASP.NET Core Blazor WASM application that is a single page application that runs on the browser.

Deploying the application

Deploying an ABP application is not different than deploying any .NET or ASP.NET Core application. However, there are some topics that you should care about when you are deploying your applications. You can check ABP's Deployment documentation before deploying your application.

Kubernetes

Kubernetes manifests are available under etc/k8s and assume PostgreSQL, Redis, AgileConfig and OpenTelemetry Collector are provided by the target environment.

Build and push application images from the repository root:

docker build -f src/CheMa.VNext.HttpApi.Host/Dockerfile -t chema-vnext/httpapi-host:latest .
docker build -f src/CheMa.VNext.Gateway/Dockerfile -t chema-vnext/gateway:latest .
docker build -f src/CheMa.VNext.Blazor/Dockerfile -t chema-vnext/blazor:latest .
docker build -f src/CheMa.VNext.BackgroundWorker/Dockerfile -t chema-vnext/background-worker:latest .
docker build -f src/CheMa.VNext.DbMigrator/Dockerfile -t chema-vnext/dbmigrator:latest .

Before applying, replace placeholder values in etc/k8s/base/secret.yaml or provide the secret from your deployment system. Then deploy:

kubectl apply -k etc/k8s/base

For development namespace defaults:

kubectl apply -k etc/k8s/overlays/dev

DbMigrator is modeled as a Kubernetes Job; run it before rolling out application services when migrations or seed data change.

Additional resources

You can see the following resources to learn more about your solution and the ABP Framework:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages