This repository is a central repository for Paralect .NET technological movement. .NET is a huge part of the Paralect history. In fact, for the first 5 years of the company .NET was a primary technology for most of the projects. We love technology and beleive it suits very well for what we do: product engineering.
Whenever Paralect starts new product development it has few strategical advantages. Our primary focus is to help to client be successful, therefore we focus feature development from a first day to make sure business has every feature it needs to grow. Growth results into successful product. Successful products allow us to become better engineers and do what we love.
Feel free to share your ideas using issues.
- We can efficiently start new products development. Our ideal time target of
environment configuration
task is 4 hours. - We want to reuse a lot of existing work from Node.JS based projects and keep .NET only as business logic heart of the application.
This is list of the environment configuration work we do quickly during the first day for any new client:
- Repository setup
- Project architecture setup. Here we should already propose how we work with database, how we exchange data between client and server, how we transmit validation errors. The point here is to do as much routine work upfront as possible, so we can be more efficient during product development.
- SPA architecture setup
- Continous Integration pipeline
- Deployment automation
- Servers setup for staging environment
Our initial idea is to reuse everything except REST api. Things we use for Node.js products described very well in Ship repository
- Landing site
- React.JS SPA (and simple Node.JS server to server index.html file and static assets)
- Deployment automation with Docker & Ansible.
- CI automation using Drone CI (we might use other CI if this won't work)
- .NET project srtart via single command. We plan to use self-hosted API service to being able to run it within Docker.
In order to make Paralct.Ship work with this API server on Windows some changes in files are needed to be made.
-
docker-compose.yml:
- Add named volume "mongodata" (This will allow to save data even if container is removed)
- For mongo service replace "- /var/run/docker.sock:/var/run/docker.sock" with "- mongodata:/data/db" (The path /var/run/docker.sock does not exist on Windows)
- Remove api service entirely (.Net API server starts separately)
- Add mongodata volume declaration like "db-data" volume here: https://docs.docker.com/compose/compose-file/#endpoint_mode
-
web/src/server/config/environment/development.js:
- Change jwt secret setting to "jwt_secret128bits" (in .Net it needs to be more than 127 bist long)
To run API service inside docker container api/src/docker-compose.yml file is used. To run the rest of services top level docker-compose.yml file is used. So to run Ship you'll have to run "docker-compose up" twice.