Skip to content

Latest commit

Β 

History

History
75 lines (56 loc) Β· 2.22 KB

File metadata and controls

75 lines (56 loc) Β· 2.22 KB

PM2 Web Manager πŸš€

A light weight web manager for all your PM2 processes


Screenshots in site:


Screen Shot 2026-02-22 at 20 23 09

✨ Features

  • πŸ”’ High Security: Password hashing with Argon2id.
  • πŸ›‘οΈ Two-Factor Auth (2FA): Support for TOTP (Google Authenticator, Authy, etc.).
  • πŸ“Š Real-time Monitoring: CPU, memory, and uptime tracking for all processes.
  • πŸ“œ Log Explorer: Live terminal logs with "Load More" pagination and separate Standard/Error streams.
  • πŸ’Ύ Persistent Sessions: SQLite-backed session storage that survives server restarts.
  • πŸ› οΈ Remote Control: Start, stop, restart, and add processes directly from the UI.

πŸ› οΈ Installation

1. Prerequisites

  • Node.js (v18 or higher recommended)
  • PM2 installed globally: npm install -g pm2

2. Setup

Clone the repository and install dependencies:

git clone https://github.com/leodenglovescode/pm2-webmanager.git
cd pm2-webmanager
npm install

3. Start the Manager

You can run it directly with NPX without even installing:

npx pm2-webmanager

Or (Recommended) deploy it as a PM2 service for 24/7 uptime:

pm2 start server.js --name "pm2-webmanager" && pm2 save

Or install it globally and use the command:

npm install -g pm2-webmanager
pm2-webmanager

πŸš€ Usage

  1. Open your browser and navigate to http://localhost:3434.
  2. First Run: You will be prompted to create an Administrator account. This is a one-time registration.
  3. 2FA Setup: Go to the Settings tab to enable Two-Factor Authentication for maximum security.
  4. Manage: Click any process in the list to view its real-time logs and detailed statistics.

πŸ“¦ Dependencies

  • Express: Web framework.
  • PM2: Programmatic control of process list.
  • Argon2: Secure password hashing.
  • Otplib & QRCode: TOTP-based 2FA.
  • Connect-SQLite3: Persistent session store.
  • Tailwind CSS: Modern UI styling.

Coding Guide

  • Framework and prompt by @leodenglovescode
  • Code generated by Github Copilot