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-net bridge 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).