PHPackages                             bangkah/bangkah - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. bangkah/bangkah

ActiveProject[Framework](/categories/framework)

bangkah/bangkah
===============

The skeleton application for the Laravel framework.

v1.0.5(1mo ago)5361[5 PRs](https://github.com/Bangkah/bangkah-launcher/pulls)1PHPPHP ^8.2CI passing

Since Dec 14Pushed 1mo agoCompare

[ Source](https://github.com/Bangkah/bangkah-launcher)[ Packagist](https://packagist.org/packages/bangkah/bangkah)[ RSS](/packages/bangkah-bangkah/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (20)Versions (21)Used By (1)

🎯 Bangkah - Laravel Starter Kit
===============================

[](#-bangkah---laravel-starter-kit)

[![Laravel 12.x](https://camo.githubusercontent.com/5f32f51d9268f45b7376428e4a0bd33a004cdf420f9f92f2228a8e8a827a95e5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31322e782d4646324432303f7374796c653d666f722d7468652d6261646765266c6f676f3d6c61726176656c)](https://camo.githubusercontent.com/5f32f51d9268f45b7376428e4a0bd33a004cdf420f9f92f2228a8e8a827a95e5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31322e782d4646324432303f7374796c653d666f722d7468652d6261646765266c6f676f3d6c61726176656c)[![PHP 8.4+](https://camo.githubusercontent.com/baf7b2825d4f061fa24feeac0a6a420d6ca290c128a917a82b44e94e962cc855/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e342532422d3737374242343f7374796c653d666f722d7468652d6261646765266c6f676f3d706870)](https://camo.githubusercontent.com/baf7b2825d4f061fa24feeac0a6a420d6ca290c128a917a82b44e94e962cc855/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e342532422d3737374242343f7374796c653d666f722d7468652d6261646765266c6f676f3d706870)[![License MIT](https://camo.githubusercontent.com/9218332452902d9e542a100d0af126fd3174a116456614d2cf093546a13783db/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e2e7376673f7374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/9218332452902d9e542a100d0af126fd3174a116456614d2cf093546a13783db/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e2e7376673f7374796c653d666f722d7468652d6261646765)[![Composer](https://camo.githubusercontent.com/fab4118d7d7edf51398da948c841c3933fa4380eda65b2e08b6ce427a6a250bb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6d706f7365722d322e302532422d3838353633303f7374796c653d666f722d7468652d6261646765266c6f676f3d636f6d706f736572)](https://camo.githubusercontent.com/fab4118d7d7edf51398da948c841c3933fa4380eda65b2e08b6ce427a6a250bb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6d706f7365722d322e302532422d3838353633303f7374796c653d666f722d7468652d6261646765266c6f676f3d636f6d706f736572)

[![Docker](https://camo.githubusercontent.com/71ab5984364182c20d66c6e5e72bd16c92e21613099f31408071352223e6f5ed/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446f636b65722d52656164792d3234393645443f7374796c653d666f722d7468652d6261646765266c6f676f3d646f636b6572)](https://camo.githubusercontent.com/71ab5984364182c20d66c6e5e72bd16c92e21613099f31408071352223e6f5ed/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446f636b65722d52656164792d3234393645443f7374796c653d666f722d7468652d6261646765266c6f676f3d646f636b6572)[![codecov](https://camo.githubusercontent.com/a57890a0f24ca3d32aa822ec7713a7151fa898552b449328febffe071fc581a0/68747470733a2f2f636f6465636f762e696f2f67682f253343555345524e414d452533452f2533435245504f2533452f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d)](https://codecov.io/gh/%3CUSERNAME%3E/%3CREPO%3E)

[![CI](https://github.com/%3CUSERNAME%3E/%3CREPO%3E/actions/workflows/ci.yml/badge.svg)](https://github.com/%3CUSERNAME%3E/%3CREPO%3E/actions/workflows/ci.yml/badge.svg)[![Release](https://camo.githubusercontent.com/da6fc38ff5d840420388b79e61ebd694dcf8cfac1a9e6c2a43e610a81c88f1fb/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f253343555345524e414d452533452f2533435245504f2533453f7374796c653d666c61742d737175617265)](https://camo.githubusercontent.com/da6fc38ff5d840420388b79e61ebd694dcf8cfac1a9e6c2a43e610a81c88f1fb/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f253343555345524e414d452533452f2533435245504f2533453f7374796c653d666c61742d737175617265)[![Discussions](https://camo.githubusercontent.com/72968ef8b081b935dedcd43f3247ae29004d0e9554ef743ba770d8ac8c4584ad/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f64697363757373696f6e732f253343555345524e414d452533452f2533435245504f2533453f7374796c653d666c61742d737175617265)](https://camo.githubusercontent.com/72968ef8b081b935dedcd43f3247ae29004d0e9554ef743ba770d8ac8c4584ad/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f64697363757373696f6e732f253343555345524e414d452533452f2533435245504f2533453f7374796c653d666c61742d737175617265)

> 📢 **Baca juga:** [Skip the Boilerplate: Scaffold a Production-Ready Laravel Project in Seconds with Bangkah Starter](https://dev.to/bangkah/skip-the-boilerplate-scaffold-a-production-ready-laravel-project-in-seconds-with-bangkah-starter-31p8)

**Scaffold production-ready Laravel projects in seconds with Docker, Nginx, Authentication, and more!**

[Features](#-features) • [Installation](#-installation) • [Usage](#-usage) • [Examples](#-examples) • [Documentation](#-documentation) • [FAQ](#-faq)

---

📑 Table of Contents
-------------------

[](#-table-of-contents)

- [About](#about)
- [Features](#-features)
- [Requirements](#-requirements)
- [Installation](#-installation)
- [Quick Start](#-quick-start)
- [Usage](#-usage)
    - [Interactive Mode](#interactive-mode)
    - [Non-Interactive Mode](#non-interactive-mode)
    - [Command Options](#command-options)
- [Examples](#-examples)
- [Templates](#-templates)
- [Docker Configuration](#-docker-configuration)
- [Database Setup](#-database-setup)
- [Authentication](#-authentication)
- [Frontend Assets](#-frontend-assets)
- [Deployment](#-deployment)
- [Troubleshooting](#-troubleshooting)
- [FAQ](#-faq)
- [Development](#-development)
- [Advanced Usage](#-advanced-usage)
- [Project Structure Guide](docs/PROJECT_STRUCTURE.md)
- [Contributing](#-contributing)
- [Changelog](#changelog)
- [License](#-license)

---

🚦 CI &amp; Test Coverage
------------------------

[](#-ci--test-coverage)

- Pipeline CI otomatis menjalankan unit test, E2E test (jika diaktifkan), dan meng-upload laporan coverage ke [Codecov](https://codecov.io/gh/%3CUSERNAME%3E/%3CREPO%3E).
- Lihat badge coverage di atas untuk status terbaru.

### Menjalankan Test Lokal

[](#menjalankan-test-lokal)

```
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate --force
vendor/bin/phpunit --coverage-clover=coverage.xml
# Untuk E2E test (Laravel Dusk):
php artisan dusk
```

### E2E Test di CI

[](#e2e-test-di-ci)

Tambahkan dependensi Dusk:

```
composer require --dev laravel/dusk
```

Lalu aktifkan step berikut di workflow CI:

```
- name: Install ChromeDriver
  run: php artisan dusk:chrome-driver
- name: Run E2E tests (Dusk)
  run: php artisan dusk
```

🚀 Contoh Deployment Production
------------------------------

[](#-contoh-deployment-production)

Contoh workflow GitHub Actions untuk deploy ke server:

```
- name: Deploy to Production Server
  uses: appleboy/scp-action@v0.1.4
  with:
    host: ${{ secrets.PROD_HOST }}
    username: ${{ secrets.PROD_USER }}
    key: ${{ secrets.PROD_SSH_KEY }}
    source: "."
    target: "/var/www/html"
```

**Bangkah** adalah modern Laravel starter kit package yang dirancang untuk mempercepat development dengan menyediakan scaffolding otomatis untuk berbagai kebutuhan project. Dengan satu command, Anda bisa mendapatkan project Laravel yang sudah dikonfigurasi dengan Docker, Nginx, authentication, database, dan frontend framework pilihan Anda.

### Why Bangkah?

[](#why-bangkah)

- ⏱️ **Save Time**: Setup yang biasanya butuh 30-60 menit sekarang hanya 2-3 menit
- 🎯 **Best Practices**: Mengikuti Laravel conventions dan industry standards
- 🔧 **Flexible**: Customize sesuai kebutuhan dengan interactive CLI
- 📦 **Production Ready**: Docker configs yang optimized untuk production
- 🚀 **Modern Stack**: Support Laravel 12.x dengan latest features
- 🎨 **Frontend Agnostic**: Pilih Tailwind, Bootstrap, atau headless API
- 🔐 **Security First**: Auth scaffolding dengan Laravel official packages

### What Makes Bangkah Different?

[](#what-makes-bangkah-different)

Unlike other starter kits, Bangkah focuses on **simplicity** and **flexibility**:

- No opinionated architecture - just clean Laravel best practices
- Interactive CLI that adapts to your needs
- Docker configs optimized for both development and production
- Automatic asset building - no manual intervention needed
- Zero learning curve - standard Laravel structure

---

✨ Features
----------

[](#-features)

### 🚀 Zero Configuration

[](#-zero-configuration)

Interactive CLI wizard yang memandu Anda step-by-step. Tidak perlu memorize flags atau options!

### 🐳 Docker Ready

[](#-docker-ready)

Dockerfile + docker-compose.yml generated otomatis dengan:

- PHP 8.2-FPM optimized
- Nginx latest stable
- MySQL 8 atau PostgreSQL 16
- Persistent volumes
- Network configured

### 🌐 Nginx Support

[](#-nginx-support)

Production-ready Nginx configuration dengan:

- FastCGI caching
- Gzip compression
- Static file optimization
- Laravel-optimized routing

### 📦 Multiple Templates

[](#-multiple-templates)

- **Web Template**: Homepage, routes, HomeController
- **API Template**: Health endpoint, CORS configured, API routes enabled

### 🎨 Frontend Flexibility

[](#-frontend-flexibility)

Pilih framework sesuai preference:

- **Tailwind CSS** (recommended) - Modern utility-first
- **Bootstrap 5** - Classic responsive framework
- **None** - Perfect untuk headless API

### 🔐 Auth Scaffolding

[](#-auth-scaffolding)

- **Laravel Breeze** (Tailwind) - Minimal &amp; elegant
- **Laravel UI** (Bootstrap) - Traditional &amp; comprehensive Lengkap dengan login, register, password reset, email verification!

### 💾 Database Options

[](#-database-options)

Support multiple databases:

- **MySQL** 8.0 (most popular)
- **PostgreSQL** 16 (advanced features) Auto-configured `.env` dengan credentials yang tepat.

### ⚡ Auto Build

[](#-auto-build)

Frontend assets di-build otomatis setelah:

- NPM package installation
- Auth scaffolding installation No manual `npm run build` needed!

---

📋 Requirements
--------------

[](#-requirements)

RequirementVersionNotesPHP8.2 or higherRequired for Laravel 12.xComposer2.0+Dependency managementNode.js18+ or 20+ LTSFor frontend assetsNPM9+Package managerDocker20+Optional, for containerizationDocker Compose2.0+Optional, for multi-container setupGit2.x+Recommended for version control### System Requirements

[](#system-requirements)

**Minimum:**

- 2 CPU cores
- 2GB RAM
- 5GB disk space

**Recommended:**

- 4+ CPU cores
- 4GB+ RAM
- 10GB+ disk space (with Docker)

---

📦 Installation
--------------

[](#-installation)

### Method 1: Fresh Laravel Project (Recommended)

[](#method-1-fresh-laravel-project-recommended)

Mulai dengan project Laravel baru:

```
# Step 1: Create Laravel project
composer create-project laravel/laravel my-awesome-project
cd my-awesome-project

# Step 2: Install Bangkah
composer require bangkah/bangkah

# Step 3: Run Bangkah scaffolding
php artisan bangkah:create
```

### Method 2: Existing Laravel Project

[](#method-2-existing-laravel-project)

Jika Anda sudah punya project Laravel:

```
# Navigate to your project
cd my-existing-project

# Install Bangkah
composer require bangkah/bangkah

# Run scaffolding
php artisan bangkah:create
```

> ⚠️ **Warning**: Bangkah akan modify files seperti `.env`, routes, controllers. File routes akan dibackup otomatis sebagai `*.backup-YYYYMMDDHHMMSS` sebelum diganti.

### Verification

[](#verification)

Verify instalasi berhasil:

```
php artisan list bangkah
```

Output:

```
Available commands for the "bangkah" namespace:
  bangkah:create  Create a new starter project with Bangkah

```

---

🚀 Quick Start
-------------

[](#-quick-start)

### 30-Second Setup

[](#30-second-setup)

Ingin cepat? Jalankan dengan defaults:

```
php artisan bangkah:create \
  --type=web \
  --frontend=tailwind \
  --docker \
  --nginx \
  --db=mysql \
  --yes
```

Selesai! Project Anda sudah siap dengan Docker, Nginx, MySQL, dan Tailwind CSS.

Start containers:

```
docker compose up -d
```

Access aplikasi di `http://localhost`

---

📖 Usage
-------

[](#-usage)

### Interactive Mode

[](#interactive-mode)

Mode paling mudah - Bangkah akan menanyakan semua pilihan interactively:

```
php artisan bangkah:create
```

#### Interactive Flow

[](#interactive-flow)

```
┌──────────────────────────────────────────┐
│  🎯 Bangkah Starter Kit                  │
└──────────────────────────────────────────┘

❯ Pilih template project:
  ○ Web Application (dengan homepage)
  ● API Application (RESTful API)

❯ Install Docker?
  ● Yes
  ○ No

❯ Install Nginx?
  ● Yes
  ○ No

❯ Pilih database:
  ● MySQL
  ○ PostgreSQL

❯ Pilih frontend framework:
  ● Tailwind CSS
  ○ Bootstrap
  ○ None

❯ Install authentication?
  ○ Laravel Breeze (Tailwind)
  ○ Laravel UI (Bootstrap)
  ● No

```

Setelah semua pilihan dibuat, Bangkah akan:

1. ✅ Generate files berdasarkan template
2. ✅ Configure environment variables
3. ✅ Install dependencies (composer &amp; npm)
4. ✅ Build frontend assets
5. ✅ Start Docker containers (jika dipilih)

**Total time:** ~2-3 menit ☕

### Non-Interactive Mode

[](#non-interactive-mode)

Untuk CI/CD atau automation, gunakan flags untuk skip prompts:

```
php artisan bangkah:create --yes [options]
```

Flag `--yes` akan use defaults untuk semua options yang tidak disebutkan.

#### Examples:

[](#examples)

**API Project dengan Docker:**

```
php artisan bangkah:create --type=api --docker --nginx --db=postgres --yes
```

**Web Project tanpa Docker:**

```
php artisan bangkah:create --type=web --frontend=tailwind --auth --yes
```

**Minimal Setup:**

```
php artisan bangkah:create --type=web --frontend=none --yes
```

### Command Options

[](#command-options)

OptionValuesDefaultDescription`--type``web`, `api``web`Project template type`--docker`flag`false`Install Docker configuration`--nginx`flag`false`Install Nginx configuration`--db``mysql`, `postgres``mysql`Database type`--frontend``tailwind`, `bootstrap`, `none``tailwind`Frontend framework`--auth`flag`false`Install authentication scaffolding`--yes`flag`false`Non-interactive mode (use defaults)#### Option Combinations

[](#option-combinations)

Some options work together:

- `--docker` + `--nginx` = Full containerized setup
- `--auth` + `--frontend=tailwind` = Laravel Breeze
- `--auth` + `--frontend=bootstrap` = Laravel UI
- `--type=api` + `--frontend=none` = Headless API (recommended)

---

💡 Examples
----------

[](#-examples)

### Example 1: Full-Stack Web Application

[](#example-1-full-stack-web-application)

**Goal:** Web app dengan Docker, Nginx, MySQL, Tailwind, dan Authentication

```
php artisan bangkah:create \
  --type=web \
  --docker \
  --nginx \
  --db=mysql \
  --frontend=tailwind \
  --auth \
  --yes
```

**Generated Files:**

```
✓ Dockerfile
✓ docker-compose.yml
✓ docker/nginx/default.conf
✓ app/Http/Controllers/HomeController.php
✓ resources/views/home.blade.php
✓ routes/web.php (with home route)
✓ .env (configured for MySQL)
✓ Laravel Breeze installed
✓ Tailwind CSS configured

```

**What You Get:**

- 🏠 Modern homepage at `/`
- 🔐 Auth routes: `/login`, `/register`, `/dashboard`
- 🐳 3 Docker containers: app, mysql, nginx
- 🎨 Tailwind CSS pre-configured
- ⚡ Assets built and ready

**Next Steps:**

```
# Start containers
docker compose up -d

# Run migrations
docker compose exec app php artisan migrate

# Access application
open http://localhost
```

---

### Example 2: RESTful API with PostgreSQL

[](#example-2-restful-api-with-postgresql)

**Goal:** API-only dengan Docker, PostgreSQL, no frontend

```
php artisan bangkah:create \
  --type=api \
  --docker \
  --nginx \
  --db=postgres \
  --frontend=none \
  --yes
```

**Generated Files:**

```
✓ Dockerfile
✓ docker-compose.yml (with PostgreSQL)
✓ app/Http/Controllers/Api/HealthController.php
✓ routes/api.php (with /api/health endpoint)
✓ bootstrap/app.php (API routes enabled for Laravel 12)

```

**API Endpoint:**

Test health endpoint:

```
curl http://localhost/api/health
```

**Response:**

```
{
  "status": "ok",
  "message": "API is running",
  "app": "MyApp",
  "environment": "local",
  "laravel": "12.42.0",
  "php": "8.4.1",
  "time": "2025-12-15T10:30:00.000000Z"
}
```

**Next Steps:**

```
# Start containers
docker compose up -d

# Run migrations
docker compose exec app php artisan migrate

# Test API
curl -X GET http://localhost/api/health
```

---

### Example 3: Traditional Bootstrap Web App

[](#example-3-traditional-bootstrap-web-app)

**Goal:** Simple web app dengan Bootstrap, MySQL, tanpa Docker

```
php artisan bangkah:create \
  --type=web \
  --frontend=bootstrap \
  --auth \
  --db=mysql \
  --yes
```

**Generated Files:**

```
✓ app/Http/Controllers/HomeController.php
✓ resources/views/home.blade.php
✓ routes/web.php
✓ .env (MySQL configuration)
✓ Laravel UI installed
✓ Bootstrap CSS included

```

**What You Get:**

- 🏠 Homepage with Bootstrap styling
- 🔐 Laravel UI auth scaffolding
- 💾 MySQL configured in .env

**Next Steps:**

```
# Configure database in .env
# Then run:
php artisan migrate

# Start dev server
php artisan serve

# Access at http://localhost:8000
```

---

### Example 4: Minimal Setup (No Docker, No Auth)

[](#example-4-minimal-setup-no-docker-no-auth)

**Goal:** Bare minimum untuk quick prototyping

```
php artisan bangkah:create \
  --type=web \
  --frontend=none \
  --yes
```

**Generated Files:**

```
✓ app/Http/Controllers/HomeController.php
✓ resources/views/home.blade.php
✓ routes/web.php

```

**What You Get:**

- 🏠 Basic homepage
- 🎯 Web routes configured
- 🚀 Ready to build

Perfect untuk:

- Quick prototypes
- Learning Laravel
- Custom frontend (React, Vue, Alpine)

---

🎨 Templates
-----------

[](#-templates)

### Web Template

[](#web-template)

**Purpose:** Traditional web applications with server-rendered views

**Includes:**

- `app/Http/Controllers/HomeController.php` - Home page controller
- `resources/views/home.blade.php` - Modern gradient homepage
- `routes/web.php` - Web routes with home route

**Homepage Features:**

- 🎨 Modern gradient design (purple/blue)
- 📱 Fully responsive
- 💳 Feature cards showcase
- ⚡ Vite integration ready
- 🎯 Call-to-action sections

**Use Cases:**

- E-commerce websites
- Business websites
- Content management systems
- Admin dashboards
- Marketing websites

---

### API Template

[](#api-template)

**Purpose:** RESTful APIs and headless applications

**Includes:**

- `app/Http/Controllers/Api/HealthController.php` - Health check endpoint
- `routes/api.php` - API routes
- `bootstrap/app.php` - API routes enabled for Laravel 12

**Health Endpoint:**

```
GET /api/health

```

**Response Schema:**

```
{
  "status": "ok|error",
  "message": "API is running",
  "app": "string",
  "environment": "string",
  "laravel": "string",
  "php": "string",
  "time": "ISO8601 datetime"
}
```

**Features:**

- ✅ CORS pre-configured
- ✅ API versioning ready
- ✅ JSON responses
- ✅ Rate limiting configured
- ✅ Exception handling

**Use Cases:**

- Mobile app backends
- SPA backends (React, Vue, Angular)
- Microservices
- Third-party integrations
- IoT platforms

---

🐳 Docker Configuration
----------------------

[](#-docker-configuration)

### Generated Docker Files

[](#generated-docker-files)

When you enable Docker, Bangkah generates:

```
Dockerfile                    # Application container
docker-compose.yml           # Multi-container orchestration
docker/nginx/default.conf    # Nginx configuration

```

### Services Architecture

[](#services-architecture)

```
┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│   Nginx         │────▶│   Laravel App   │────▶│   Database      │
│   Port 80       │     │   PHP 8.2-FPM   │     │   MySQL/Postgres│
└─────────────────┘     └─────────────────┘     └─────────────────┘
       │                        │                        │
       └────────────────────────┴────────────────────────┘
                        Docker Network

```

### Dockerfile Details

[](#dockerfile-details)

**Base Image:** `php:8.2-fpm`

**Installed Extensions:**

- pdo
- pdo\_mysql
- pdo\_pgsql

**Tools Included:**

- Composer 2.x
- Git
- Zip/Unzip

**Optimization:**

- Multi-stage build ready
- Composer cache optimization
- Non-root user for security

### docker-compose.yml Services

[](#docker-composeyml-services)

#### App Service

[](#app-service)

```
app:
  build: .
  container_name: laravel_app
  working_dir: /var/www
  volumes:
    - ./:/var/www
  networks:
    - laravel
  environment:
    - APP_ENV=local
```

#### Database Service (MySQL)

[](#database-service-mysql)

```
mysql:
  image: mysql:8.0
  container_name: mysql_db
  environment:
    MYSQL_DATABASE: laravel
    MYSQL_USER: sail
    MYSQL_PASSWORD: password
    MYSQL_ROOT_PASSWORD: root
  volumes:
    - mysql_data:/var/lib/mysql
  ports:
    - "3306:3306"
```

#### Database Service (PostgreSQL)

[](#database-service-postgresql)

```
pgsql:
  image: postgres:16
  container_name: postgres_db
  environment:
    POSTGRES_DB: laravel
    POSTGRES_USER: sail
    POSTGRES_PASSWORD: password
  volumes:
    - pgsql_data:/var/lib/postgresql/data
  ports:
    - "5432:5432"
```

#### Nginx Service

[](#nginx-service)

```
nginx:
  image: nginx:latest
  container_name: nginx_server
  ports:
    - "80:80"
  volumes:
    - ./:/var/www
    - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
  depends_on:
    - app
  networks:
    - laravel
```

### Docker Commands

[](#docker-commands)

```
# Start all services
docker compose up -d

# View logs
docker compose logs -f

# View specific service logs
docker compose logs -f app
docker compose logs -f nginx

# Stop all services
docker compose down

# Restart services
docker compose restart

# Rebuild containers
docker compose up -d --build

# Execute commands in app container
docker compose exec app php artisan migrate
docker compose exec app composer install

# Access app container shell
docker compose exec app bash

# View running containers
docker compose ps

# Remove all containers and volumes
docker compose down -v
```

### Nginx Configuration

[](#nginx-configuration)

**Key Features:**

- FastCGI caching
- Gzip compression (level 6)
- Client max body size: 100M
- Buffer optimization
- Static file caching

**Optimized Routes:**

- Laravel routing via index.php
- Static assets served directly
- Hidden .env and other sensitive files

---

💾 Database Setup
----------------

[](#-database-setup)

### Automatic Configuration

[](#automatic-configuration)

Bangkah automatically configures your `.env` file based on database choice:

### MySQL Configuration

[](#mysql-configuration)

```
DB_CONNECTION=mysql
DB_HOST=mysql        # or 127.0.0.1 without Docker
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password
```

**MySQL Features:**

- Version 8.0
- UTF8MB4 character set
- InnoDB engine
- Persistent volume `mysql_data`

### PostgreSQL Configuration

[](#postgresql-configuration)

```
DB_CONNECTION=pgsql
DB_HOST=pgsql        # or 127.0.0.1 without Docker
DB_PORT=5432
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password
```

**PostgreSQL Features:**

- Version 16
- Advanced features (JSON, Full-Text Search)
- ACID compliance
- Persistent volume `pgsql_data`

### Running Migrations

[](#running-migrations)

**With Docker:**

```
docker compose exec app php artisan migrate
```

**Without Docker:**

```
php artisan migrate
```

### Seeding Database

[](#seeding-database)

```
# Create seeder
php artisan make:seeder UserSeeder

# Run specific seeder
php artisan db:seed --class=UserSeeder

# Run all seeders
php artisan db:seed
```

### Database GUI Tools

[](#database-gui-tools)

**Recommended Tools:**

- **MySQL**: phpMyAdmin, MySQL Workbench, TablePlus
- **PostgreSQL**: pgAdmin, DBeaver, TablePlus

**Connection Details:**

- Host: `localhost`
- Port: `3306` (MySQL) or `5432` (PostgreSQL)
- User: `sail`
- Password: `password`
- Database: `laravel`

---

🔐 Authentication
----------------

[](#-authentication)

Bangkah mendukung 2 authentication packages Laravel official:

### Laravel Breeze

[](#laravel-breeze)

**Requirements:** `--frontend=tailwind`

**Command:**

```
php artisan bangkah:create --auth --frontend=tailwind --yes
```

**What's Included:**

- ✅ Login &amp; Registration
- ✅ Password Reset
- ✅ Email Verification
- ✅ Profile Management
- ✅ Tailwind CSS Styled
- ✅ Blade Components
- ✅ Mobile Responsive

**Routes Generated:**

```
/login              // Login page
/register           // Registration page
/forgot-password    // Password reset request
/reset-password     // Password reset form
/verify-email       // Email verification
/dashboard          // User dashboard
/profile            // Profile management
```

**Features:**

- Minimal &amp; clean UI
- Modern Tailwind design
- SPA-ready (optional Inertia.js)
- Two-factor authentication ready

---

### Laravel UI

[](#laravel-ui)

**Requirements:** `--frontend=bootstrap`

**Command:**

```
php artisan bangkah:create --auth --frontend=bootstrap --yes
```

**What's Included:**

- ✅ Login &amp; Registration
- ✅ Password Reset
- ✅ Remember Me
- ✅ Bootstrap 5 Styled
- ✅ Vue.js scaffolding option
- ✅ Traditional blade views

**Routes Generated:**

```
/login              // Login page
/register           // Registration page
/password/reset     // Password reset
/home               // Home after login
```

**Features:**

- Classic Bootstrap design
- Comprehensive auth flow
- Compatible with older projects
- Vue.js integration option

---

### Post-Installation Steps

[](#post-installation-steps)

After installing authentication:

1. **Run Migrations:**

    ```
    php artisan migrate
    ```
2. **Configure Email:** (for password reset)

    ```
    MAIL_MAILER=smtp
    MAIL_HOST=smtp.mailtrap.io
    MAIL_PORT=2525
    MAIL_USERNAME=your_username
    MAIL_PASSWORD=your_password
    ```
3. **Test Registration:**

    - Visit `/register`
    - Create test account
    - Verify login works
4. **Customize Views:**

    - Breeze views: `resources/views/auth/`
    - UI views: `resources/views/auth/`

---

⚡ Frontend Assets
-----------------

[](#-frontend-assets)

### Auto Build

[](#auto-build)

Bangkah automatically builds your frontend assets after:

- NPM package installation
- Authentication scaffolding
- Frontend framework installation

No need to manually run `npm run build`!

### Manual Build

[](#manual-build)

If needed, you can rebuild assets manually:

```
# Production build
npm run build

# Development build (with watch)
npm run dev
```

### Frontend Frameworks

[](#frontend-frameworks)

#### Tailwind CSS

[](#tailwind-css)

**Configuration:** `tailwind.config.js`

```
export default {
  content: [
    "./resources/**/*.blade.php",
    "./resources/**/*.js",
    "./resources/**/*.vue",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}
```

**CSS Entry:** `resources/css/app.css`

```
@tailwind base;
@tailwind components;
@tailwind utilities;
```

**Build Output:** `public/build/assets/`

---

#### Bootstrap

[](#bootstrap)

**Version:** 5.3+

**Installation:** Via NPM in `package.json`

```
{
  "devDependencies": {
    "bootstrap": "^5.3",
    "@popperjs/core": "^2.11"
  }
}
```

**Import:** `resources/js/app.js`

```
import 'bootstrap';
import 'bootstrap/dist/css/bootstrap.min.css';
```

---

#### No Frontend

[](#no-frontend)

Perfect for:

- API-only applications
- Headless CMS
- Custom frontend (React, Vue external)
- Mobile app backends

**Build:** None required

---

### Vite Configuration

[](#vite-configuration)

**File:** `vite.config.js`

```
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: true,
        }),
    ],
});
```

**Hot Module Replacement:**

```
# Terminal 1: Vite dev server
npm run dev

# Terminal 2: Laravel dev server
php artisan serve
```

Access at `http://localhost:8000` with hot reload!

---

🚀 Deployment
------------

[](#-deployment)

### Pre-Deployment Checklist

[](#pre-deployment-checklist)

Before deploying to production:

- Set `APP_ENV=production` in `.env`
- Set `APP_DEBUG=false` in `.env`
- Generate production `APP_KEY`
- Configure production database
- Set up proper `MAIL_*` credentials
- Configure `QUEUE_CONNECTION` (redis/database)
- Set `SESSION_DRIVER` (redis/database)
- Update `APP_URL` to production domain
- Configure SSL/HTTPS
- Set up proper logging

---

### Laravel Optimization

[](#laravel-optimization)

Run these commands for production optimization:

```
# 1. Install production dependencies only
composer install --optimize-autoloader --no-dev

# 2. Cache configuration
php artisan config:cache

# 3. Cache routes
php artisan route:cache

# 4. Cache views
php artisan view:cache

# 5. Cache events
php artisan event:cache

# 6. Build frontend assets
npm run build

# 7. Run migrations
php artisan migrate --force

# 8. Link storage
php artisan storage:link
```

**Clear Cache When Needed:**

```
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan cache:clear
```

---

### Docker Production Setup

[](#docker-production-setup)

#### Update docker-compose.yml for Production

[](#update-docker-composeyml-for-production)

```
services:
  app:
    build:
      context: .
      target: production
    environment:
      - APP_ENV=production
      - APP_DEBUG=false
    restart: unless-stopped

  mysql:
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
      MYSQL_PASSWORD: ${DB_PASSWORD}
    restart: unless-stopped

  nginx:
    restart: unless-stopped
```

#### Multi-Stage Dockerfile

[](#multi-stage-dockerfile)

Add production stage:

```
# Production stage
FROM php:8.2-fpm as production

# Copy only necessary files
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
COPY . /var/www
WORKDIR /var/www

# Install production dependencies
RUN composer install --optimize-autoloader --no-dev

# Optimize Laravel
RUN php artisan config:cache && \
    php artisan route:cache && \
    php artisan view:cache

# Set permissions
RUN chown -R www-data:www-data /var/www/storage /var/www/bootstrap/cache
```

#### Build for Production

[](#build-for-production)

```
docker compose -f docker-compose.prod.yml up -d --build
```

---

### Deployment Platforms

[](#deployment-platforms)

#### Deploy to DigitalOcean

[](#deploy-to-digitalocean)

```
# Install doctl CLI
snap install doctl

# Authenticate
doctl auth init

# Create droplet
doctl compute droplet create laravel-app \
  --image ubuntu-22-04-x64 \
  --size s-2vcpu-2gb \
  --region sgp1

# SSH into droplet
ssh root@your-droplet-ip

# Clone your repository
git clone your-repo.git
cd your-repo

# Run Docker Compose
docker compose up -d
```

#### Deploy to AWS EC2

[](#deploy-to-aws-ec2)

1. Create EC2 instance (Ubuntu 22.04)
2. Install Docker &amp; Docker Compose
3. Configure security groups (ports 80, 443)
4. Deploy with Docker Compose
5. Configure Route 53 for domain
6. Set up Application Load Balancer (optional)

#### Deploy to Laravel Forge

[](#deploy-to-laravel-forge)

```
# Forge handles everything:
# - Server provisioning
# - SSL certificates
# - Deployments
# - Queue workers
# - Scheduled tasks

# Just push to your repository and Forge deploys automatically
git push origin main
```

---

### SSL/HTTPS Setup

[](#sslhttps-setup)

#### With Nginx (Let's Encrypt)

[](#with-nginx-lets-encrypt)

```
# Install certbot
apt-get install certbot python3-certbot-nginx

# Obtain certificate
certbot --nginx -d yourdomain.com -d www.yourdomain.com

# Auto-renewal is set up automatically
```

#### With Cloudflare

[](#with-cloudflare)

1. Add your domain to Cloudflare
2. Enable "Full (strict)" SSL mode
3. Update your nameservers
4. Cloudflare handles SSL automatically

---

### Environment Variables

[](#environment-variables)

**Production .env example:**

```
APP_NAME=YourApp
APP_ENV=production
APP_KEY=base64:generated_key_here
APP_DEBUG=false
APP_URL=https://yourdomain.com

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=production_db
DB_USERNAME=prod_user
DB_PASSWORD=strong_password_here

CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis

REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=your_sendgrid_api_key
MAIL_ENCRYPTION=tls

LOG_CHANNEL=stack
LOG_LEVEL=error
```

---

### Monitoring &amp; Logging

[](#monitoring--logging)

**Recommended Tools:**

- **Monitoring**: Laravel Telescope, New Relic, Datadog
- **Error Tracking**: Sentry, Bugsnag, Rollbar
- **Uptime**: UptimeRobot, Pingdom
- **Logs**: Papertrail, Loggly, CloudWatch

**Setup Sentry:**

```
composer require sentry/sentry-laravel
php artisan sentry:publish --dsn=your_dsn_here
```

---

🔧 Troubleshooting
-----------------

[](#-troubleshooting)

### Common Issues

[](#common-issues)

#### Issue 1: Command Not Found

[](#issue-1-command-not-found)

**Problem:**

```
php artisan bangkah:create
# Command "bangkah:create" is not defined.
```

**Solution:**

```
# Clear cache
php artisan clear-compiled
php artisan cache:clear

# Re-install package
composer dump-autoload
composer require bangkah/bangkah
```

---

#### Issue 2: Docker Containers Not Starting

[](#issue-2-docker-containers-not-starting)

**Problem:**

```
docker compose up -d
# Error: port already in use
```

**Solution:**

```
# Check what's using the port
lsof -i :80

# Stop conflicting service
sudo systemctl stop apache2  # or nginx

# Or change port in docker-compose.yml
ports:
  - "8080:80"
```

---

#### Issue 3: Permission Denied (Docker)

[](#issue-3-permission-denied-docker)

**Problem:**

```
# Permission denied for storage/
```

**Solution:**

```
# Fix permissions
docker compose exec app chown -R www-data:www-data /var/www/storage /var/www/bootstrap/cache
docker compose exec app chmod -R 775 /var/www/storage /var/www/bootstrap/cache
```

---

#### Issue 4: NPM Build Fails

[](#issue-4-npm-build-fails)

**Problem:**

```
npm run build
# Error: Cannot find module 'vite'
```

**Solution:**

```
# Remove node_modules and reinstall
rm -rf node_modules package-lock.json
npm install
npm run build
```

---

#### Issue 5: Database Connection Failed

[](#issue-5-database-connection-failed)

**Problem:**

```
SQLSTATE[HY000] [2002] Connection refused

```

**Solution:**

**With Docker:**

```
# Make sure containers are running
docker compose ps

# Check DB host in .env
DB_HOST=mysql  # NOT 127.0.0.1 with Docker
```

**Without Docker:**

```
# Check MySQL is running
sudo systemctl status mysql

# Test connection
mysql -u sail -p
```

---

#### Issue 6: API Routes Not Working (404)

[](#issue-6-api-routes-not-working-404)

**Problem:**

```
curl http://localhost/api/health
# 404 Not Found
```

**Solution:**

Laravel 12 requires explicit API route enabling:

```
# Check if bootstrap/app.php has API routes enabled
# Should contain:
->withRouting(
    api: __DIR__.'/../routes/api.php',  # This line needed
    web: __DIR__.'/../routes/web.php',
)

# If missing, run Bangkah again with API template
php artisan bangkah:create --type=api --yes
```

---

#### Issue 7: Assets Not Loading

[](#issue-7-assets-not-loading)

**Problem:**

```
GET http://localhost/build/assets/app.css 404

```

**Solution:**

```
# Build assets
npm run build

# Check if files exist
ls public/build/assets/

# If using Vite dev server:
npm run dev
# Make sure @vite directive in blade:
@vite(['resources/css/app.css', 'resources/js/app.js'])
```

---

### Getting Help

[](#getting-help)

If you're still stuck:

1. **Check Laravel Logs:**

    ```
    tail -f storage/logs/laravel.log
    ```
2. **Enable Debug Mode:**

    ```
    APP_DEBUG=true
    APP_ENV=local
    ```
3. **Check Docker Logs:**

    ```
    docker compose logs -f
    ```
4. **Open an Issue:**Visit [GitHub Issues](https://github.com/Bangkah/bangkah-launcher/issues)

---

❓ FAQ
-----

[](#-faq)

### General Questions

[](#general-questions)

**Q: Apa perbedaan Bangkah dengan Laravel Breeze/Jetstream?**

A: Bangkah adalah **scaffolding tool**, bukan starter kit yang opinionated. Bangkah membantu setup infrastructure (Docker, Nginx, DB, Frontend), sedangkan Breeze/Jetstream fokus pada authentication dan application features.

Anda bisa menggunakan Bangkah **bersamaan** dengan Breeze/Jetstream!

---

**Q: Apakah Bangkah mengganti file existing?**

A: Ya, Bangkah akan **override** beberapa files:

- `.env` (database credentials)
- `routes/web.php` atau `routes/api.php`
- `bootstrap/app.php` (untuk API routes)

Selalu **backup** project Anda sebelum menjalankan Bangkah!

---

**Q: Bisakah saya use Bangkah di project Laravel lama?**

A: Ya, tapi hati-hati. Bangkah tested di Laravel 11 &amp; 12. Untuk versi lama, mungkin perlu adjustment manual.

---

**Q: Apakah Bangkah free?**

A: Ya! Bangkah adalah **100% free** dan open-source (MIT License).

---

### Technical Questions

[](#technical-questions)

**Q: Kenapa npm run build dijalankan otomatis?**

A: Untuk convenience. Frontend assets langsung ready tanpa manual build. Jika tidak suka, Anda bisa skip dengan `--frontend=none`.

---

**Q: Bisakah saya customize templates?**

A: Ya! Templates ada di `vendor/bangkah/bangkah/stubs/`. Anda bisa publish dan modify:

```
php artisan vendor:publish --tag=bangkah-stubs
```

---

**Q: Apakah Docker wajib?**

A: Tidak. Docker optional. Anda bisa skip dengan tidak menggunakan flag `--docker`.

---

**Q: Support Laravel 11?**

A: Ya, Bangkah support Laravel 11 &amp; 12.

---

**Q: Apakah bisa pakai database lain selain MySQL/PostgreSQL?**

A: Secara default hanya MySQL &amp; PostgreSQL. Untuk SQLite, MariaDB, atau SQL Server, Anda perlu configure manual di `.env` dan `docker-compose.yml`.

---

**Q: Bagaimana cara update Bangkah?**

A:

```
composer update bangkah/bangkah
```

---

**Q: Apakah ada conflict dengan package lain?**

A: Bangkah dirancang non-intrusive. Tidak ada conflict dengan package popular seperti Livewire, Inertia, Filament, dll.

---

🛠️ Development
--------------

[](#️-development)

### Local Development

[](#local-development)

Jika Anda ingin contribute atau develop Bangkah locally:

```
# Clone repository
git clone https://github.com/Bangkah/bangkah-launcher.git
cd bangkah-launcher

# Install dependencies
composer install

# Run tests
./vendor/bin/phpunit
```

---

### Testing Your Changes

[](#testing-your-changes)

```
# Create test Laravel project
composer create-project laravel/laravel test-project
cd test-project

# Require Bangkah from local path
composer config repositories.bangkah path ../bangkah
composer require bangkah/bangkah @dev

# Test command
php artisan bangkah:create
```

---

### Project Structure

[](#project-structure)

```
bangkah/
├── src/
│   ├── Commands/
│   │   └── StarterCreateCommand.php    # Main command
│   ├── Services/
│   │   ├── TemplateService.php         # Template handling
│   │   ├── DockerService.php           # Docker generation
│   │   ├── DependencyInstaller.php     # Package installation
│   │   └── EnvironmentService.php      # .env configuration
│   └── BangkahServiceProvider.php      # Service provider
├── stubs/
│   ├── web/                            # Web template stubs
│   ├── api/                            # API template stubs
│   └── nginx/                          # Nginx config stubs
├── tests/
│   └── Feature/
│       └── StarterCreateCommandTest.php
├── composer.json
└── README.md

```

---

### Running Tests

[](#running-tests)

```
# Run all tests
./vendor/bin/phpunit

# Run specific test
./vendor/bin/phpunit --filter StarterCreateCommandTest

# With coverage
./vendor/bin/phpunit --coverage-html coverage
```

---

### Code Style

[](#code-style)

Bangkah mengikuti PSR-12 coding standards:

```
# Check code style
./vendor/bin/phpcs

# Fix code style
./vendor/bin/phpcbf
```

---

🚀 Advanced Usage
----------------

[](#-advanced-usage)

### Custom Templates

[](#custom-templates)

#### Create Custom Template

[](#create-custom-template)

1. **Publish stubs:**

    ```
    php artisan vendor:publish --tag=bangkah-stubs
    ```
2. **Edit stubs:**

    ```
    # Stubs copied to:
    resources/bangkah/stubs/
    ```
3. **Modify as needed:**

    - Add new controllers
    - Customize views
    - Add custom routes

---

### Extending Services

[](#extending-services)

#### Custom Template Service

[](#custom-template-service)

```
namespace App\Services;

use Bangkah\Starter\Services\TemplateService;

class CustomTemplateService extends TemplateService
{
    public function applyCustomTemplate(string $basePath): void
    {
        // Your custom logic
        $this->copyController($basePath, 'CustomController');
        $this->copyView($basePath, 'custom.blade.php');
    }
}
```

#### Register in Service Provider

[](#register-in-service-provider)

```
namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Services\CustomTemplateService;

class AppServiceProvider extends ServiceProvider
{
    public function register()
    {
        $this->app->singleton(CustomTemplateService::class);
    }
}
```

---

### Programmatic Usage

[](#programmatic-usage)

Use Bangkah services programmatically:

```
use Bangkah\Starter\Services\TemplateService;
use Bangkah\Starter\Services\DockerService;

// Get services from container
$templateService = app(TemplateService::class);
$dockerService = app(DockerService::class);

// Use services
$templateService->applyWeb(base_path());
$dockerService->generateDockerFiles(base_path(), 'mysql', true);
```

---

🤝 Contributing
--------------

[](#-contributing)

We welcome contributions! Here's how you can help:

### Ways to Contribute

[](#ways-to-contribute)

1. **Report Bugs**: Open an issue with detailed information
2. **Suggest Features**: Share your ideas via issues
3. **Submit PRs**: Fix bugs or add features
4. **Improve Docs**: Fix typos, add examples, clarify instructions
5. **Share**: Tell others about Bangkah!

### Contribution Guidelines

[](#contribution-guidelines)

1. **Fork the repository**
2. **Create a feature branch**

    ```
    git checkout -b feature/amazing-feature
    ```
3. **Make your changes**

    - Follow PSR-12 coding standards
    - Add tests for new features
    - Update documentation
4. **Run tests**

    ```
    ./vendor/bin/phpunit
    ```
5. **Commit your changes**

    ```
    git commit -m "Add amazing feature"
    ```
6. **Push to branch**

    ```
    git push origin feature/amazing-feature
    ```
7. **Open Pull Request**

    - Describe your changes
    - Link related issues
    - Add screenshots if UI changes

### Code of Conduct

[](#code-of-conduct)

- Be respectful and inclusive
- Help newcomers
- Give constructive feedback
- Focus on the code, not the person

---

📝 Changelog
-----------

[](#-changelog)

### Version 1.0.0 (2025-12-15)

[](#version-100-2025-12-15)

**Initial Release**

**Features:**

- ✨ Interactive CLI command
- ✨ Web &amp; API templates
- ✨ Docker + Nginx support
- ✨ MySQL &amp; PostgreSQL support
- ✨ Tailwind &amp; Bootstrap support
- ✨ Laravel Breeze &amp; UI integration
- ✨ Auto frontend build
- ✨ Laravel 12 compatibility

**Documentation:**

- 📚 Complete README
- 📚 Usage examples
- 📚 Troubleshooting guide
- 📚 FAQ section

---

📄 License
---------

[](#-license)

Bangkah is open-sourced software licensed under the **MIT License**.

```
MIT License

Copyright (c) 2025 Atha

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

```

---

👨‍💻 Author
----------

[](#‍-author)

**Muhammad Dhiyaul Atha**

- GitHub: [@Bangkah](https://github.com/Bangkah)
- Organization: [Bangkah](https://github.com/Bangkah)

---

🙏 Acknowledgments
-----------------

[](#-acknowledgments)

Special thanks to:

- **Laravel Team** - For the amazing framework
- **Taylor Otwell** - Creator of Laravel
- **Tailwind CSS** - For the utility-first CSS framework
- **Bootstrap Team** - For the responsive framework
- **Docker Community** - For containerization tools
- **Open Source Community** - For inspiration and support

Built with ❤️ and ☕ by developers, for developers.

---

🔗 Links
-------

[](#-links)

- **Documentation**: [Full Docs](#)
- **GitHub**: [Repository](https://github.com/Bangkah/bangkah-launcher)
- **Issues**: [Bug Reports](https://github.com/Bangkah/bangkah-launcher)
- **Discussions**: [Community](https://github.com/Bangkah/bangkah-launcher/discussions)
- **Laravel**: [laravel.com](https://laravel.com)

---

🌟 Show Your Support
-------------------

[](#-show-your-support)

If you find Bangkah helpful, please:

- ⭐ Star the repository
- 🐦 Share on Twitter
- 📝 Write a blog post
- 💬 Tell your friends

Every bit helps make Bangkah better!

---

**Happy Coding!** 🚀

Made with ☕, 💻, and ❤️

###  Health Score

45

—

FairBetter than 92% of packages

Maintenance91

Actively maintained with recent releases

Popularity14

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 84.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~15 days

Recently: every ~22 days

Total

7

Last Release

57d ago

PHP version history (2 changes)1.0.0PHP &gt;=8.4

v1.0.3PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/d4dcb17dc8126f5b62f0302496921c6e15340f2afe81bee80098bbb169d6d034?d=identicon)[Bangkah](/maintainers/Bangkah)

---

Top Contributors

[![Bangkah](https://avatars.githubusercontent.com/u/141197600?v=4)](https://github.com/Bangkah "Bangkah (56 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (10 commits)")

---

Tags

bangkahlaravelstarter-kit

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/bangkah-bangkah/health.svg)

```
[![Health](https://phpackages.com/badges/bangkah-bangkah/health.svg)](https://phpackages.com/packages/bangkah-bangkah)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

9.4k1.8k](/packages/unopim-unopim)[codewithdennis/larament

Larament is a time-saving starter kit to quickly launch Laravel 13.x projects. It includes FilamentPHP 5.x pre-installed and configured, along with additional tools and features to streamline your development workflow.

3691.5k](/packages/codewithdennis-larament)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
