Cloudness
An open-source & self-hostable alternative to Heroku / Netlify / Vercel for Kubernetes.
π About the Project
Cloudness is an open-source & self-hostable platform for deploying and managing applications on Kubernetes.
It helps you manage your servers, applications, and databases on your own infrastructure; you only need a Kubernetes cluster. You can manage any Kubernetes cluster - cloud providers, on-premises, Raspberry PIs, and anything else.
Imagine having the ease of a cloud platform like Heroku, but with your own infrastructure. That is Cloudness.
No vendor lock-in - all configurations for your applications, databases, and services are stored as Kubernetes manifests. If you decide to stop using Cloudness, you can still manage your running resources. You lose the automations and all the magic. πͺ
π₯ Installation
curl -fsSL https://get.cloudness.io/install.sh | bash
Note: Please refer to the documentation for more information about installation and configuration.
β¨ Features
- π Easy Deployment - Deploy applications to Kubernetes with minimal configuration
- π CI/CD Integration - Built-in pipeline support for automated builds and deployments
- π¦ Template System - Pre-configured templates for common services (PostgreSQL, Redis, MySQL, Valkey)
- π Authentication & Authorization - Secure access control with multi-tenant support
- π Project Management - Organize applications, environments, and deployments
- π Real-time Logs - Stream application logs in real-time
- π― Multi-tenant - Support for multiple organizations and projects
π¬ Support
π οΈ Development
Pre-Requisites
Install the latest stable version of Node and Go version 1.21 or higher. Ensure the GOPATH bin directory is added to your PATH.
Clone the repository
git clone https://github.com/cloudness-io/cloudness.git
cd cloudness
make dep
make tools
Build
Build the Cloudness binary:
make build
Run
This project supports all operating systems and architectures supported by Go. This means you can build and run the system on your machine; docker containers are not required for local development and testing.
To start the server at localhost:8000, simply run the following command:
./cloudness server .local.env
The application will start at http://localhost:8000. The database schemas will be auto-migrated on startup.
π» CLI
This project includes command line tools for development and running the service. For a full list of supported operations, please see:
./cloudness --help
βοΈ Configuration
Environment Variables
| Variable |
Description |
Default |
CLOUDNESS_DATABASE_DRIVER |
Database driver (postgres/sqlite) |
postgres |
CLOUDNESS_DATABASE_HOST |
Database host |
localhost |
CLOUDNESS_DATABASE_PORT |
Database port |
5432 |
CLOUDNESS_DATABASE_NAME |
Database name |
cloudness |
CLOUDNESS_DATABASE_USER |
Database username |
- |
CLOUDNESS_DATABASE_PASSWORD |
Database password |
- |
CLOUDNESS_PUBSUB_PROVIDER |
Pub/Sub provider (redis/inmem) |
inmem |
CLOUDNESS_REDIS_ENDPOINT |
Redis endpoint (if using) |
- |
CLOUDNESS_REDIS_PASSWORD |
Redis password |
- |
CLOUDNESS_DEBUG |
Enable debug logging |
false |
CLOUDNESS_TRACE |
Enable trace logging |
false |
π€ Contributing
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature)
- Commit your changes (
git commit -m 'Add amazing feature')
- Push to the branch (
git push origin feature/amazing-feature)
- Open a Pull Request
Please read our Code of Conduct before contributing.
ποΈ Architecture
Cloudness is built with:
- Backend: Go with Gin framework
- Frontend: HTML/Templ/Alpine.js/Tailwindcss
- Database: PostgreSQL (primary), MySQL (supported)
- Cache/Pub-Sub: Redis or in-memory
- Orchestration: Kubernetes
Project Structure
cloudness/
βββ app/ # Application core
β βββ auth/ # Authentication logic
β βββ controller/ # HTTP controllers
β βββ middleware/ # HTTP middleware
β βββ router/ # Route definitions
β βββ services/ # Business logic services
β βββ store/ # Application data stores
β βββ web/ # HTML Templ frontend
βββ blob/ # Blob storage interface
βββ cli/ # CLI implementation
βββ cmd/ # Application entrypoint
βββ errors/ # Error types and handling
βββ helpers/ # Utility functions
βββ http/ # HTTP client utilities
βββ job/ # Background job scheduler
βββ k8s/ # Kubernetes manifests
βββ lock/ # Distributed locking
βββ logging/ # Logging configuration
βββ logstream/ # Real-time log streaming
βββ plugins/ # Builder and deployer plugins
βββ profiler/ # Performance profiling
βββ pubsub/ # Pub/Sub implementation
βββ schema/ # JSON schemas
βββ scripts/ # Installation and ops scripts
βββ store/ # Database layer
βββ templates/ # Application templates
βββ types/ # Type definitions
βββ version/ # Version information
πΊοΈ Roadmap
- Enhanced monitoring and observability
- Multi-cloud support
- Advanced deployment strategies (canary, blue-green)
- Marketplace for community templates
- GitOps integration
- Cost optimization features
π License
This project is licensed under the Apache License 2.0, see LICENSE.
π Acknowledgments
Built using:
Made with β€οΈ by the Cloudness team