Skip to content

CLOVER, a cloud orchestration tool that integrates DNS management, Docker orchestration, Nginx configuration, and system monitoring into a unified web interface. It streamlines resource deployment, automates workflows with Cloudflare API integration, and ensures scalability with Docker containers for improved reliability.

Notifications You must be signed in to change notification settings

IM-TECHNO/CLOVER

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CLOVER (Cloud Orchestrator for Versatile and Efficient Resource Management)

CLOVER is a lightweight yet powerful cloud orchestration tool designed to simplify and streamline the deployment, management, and monitoring of resources. With CLOVER, you can handle DNS records, deploy and terminate Docker containers, manage Nginx configurations, and monitor system metrics all in one place.

Features

  • Manage DNS records through Cloudflare API
  • Deploy and terminate Docker containers effortlessly
  • Automatically configure and manage Nginx sites
  • View system metrics (CPU, RAM, Disk usage)
  • Easy-to-use web interface

Prerequisites

  • Python 3.8 or higher
  • Docker installed and running
  • Nginx installed and configured
  • Cloudflare account with API Token and Zone ID

Setup Instructions

  1. Clone the Repository

    git clone <repository-url>
    cd <repository-folder>
  2. Install Dependencies Install the required Python packages:

    pip install -r requirements.txt
  3. Configure Environment Variables Create a .env file in the root directory with the following content ( or a sample is provided, just rename it and replace with your credentials):

    CLOUDFLARE_API_TOKEN=q2-"YOUR API TOKEN"
    CLOUDFLARE_ZONE_ID="YOUR ZONE ID"
    API_URL="YOUR URL"
    DOMAIN="YOUR DOMAIN"
    IPADDRESS="SERVER IP ADDRESS"
    AUTHORIZED_UIDS="UIDs (Separated by comma)"

    Replace the placeholder values with your actual credentials and configuration.

  4. Modify Firebase Configuration Update the Firebase configuration in templates/login.html to match your Firebase project settings:

    <script>
        const firebaseConfig = {
            apiKey: "YOUR_API_KEY",
            authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
            projectId: "YOUR_PROJECT_ID",
            storageBucket: "YOUR_PROJECT_ID.appspot.com",
            messagingSenderId: "YOUR_SENDER_ID",
            appId: "YOUR_APP_ID"
        };
        firebase.initializeApp(firebaseConfig);
    </script>
  5. Build the Docker Image To simplify deployment, CLOVER includes a Dockerfile. Build the Docker image with the following command:

    docker build -t clover:latest .
  6. Run the Docker Container Use the following command to start the application as a Docker container:

    docker run -d --env-file .env -p 5555:5555 clover:latest
  7. Access the Application Open your browser and navigate to http://<your-server-ip>:5555.

How to Use

Deployment

  1. Log in using authorized credentials.
  2. Navigate to the deployment page.
  3. Fill out the form with the necessary details (e.g., port, subdomain, image name).
  4. Submit the form to deploy the application.

Termination

  1. Navigate to the termination page.
  2. Enter the subdomain and container name.
  3. Submit the form to terminate the resources.

Logs

  1. Navigate to the logs page.
  2. Select a container to view its logs.

Contribution

Contributions are welcome! Please fork the repository and submit a pull request with your changes.


If you have any questions or need assistance, feel free to reach out.

About

CLOVER, a cloud orchestration tool that integrates DNS management, Docker orchestration, Nginx configuration, and system monitoring into a unified web interface. It streamlines resource deployment, automates workflows with Cloudflare API integration, and ensures scalability with Docker containers for improved reliability.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published