Skip to content

sangkan-dev/saka

Repository files navigation

🏛️ SAKA: The Pillar of Automated Deployment

"Penyangga Otomatisasi Deployment Anda."

SAKA adalah platform PaaS (Platform as a Service) self-hosted yang memungkinkan developer untuk deploy aplikasi dari Git ke Production dalam hitungan menit tanpa perlu memikirkan infrastruktur.

✨ Fitur Utama

  • 🚀 Zero-Config Deployment: Push kode, SAKA otomatis detect stack dan build
  • 🔄 GitOps Automation: Auto-deploy dari GitHub/GitLab push
  • 🌐 Smart SSL Routing: Automatic HTTPS dengan Let's Encrypt
  • 👥 Team Management: Multi-tenancy dengan role-based access
  • 💳 Billing Integration: Subscription management dengan Duitku
  • 🔒 Enterprise-Ready: Super Admin system untuk platform management

🏗️ Arsitektur

SAKA menggunakan Master-Agent Architecture:

  • Control Plane (Dashboard): Laravel 12 + React + Inertia.js + TypeScript
  • Execution Plane (Agent): Rust + Tokio + Docker API

Tech Stack

Dashboard (Master)

  • Backend: PHP 8.5+ / Laravel 12
  • Frontend: React 19 + TypeScript + TailwindCSS
  • Real-time: Laravel Reverb (WebSockets)
  • Queue: Laravel Horizon (Redis)
  • Database: PostgreSQL
  • Payment: Duitku Laravel SDK

Agent

  • Language: Rust (Async/Tokio)
  • Container Runtime: Docker (Bollard)
  • Git: libgit2
  • WebSocket: tokio-tungstenite

🚀 Quick Start

Prerequisites

  • Docker & Docker Compose
  • Git
  • Make (optional, untuk development)

Installation (Dashboard)

cd dashboard

# Setup environment
cp .env.example .env

# Start with Laravel Sail
./vendor/bin/sail up -d

# Setup database
./vendor/bin/sail artisan migrate --seed

# Create Super Admin
./vendor/bin/sail artisan saka:make-super-admin admin@example.com

Installation (Agent)

cd agent

# Build
cargo build --release

# Run
./target/release/agent --token YOUR_SERVER_TOKEN

📖 Documentation

Project Structure

saka/
├── dashboard/           # Laravel Control Plane
│   ├── app/
│   │   ├── Domain/     # Pure business entities
│   │   ├── Usecase/    # Business logic orchestration
│   │   ├── Infrastructure/  # Database, External APIs
│   │   └── Http/       # Controllers, Middleware
│   └── resources/
│       └── js/         # React + TypeScript Frontend
│
└── agent/              # Rust Execution Agent
    └── src/
        ├── domain/     # Domain models
        ├── usecase/    # Business use cases
        └── infrastructure/  # Docker, Git, WebSocket

Development Workflow

Dashboard menggunakan Makefile untuk quality assurance:

# Format code (Pint + ESLint)
make format-dashboard

# Static analysis (PHPStan + TSC)
make check-dashboard

# Run tests (Pest)
make test-dashboard

Agent:

make format-agent    # rustfmt
make lint-agent      # clippy
make check-agent     # cargo check

👥 User Roles

System Level

  • Super Admin: Full platform access, can manage all servers and users

Team Level (Multi-tenancy)

  • Owner: Can manage billing, invite members, delete projects
  • Member: Can deploy projects, view logs
  • Viewer: Read-only access

🔐 Security

  • Strict Type Safety: PHP strict_types=1 + TypeScript strict mode
  • Authorization: Laravel Policies untuk row-level security
  • Encrypted Secrets: Environment variables encrypted (AES-256)
  • WSS Communication: Secure WebSocket untuk Master-Agent

💳 Billing Plans

SAKA mendukung subscription management:

  • Free Plan: Basic features untuk personal projects
  • Pro Plan: Enhanced features untuk small teams
  • Enterprise Plan: Full features untuk large organizations

Payment integration via Duitku (Indonesian payment gateway).

🤝 Contributing

  1. Fork repository
  2. Create feature branch (git checkout -b feature/amazing)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing)
  5. Open Pull Request

Code Quality Requirements:

  • Dashboard: Must pass make check-dashboard
  • Agent: Must pass make check-agent

📄 License

This project is open-sourced software licensed under the MIT license.

🙏 Credits

Developed with ❤️ by the SAKA Team.

Built With


Philosophy: "Jika Labuh adalah dermaga infrastruktur yang kokoh, maka Saka adalah tiang penyangga yang menyederhanakan beban di atasnya." 🏛️

About

The Pillar of Automated Deployment. (Penyangga Otomatisasi Deployment Anda)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors