A self-hosted, modern web interface for managing PM2 processes. Built with SvelteKit, TypeScript, and Tailwind CSS, PM2Pilot is designed to be deployed on your own infrastructure - perfect for managing PM2 applications on any environment where you need a beautiful, intuitive interface for PM2.
This project is in its very early stages. Currently, only the UI framework and basic infrastructure are in place. The login page is purely visual with no authentication functionality yet. This repository is primarily for developers interested in contributing to or following the project's development.
- 🎨 Modern, responsive interface for managing PM2 processes
- 🔄 Real-time monitoring and control of your PM2 processes
- 🛡️ Secure access to your server's processes
🚧 Active Development 🚧
What's implemented:
- ✅ Modern, responsive UI with Tailwind CSS
- ✅ Visual login interface (UI only, no functionality)
- ✅ Vanta.js background effects
- ✅ TypeScript integration
- ✅ Basic PM2 client connection structure
What's coming next:
- ⏳ Login functionality
- ⏳ Process management features
- ⏳ Real-time monitoring
- ⏳ User authentication
- ⏳ Dashboard implementation
- SvelteKit - Full-stack framework
- TypeScript - Type safety
- Tailwind CSS - Styling
- Vanta.js - Interactive backgrounds
- PM2 - Process management
- Biome - Linting and formatting
- Bun (recommended) or Node.js
- PM2 installed globally (
npm install -g pm2) - Basic understanding of SvelteKit and TypeScript
If you're interested in contributing or following the development:
-
Clone the repository:
git clone https://github.com/Valhalla-Development/PM2Pilot.git cd PM2Pilot -
Install dependencies:
bun install
-
Configure your development environment:
- Update
vite.config.tswith your domain and port settings - Make sure PM2 is running locally
- Update
-
Start the development server:
bun run dev
The project uses Vite for configuration. Key settings can be found in vite.config.ts:
// Development server
server: {
port: 4173, // Change if needed
strictPort: true, // Fails if port is in use
allowedHosts: ['your-app.example.com'], // Add your domain
hmr: {
clientPort: 443, // HTTPS port
protocol: 'https' // Use 'http' if not using HTTPS
}
}
// Production preview
preview: {
port: 5173, // Preview server port
strictPort: true,
host: true, // Allow external access
allowedHosts: ['your-app.example.com']
}We're actively looking for contributors to help shape this project! Areas where we need help:
- 🔐 Authentication implementation
- 📊 Dashboard design and functionality
- 🔄 PM2 process management features
- 🎨 UI/UX improvements
- 📝 Documentation
- 🐛 Bug reporting
Please feel free to:
- Open an issue to discuss features or bugs
- Submit a pull request
- Join our development discussions
This project is licensed under the GPL-3.0-or-later License - see the LICENSE file for details.
- PM2 for the amazing process manager
- Vanta.js for the beautiful background effects
- The SvelteKit and Tailwind CSS communities for their excellent documentation