| ❗ LumenOne is under development: some features may be unstable or incomplete. Its use in a production environment is strongly discouraged at this time. |
|---|
LumenOne is a free and open-source alternative to Plesk, designed to simplify web hosting management (websites, domains, databases, FTP, emails, etc.) through a modern, intuitive, and lightweight interface. Developed in Node.js, LumenOne aims to provide a performant and extensible solution for developers and system administrators.
- 🎛️ Simple, responsive, and modern web interface
- 🌐 Domain & subdomain management
- 📁 File management (via SFTP/WebFTP)
- 🐬 Database management (SQLite)
- 📤 FTP account management
- 📧 Email management (optional)
- 🐳 Docker integration (optional for service isolation)
- 🔐 Let's Encrypt SSL certificates
- 🧩 Module/extension system for customization
- 🔄 REST API for automation and integration
- Node.js (version 18 or higher)
- npm or yarn
- SQLite database (default)
- Linux or Windows (recommended: Linux)
- Nginx
-
Go to :
cd var/www/ -
Clone the repository:
git clone https://github.com/lumenlabss/LumenOne.git cd LumenOne -
Install dependencies:
npm install
-
Configure the
config/config.jsonfile:{ "hostname": "localhost", "port": 3000, "name": "LumenOne", "version": "Pre-Alpha" } -
Start the server:
node lumenone.js
-
Access the web interface:
http://localhost:3000 -
Nginx Config:
server { listen 80; server_name example.com; # Replace with your domain # Redirect all HTTP requests to your Node.js application location / { proxy_pass http://localhost:3000; # Replace with the port on which your Node.js app is listening proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
LumenOne is distributed under the MIT license. You are free to use, modify, and distribute it.
Contributions are welcome! Here's how you can contribute:
- Fork the project
- Create a branch (
git checkout -b feature/feature-name) - Commit your changes (
git commit -am 'Add a new feature') - Push your changes (
git push origin feature/feature-name) - Open a Pull Request
Project completion : ⁓ 22%
- User authentication (login, logout, sessions)
- Role system (admin, user)
- Dashboard for service management (web, FTP, databases)
- User/action logs system (audit)
- devloppement and production mode (production = no logs)
- Welcome interface with service summary
- Domain and subdomain management
- Integrated file manager (upload, delete, edit)
- Interface for database management (create, delete, access)
- REST API (users, domains, files, databases)
- Security (rate limiting, JWT token management, CSRF protection)
- Multi-server support for scalability
- Size limit system (normally works)
- Code reorganization into modules (
src) - Create a Middlewares files (
src/middlewares/exemple.js) - Optimize code (make it faster, more readable, more orderly, etc.)
- Websites & Domains
- Backup
- Statistics
- Users
- Account
- Customers
- Service Plans
- Subscriptions
- Information
- Settings
- Let's Encrypt SSL certificates (automatic generation and renewal)
- Integrated webmail (Rainloop, Roundcube)
- Application installation (WordPress, Joomla, etc.)
- Resource monitoring (CPU, RAM, storage)
- Complete documentation (installation, API, development)
- Mobile-friendly interface
- Multiple theme (Light theme, Plesk theme, and other)
- Notification system (emails, alerts)
- Language system
- Docker integration (optional for service isolation)
- Add
console.log("exemple.js loaded");for all backend files - 2FA system
- Recent logins
Join the LumenOne community to ask questions, report bugs, or propose ideas:
Thanks to all contributors and users who support the LumenOne project!