Skip to content

Nephelios/nephelios

Repository files navigation

Nephelios: Rust-Based Platform-as-a-Service (PaaS) Agent

Welcome to the Nephelios repository! This project is the core of our open-source Platform-as-a-Service (PaaS) solution, designed to streamline cloud application deployment and management. Built with Rust, Nephelios offers a robust and efficient backend to support your applications seamlessly.

🚀 Key Features

  • Effortless Application Deployment: Deploy your applications to the cloud with minimal configuration, allowing you to focus on development rather than infrastructure.

  • Real-Time Monitoring: Track resource consumption and application performance in real-time, providing you with valuable insights and control.

  • Scalability: Easily scale your applications to meet demand without manual intervention.

  • Secure Environment: Benefit from built-in security features ensuring your applications run safely in the cloud.

  • Docker Integration: Fully containerized solution with Docker and Docker Compose support for easy deployment and scaling.

  • Service Orchestration: Integrated with Docker Swarm for container orchestration and service management.

  • Reverse Proxy & SSL: Built-in Traefik integration for automatic routing and SSL certificate management.

🛠️ Getting Started

You can run Nephelios either directly or using Docker Compose:

Standard Installation

  1. Clone the Repository:

    git clone https://github.com/Nephelios/nephelios.git
    cd nephelios
  2. Install Dependencies: Ensure you have Rust installed. Then, build the project:

    cargo build --release
  3. Configure the Environment: Copy the example environment file and adjust configurations as needed:

    cp .env.example .env
  4. Run the Agent: Start the Nephelios agent:

    cargo run --release

Docker Compose Installation

  1. Clone the Repository:

    git clone https://github.com/Nephelios/nephelios.git
    cd nephelios
  2. Configure Environment:

    cp .env.example .env
    # Edit .env with your configuration
  3. Start with Docker Compose:

    docker-compose up -d

    This will build and start the Nephelios service with all required configurations.

📂 Project Structure

Here's an overview of the repository structure:

nephelios/
├── src/                # Source code directory
│   ├── main.rs         # Entry point of the application
│   ├── routes.rs       # HTTP route definitions
│   └── services/       # Service implementations
│       ├── app_service.rs      # Manages application lifecycle
│       ├── nginx_service.rs    # Handles NGINX configuration
│       └── helpers/
│           ├── github_helper.rs   # Utilities for GitHub interactions
│           └── docker_helper.rs   # Utilities for Docker operations
├── tests/              # Integration and unit tests
├── .env.example        # Example environment configuration
├── Cargo.toml          # Rust project configuration
├── Dockerfile          # Container definition for building and running Nephelios
├── docker-compose.yml  # Docker Compose configuration for local development
├── nephelios.yml       # Service orchestration configuration
├── prometheus.yml      # Prometheus monitoring configuration
├── grafana/            # Grafana dashboard configurations
├── dashboards/         # Custom monitoring dashboards
└── README.md           # This file

🛠️ Docker & Orchestration

Nephelios uses Docker and Docker Compose for containerization and orchestration:

Docker Setup

The project includes a multi-stage Dockerfile that:

  1. Builds the Rust application in a builder stage
  2. Creates a minimal runtime image with only necessary dependencies
  3. Includes Docker CLI for container management

Docker Compose

The docker-compose.yml file provides a simple way to run Nephelios locally with all required configurations and volume mounts.

Service Orchestration

The nephelios.yml configuration defines a complete service stack including:

  • Registry: Private Docker registry for application images
  • Traefik: Edge router for service discovery and SSL termination
  • Prometheus: Metrics collection and storage
  • Grafana: Metrics visualization and dashboards
  • Nephelios Frontend: User interface for the PaaS platform

🤝 Contributing

We welcome contributions from the community! To contribute:

  1. Fork the Repository: Click on the "Fork" button at the top right of this page.

  2. Create a Branch: Create a new branch for your feature or bugfix.

    git checkout -b feature/your-feature-name
  3. Make Changes: Implement your feature or fix.

  4. Commit Changes: Commit your changes with a descriptive message.

    git commit -m "Add feature: your feature description"
  5. Push to GitHub: Push your changes to your forked repository.

    git push origin feature/your-feature-name
  6. Create a Pull Request: Open a pull request to merge your changes into the main repository.

For detailed guidelines, please refer to our CONTRIBUTING.md file.

📄 License

No licence has been chosen yet.


For more information and updates, visit our GitHub Organization.