pm2.web is a web-based application designed to monitor and manage processes running on your server using the PM2 process manager. With pm2.web, you can easily monitor your processes, control them with various actions, view logs, manage server functions, and even set up access controls for users.Easily install, deploy to Vercel, and utilize MongoDB Atlas to maintain a server with 0 open ports or host everything on-premise.
- Monitoring
- Process Management
- Server Management (Planned)
- Access Control
- Settings
- Alert Setup (Planned)
To get started with pm2.web, follow these steps:
- Setup Backend
- Setup Dashboard
Once pm2.web is installed and running, you can perform the following actions:
-
Monitoring:
- Monitor the status, resource usage, and health of your processes from the main dashboard.
-
Process:
- Stop, restart, or delete processes from the process list page.
- Access the logs generated by your processes.
- View key metrics, git versioning info and graphs to assess the performance of your applications.
- Pm2 Settings & Git Feature
-
Server Management (Planned/On Demand):
- Control server-level functions such as shutdown or restart using the dedicated server management page.
- Execute these actions securely without the need for direct server access.
- View key metrics and graphs
- Configure specific server settings (db log rotation , polling/update interval)
-
Access Control:
- Manage user access and permissions through the access control settings.
- Create user accounts, assign roles, and specify the level of access each user has to servers, processes, and application functions.
-
Settings:
- Configure settings such as the update interval, log rotation, and more.
-
Alert Setup (Planned/On Demand):
- Configure alerts to receive notifications for specific actions.
- Define alert rules based on events like shutdown, restart, or kill actions.
-
User Registration:
- User can register at the
/login
page - If a registration code is configured, the user needs to enter the code
- The 1st user which registers is automatically assigned the owner permission
- The owner can assign permissions to registered users through the access control page
- registered user without any permissions can't access the dashboard nor login
- accounts linked with oauth2 can't login with credentials (can be unlinked in the settings page)
- Setup Github OAuth
- https://github.com/settings/developers -> New OAuth App
- Configure the callback url to
http://<domain|ip:port>/api/auth/callback/github
- Add
NEXT_PUBLIC_GITHUB_CLIENT_ID
andNEXT_GITHUB_SECRET
to the.env
file with the values from the OAuth App - Usage: Only registered users (per credentials) can login with auth2, which links the oauth2 with the existing user account in the database
- Setup Registration Code
- Go to the settings page and add/generate the registration code
- Setup Google OAuth (Planned/On Demand)
- TBD
- Setup Github OAuth
- User can register at the
- E2E Tests for current functionality
- Performance Improvements for Charts & Logs
Contributions to pm2.web are welcome! If you would like to contribute to the project, please follow these guidelines:
-
Fork the repository on GitHub.
-
Create a new branch from the
master
branch to work on your changes. -
Make your modifications and ensure they adhere to the project's coding standards.
-
Commit your changes with clear and descriptive commit messages.
-
Push your branch to your forked repository.
-
Submit a pull request to the
master
branch of the main pm2.web repository.
pm2.web is released under the GNU General Public License v3.0. For more information, please refer to the LICENSE file.
For any questions, issues, or feature requests, please refer to the project's GitHub repository: github.com/oxdev03/pm2.web.
Open an issue and provide details about your inquiry, and the community or maintainers will assist you as soon as possible.
pm2.web is built on the foundation of the PM2 process manager (BUS Api) (pm2.keymetrics.io). We acknowledge and appreciate the PM2 team's efforts.
The pm2.web project is currently maintained and supported by a single developer.
pm2.web is not affiliated with or endorsed by PM2 or (pm2.keymetrics.io). pm2.web is an independent project created by a third-party developer.