Welcome to the WeBuild Backend repository. This README serves as a comprehensive guide to the project's structure, setup instructions, features, API endpoints, additional information, resources, and contributions.
WeBuild is a sass product designed to deliver a seamless project deployment experience. The backend repository houses the server-side code, responsible for handling authentication, user management , deployment service and other essential functionalities.
- Users can authenticate using their GitHub or GitLab credentials.
- Steps:
- Click on the authentication button.
- Redirected to GitHub/GitLab login page.
- Enter credentials and grant permission.
- Redirected back to the application with authenticated session.
- Users can connect to their code repositories on GitHub or GitLab.
- Steps:
- Navigate to the repository connection page.
- Select GitHub or GitLab.
- Choose a repo and press connect.
- The system can generate environment configuration files (.env files) for deployment.
- Steps:
- Navigate to the .env file generation page.
- Input necessary environment variables.
- Click generate, and the system creates the .env file.
- Users can deploy applications directly from connected repositories.
- Steps:
- Navigate to the deployment page.
- Select the repository.
- Configure deployment settings.
- Click deploy, and the system initiates the deployment process.
- The system monitors container events and displays them in real-time.
- Steps:
- Continuously monitor container events.
- Log and display events in the dashboard.
- Users can view real-time events and statuses.
- Users can inspect container logs for debugging and monitoring purposes.
- Steps:
- Select the container to inspect.
- Navigate to the container logs page.
- System displays the logs for the selected container.
- The system provides tools to analyze CPU and memory usage of containers.
- Steps:
- Navigate to the performance analysis page.
- Select the container.
- Display CPU and memory usage statistics.
- Users can trigger redeployment of applications as needed.
- Steps:
- Navigate to the deployments page.
- Select a past deployment.
- Click redeploy, and the system initiates the redeployment process.
- Users can stop and resume containers for better control.
- Steps:
- Navigate to the container management page.
- Select the container to stop or resume.
- Click stop or resume, and the system performs the action.
- Users can remove containers when they are no longer needed.
- Steps:
- Navigate to the container settings page.
- Click remove, and the system deletes the container.
- Users can choose from different subscription tiers based on their needs.
- Steps:
- Navigate to the subscription page.
- Review available subscription tiers.
- Select a subscription tier and confirm the selection.
- The system processes payments using Stripe for subscription management.
- Steps:
- Navigate to the payment page.
- Enter payment details and confirm.
- System processes the payment via Stripe and updates the subscription status.
Prerequisites:
- Node.js (v14 or above)
- pnpm or any Node Package Manager (npm, yarn, etc.)
- Git
- MongoDB (if you're using it as your database)
- Docker
- Redis
- influxDB
Back-End Installation:
-
Clone the back-end repo:
git clone <back-end-repo-link>
-
Navigate to the project directory:
cd node-deployer
-
Install dependencies using pnpm:
pnpm install
-
Ensure Redis is installed and running on your machine:
- Install Redis if not already installed:
sudo apt-get install redis-server
- Start Redis:
sudo service redis-server start
- Install Redis if not already installed:
-
Install influxDB:
-
Install influxDB based on your Linux distribution. For example, on Debian/Ubuntu:
sudo apt-get install influxdb
-
-
Start the back-end server:
pnpm run start
-
Navigate to the project directory:
cd node-deployer
- NestJS Documentation
- Redis Documentation
- MongoDB Documentation
- Prisma Documentation
- influxDB Documentation
- Redis Documentation
- Stripe Documentation
- JWT Documentation
- Docker Documentation
Explore a comprehensive demonstration of WeBuild in action via the following video:
Feel free to contribute to this project by submitting pull requests or opening issues for any bugs or feature requests.