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.
-
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.
You can run Nephelios either directly or using Docker Compose:
-
Clone the Repository:
git clone https://github.com/Nephelios/nephelios.git cd nephelios
-
Install Dependencies: Ensure you have Rust installed. Then, build the project:
cargo build --release
-
Configure the Environment: Copy the example environment file and adjust configurations as needed:
cp .env.example .env
-
Run the Agent: Start the Nephelios agent:
cargo run --release
-
Clone the Repository:
git clone https://github.com/Nephelios/nephelios.git cd nephelios
-
Configure Environment:
cp .env.example .env # Edit .env with your configuration
-
Start with Docker Compose:
docker-compose up -d
This will build and start the Nephelios service with all required configurations.
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
Nephelios uses Docker and Docker Compose for containerization and orchestration:
The project includes a multi-stage Dockerfile that:
- Builds the Rust application in a builder stage
- Creates a minimal runtime image with only necessary dependencies
- Includes Docker CLI for container management
The docker-compose.yml
file provides a simple way to run Nephelios locally with all required configurations and volume mounts.
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
We welcome contributions from the community! To contribute:
-
Fork the Repository: Click on the "Fork" button at the top right of this page.
-
Create a Branch: Create a new branch for your feature or bugfix.
git checkout -b feature/your-feature-name
-
Make Changes: Implement your feature or fix.
-
Commit Changes: Commit your changes with a descriptive message.
git commit -m "Add feature: your feature description"
-
Push to GitHub: Push your changes to your forked repository.
git push origin feature/your-feature-name
-
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.
No licence has been chosen yet.
For more information and updates, visit our GitHub Organization.