This guide section is prepared to start the platform for development purposes, production recommendations were ready in the Deployment / Production section.
The platform consists of four main projects:
- Platform: prepares the main functionality of the application (authentication, access control, etc.) over
Restful
andGraphQL
gateway. - Platform SDK: this is an npm package to simplify working with the core functionality of platform types and services in the front-end and back-end of the client.
- Client Backend: this project communicates with the old project and old database to emigrate from
PHP
toNodeJS
, and also contains some logic of the old project. - Client Frontend: web-based user interface written in the
VueJS
for administration purposes and supporting solutions.
npm run db:clean && npm run db:schema && npm run db:seed
npm run db:init && npm run storage:init && npm run broker:init
npm run script:setup && npm run script:kafka-connect
Docker with compose and node >=18.x.x,<=20.x.x
shipped with npm needs to be installed. to start and run mandatory tools with the docker-compose enter the following command in your terminal docker-compose -f compose/docker-compose.utils.yml up -d
this command will up and run the mongodb
and redis
used by the platform.
Gateway equipped with Swagger OpenAPIv3 documentation and Apollo GraphQL Playground. most services communicate with GRPC
protocol except the touch service which uses RabbitMQ
.
# clone the platform repository
git clone [email protected]:wenex-org/platform.git
# install dependencies with pnpm
cd admin-platform && pnpm install --frozen-lockfile
# environmental variable
cp ./.env.example ./.env
# prepare the assets
npm run script:setup
# Seeding database
npm run db:seed
# command to start gateway
npm run start gateway &
# command to start other services
npm run start auth & \
npm run start config & \
npm run start domain & \
npm run start identity & \
npm run start special &
Note: Each service has it's own health check and metrics endpoint and also it's own sentry issue tracker.
The docker file is ready at the root project directory with the docker-compose file.
In production mode project will start the tracing functionality with the open telemetry. the Zipkin, Jeager and Otelcol tools exist in the compose
directory.
Note: Define persist volume for your databases in yaml files, change the
NODE_ENV
environment value toproduction
.
This project was documented with the C4 model to see diagrams of context and container you've to need the structurizr, to start and run the structurizr
enter docker-compose -f compose/docker-compose.strct.yml up -d
command in your terminal then go to the http://127.0.0.1:8080
To automatically generate component diagrams start the command npm run doc
and discover it on http://127.0.0.1:8088, or use it offline at the file://./docs/index.html