Skip to content

lumenlabss/LumenOne

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

image

LumenOne Pre-Alpha

❗ 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.


✨ Key Features (some feature not available now)

  • πŸŽ›οΈ 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
⚠️ LumenOne currently doesn't encrypt user passwords. This will be fixed in Alpha 1.0.0 or BΓͺta 1.0.0, but for now, just don't leak your "lumenone.db".

πŸš€ Installation

Prerequisites

  • Node.js (version 18 or higher)
  • npm or yarn
  • SQLite database (default)
  • Linux or Windows (recommended: Linux)
  • Nginx

Installation Steps

  1. Go to :

    cd var/www/
  2. Clone the repository:

    git clone https://github.com/lumenlabss/LumenOne.git
    cd LumenOne
  3. Install dependencies:

    npm install
  4. Configure the config/config.json file:

    {
      "hostname": "localhost",
      "port": 3000,
      "name": "LumenOne",
      "version": "Pre-Alpha"
    }
  5. Start the server:

    node lumenone.js
  6. Access the web interface:

    http://localhost:3000
    
  7. 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;
     }
    }
    

πŸ“„ License

LumenOne is distributed under the MIT license. You are free to use, modify, and distribute it.


🀝 Contributing

Contributions are welcome! Here's how you can contribute:

  1. Fork the project
  2. Create a branch (git checkout -b feature/feature-name)
  3. Commit your changes (git commit -am 'Add a new feature')
  4. Push your changes (git push origin feature/feature-name)
  5. Open a Pull Request

βœ… ToDo List

Project completion : ⁓ 25%

Core

  • 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)

Web

  • 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)

Backend

  • 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

Users pages (frontend)

  • Websites & Domains
  • Mail (To be realized potentially by the community)
  • Backup
  • Statistics (To be realized potentially by the community)
  • Users
  • Account

Admin pages (frontend)

  • Customers
  • Service Plans
  • Subscriptions
  • Information
  • Settings

Users pages (Backend)

  • Websites & Domains
  • Mail (To be realized potentially by the community)
  • Backup
  • Statistics (To be realized potentially by the community)
  • Users
  • Account

Admin pages (Backend)

  • Customers
  • Service Plans
  • Subscriptions
  • Information
  • Settings

Modules

  • Let's Encrypt SSL certificates (automatic generation and renewal)
  • Integrated webmail (Rainloop, Roundcube)
  • Application installation (WordPress, Joomla, etc.)
  • Resource monitoring (CPU, RAM, storage)

Bonus

  • 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

πŸ’¬ Community

Join the LumenLabs community to ask questions, report bugs, or propose ideas:


πŸŽ‰ Acknowledgments

Thanks to all contributors and users who support the LumenOne project!

Star History

Star History Chart