control-panel-laravel

Control panel built on the latest technologies, including Docker, Laravel 11, PHP 8.3, Filament 3.2 and Livewire 3.5

Stars
11

Liberu Dockerised Webhosting Control Panel Open Source Love

Hosted application packages

Overview

  • User Authentication: Secure login and registration with Jetstream.
  • Profiles: Customizable user profiles with avatars and bio information.
  • Real-Time Notifications: Stay updated with real-time in-app notifications.
  • Private Messaging: Direct messaging between users.
  • Search: Find users, posts, and groups easily with powerful search functionality.
  • Admin Panel: Manage users, posts, and settings with Filament.
  • Responsive Design: Optimized for both desktop and mobile devices.
  • Extensible: Modular architecture for easy feature extension and customization.

Our Projects

Control Panel Features Summary

General Features

  1. User Authentication and Authorization

    • Secure login for administrators and users.
    • Role-based access control to restrict features based on user roles.
  2. Dashboard

    • Overview of system status and resource usage (CPU, memory, disk).
    • Quick access to recent activities and system alerts.

NGINX Virtual Hosts Management

  1. Create and Manage Virtual Hosts

    • Easy-to-use interface for adding, editing, and deleting virtual hosts.
    • Support for SSL/TLS configuration including Let's Encrypt integration.
    • Configure root directory, server name, and additional server directives.
  2. Template Management

    • Use and customize templates for common configurations.
    • Option to apply custom configurations per host.

BIND DNS Records Management

  1. DNS Zone Management

    • Create, edit, and delete DNS zones.
    • Overview of existing zones and their status.
  2. DNS Record Management

    • Add, edit, and remove DNS records (A, AAAA, CNAME, MX, TXT, etc.).
    • View all records for a specific zone.
    • Propagation status and error checking.

Postfix and Dovecot Email Management

  1. Email Domain Management

    • Add and manage email domains.
    • Configure domain-specific settings.
  2. Email Account Management

    • Create, edit, and delete email accounts.
    • Set mailbox quotas and forwarding rules.
    • Password management and reset functionality.
  3. Email Aliases and Forwarders

    • Create and manage email aliases.
    • Configure email forwarders for account redirection.

MySQL Database Management

  1. Database Creation and Management

    • Create, edit, and delete databases.
    • Assign databases to specific users.
  2. User Management

    • Create, edit, and delete database users.
    • Manage user permissions and access rights.
  3. Backup and Restore

    • Scheduled and manual backups of databases.
    • Restore databases from backups with a few clicks.

Docker Compose Integration

  1. Service Deployment

    • One-click deployment of all services using Docker Compose.
    • Manage individual service status (start, stop, restart).
  2. Configuration Management

    • Edit Docker Compose YAML configuration directly from the control panel.
    • Apply and save changes to configurations seamlessly.
  3. Logs and Monitoring

    • View real-time logs for each service.
    • Monitor health and performance metrics of containers.
  4. Updates and Maintenance

    • Automated updates for Docker images.
    • Maintenance mode to safely perform system updates and backups.

User Interface

  • Responsive Design
    • Accessible from desktop and mobile devices.
  • Intuitive Navigation
    • User-friendly interface with clear navigation and helpful tooltips.
  • Search and Filter
    • Quickly find specific hosts, records, email accounts, and databases with search and filter options.

This control panel would streamline the management of web hosting, DNS, email, and databases, making it ideal for web administrators and hosting providers.

Setup with Docker

  1. Ensure you have Docker and Docker Compose installed on your system.
  2. Clone this repository:
    git clone https://github.com/liberu-control-panel/control-panel-laravel.git
    cd control-panel-laravel
    
  3. Copy the .env.example file to .env:
    cp .env.example .env
    
  4. Update the .env file with your desired configuration, especially the CONTROL_PANEL_DOMAIN and LETSENCRYPT_EMAIL variables.
  5. Run the setup script:
    ./setup.sh
    

The setup script will:

  • Build the Docker images
  • Start the Docker containers
  • Run database migrations
  • Seed the database
  • Optimize Laravel

Once the setup is complete, you can access the control panel at http://localhost or the domain you specified in the .env file.

Docker Commands

  • To start the containers:

    docker-compose up -d
    
  • To stop the containers:

    docker-compose down
    
  • To view container logs:

    docker-compose logs
    
  • To run artisan commands:

    docker-compose exec control-panel php artisan <command>
    

Development Workflow

  1. Make changes to your code locally.
  2. The changes will be reflected in the running Docker containers due to volume mapping.
  3. If you need to rebuild the containers after making changes to the Dockerfile or docker-compose.yml:
    docker-compose up -d --build
    

Troubleshooting

  • If you encounter permission issues, you may need to adjust the ownership of the project files:

    sudo chown -R $USER:$USER .
    
  • If the containers are not starting properly, check the logs:

    docker-compose logs
    

Building with Docker

To build the Dockerfile manually:

  1. Ensure you have Docker installed on your system.
  2. Open a terminal in the project folder.
  3. Run the following command to build the Docker image:
    docker build -t control-panel-laravel .
    
  4. Once the image is built, you can run the container with:
    docker run -p 8000:8000 control-panel-laravel
    

NOTE: Ensure your .env file is correctly configured with your database connection details before running migrations.

Using Laravel Sail

This project also includes support for Laravel Sail, which provides a Docker-based development environment. To use Laravel Sail, follow these steps:

  1. Ensure you have Docker installed on your system.
  2. Open a terminal in the project folder.
  3. Run the following command to start the Laravel Sail environment:
    ./vendor/bin/sail up
    
  4. Once the containers are running, you can access the application at http://localhost.
  5. To stop the Sail environment, press Ctrl+C in the terminal.

For more information on using Laravel Sail, refer to the official documentation.

Description

Licensed under MIT, use for any personal or commercial project.

Demostration website

Contributions

We warmly welcome new contributions from the community! We believe in the power of collaboration and appreciate any involvement you'd like to have in improving our project. Whether you prefer submitting pull requests with code enhancements or raising issues to help us identify areas of improvement, we value your participation.

If you have code changes or feature enhancements to propose, pull requests are a fantastic way to share your ideas with us. We encourage you to fork the project, make the necessary modifications, and submit a pull request for our review. Our team will diligently review your changes and work together with you to ensure the highest quality outcome.

However, we understand that not everyone is comfortable with submitting code directly. If you come across any issues or have suggestions for improvement, we greatly appreciate your input. By raising an issue, you provide valuable insights that help us identify and address potential problems or opportunities for growth.

Whether through pull requests or issues, your contributions play a vital role in making our project even better. We believe in fostering an inclusive and collaborative environment where everyone's ideas are valued and respected.

We look forward to your involvement, and together, we can create a vibrant and thriving project. Thank you for considering contributing to our community!

License

This project is licensed under the MIT license, granting you the freedom to utilize it for both personal and commercial projects. The MIT license ensures that you have the flexibility to adapt, modify, and distribute the project as per your needs. Feel free to incorporate it into your own ventures, whether they are personal endeavors or part of a larger commercial undertaking. The permissive nature of the MIT license empowers you to leverage this project without any unnecessary restrictions. Enjoy the benefits of this open and accessible license as you embark on your creative and entrepreneurial pursuits.

Contributors