Documentation
Comprehensive guide to installing, configuring, and deploying with Kasion.
1. The Mission
Kasion is a self-hosted Platform-as-a-Service (PaaS) specifically optimized for Spring Boot applications. Our goal is to provide the "Heroku Experience" (Git-push-to-deploy) on commodity infrastructure.
Core Philosophy: "Just Enough." No Kubernetes complexity. No heavy orchestration. Just Docker and Java.
2. Getting Started
Prerequisites
- Java 21+ (JDK)
- Docker (Must be running and accessible via terminal)
- Git (Installed on the host machine)
Installation
1. Clone the repository:
git clone https://github.com/lawrencedcodes/kasion-platform.git
cd kasion-platform
2. Create the infrastructure network:
docker network create kasion-net
3. Start the Control Plane:
./mvnw spring-boot:run
Once running, the dashboard is accessible at http://localhost:8080.
3. System Architecture
Kasion operates as a "Meta-Application" (The Control Plane) that manages sibling containers.
Components
- The Control Plane (Host): Spring Boot Application (Java 21). Connects to the Host Docker Socket to orchestrate containers.
- The Build Engine (Async Service): Handles cloning, build strategy detection (`mvnw` vs system Maven), artifact compilation, and Docker image generation.
-
The Runtime (User Apps):
Deployed as isolated Docker containers on the
kasion-netbridge network.
4. Development Guidelines
If you are contributing to Kasion or debugging deployment issues:
- Network Isolation: All user apps launch on
kasion-net. - Resource Limits: Docker commands consider memory limits to prevent OOM kills on small VPS instances.
- Java 21: The platform leverages modern Java features like Records and Virtual Threads.
5. Roadmap
- ✅ v0.2: Universal Maven Build Strategy & Basic Orchestration.
- 🚧 v0.3: Managed Databases (Postgres auto-provisioning).
- 🚧 v0.4: Zero-Downtime Deployment (Blue/Green switchovers).