β 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.json
file:{ "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 : β 25%
- User authentication (login, logout, sessions)
- Role system for user (admin, user)
- Role system for php (admin, user, and custom)
- 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)
- Add backend integration
- Add stastisic (To be realized potentially by the community)
- 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.)
- Convert stastistic storage from .json to .db
- Websites & Domains
- Mail (To be realized potentially by the community)
- Backup
- Statistics (To be realized potentially by the community)
- Users
- Account
- Customers
- Service Plans
- Subscriptions
- Information
- Settings
- Websites & Domains
- Mail (To be realized potentially by the community)
- Backup
- Statistics (To be realized potentially by the community)
- 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 LumenLabs community to ask questions, report bugs, or propose ideas:
Thanks to all contributors and users who support the LumenOne project!