PHPackages                             tavp/box - 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. tavp/box

ActiveProject

tavp/box
========

All-in-one dev environment ala Lando, LXC-based, irit RAM. Multi-distro, multi-stack, mail per-project.

00GoCI passing

Since Jul 12Pushed 1w agoCompare

[ Source](https://github.com/tavp-stack/tavp-box)[ Packagist](https://packagist.org/packages/tavp/box)[ RSS](/packages/tavp-box/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (9)DependenciesVersions (1)Used By (0)

TAVPBox
=======

[](#tavpbox)

> **Lando Dockerless** — Local development environment seperti [Lando](https://lando.dev), tapi pakai [Podman](https://podman.io) (bukan Docker).

```
┌─────────────────────────────────────────────────────────┐
│  TAVPBox                                                │
├──────────────────┬──────────────────────────────────────┤
│ Runtime          │ Podman (rootless, daemonless)        │
│ Reverse Proxy    │ Embedded Go proxy (HTTP only)        │
│ Protocol         │ HTTP only (no HTTPS complexity)      │
│ RAM / container  │ ~50-80MB                             │
│ 20 project       │ ~1.5GB (vs Docker ~3.2GB)           │
│ Auto domain      │ *.tavp.my.id                         │
│ Auto-detect      │ recipe from composer.json etc.       │
│ Timezone         │ Asia/Jakarta default                 │
│ Config file      │ .tavpbox.yml / .lando.yml            │
│ Platform         │ Windows, macOS, Linux                │
│ CLI language     │ Go (single binary)                   │
│ Web UI           │ Built-in panel (Tailwind + Alpine)   │
│ Lando migration  │ Full .lando.yml support              │
│ License          │ MIT                                  │
└──────────────────┴──────────────────────────────────────┘

```

---

Install
-------

[](#install)

### Option 1: Download Binary

[](#option-1-download-binary)

Download from [GitHub Releases](https://github.com/tavp-stack/tavpbox/releases):

PlatformFileWindows`tavpbox-windows-amd64.exe`macOS (Intel)`tavpbox-darwin-amd64`macOS (M1/M2)`tavpbox-darwin-arm64`Linux (x64)`tavpbox-linux-amd64`Linux (ARM)`tavpbox-linux-arm64`Add to PATH:

```
# Windows
move tavpbox.exe C:\Users\\AppData\Local\tavpbox\

# macOS/Linux
sudo mv tavpbox /usr/local/bin/
```

### Option 2: Build from Source

[](#option-2-build-from-source)

```
git clone https://github.com/tavp-stack/tavpbox.git
cd tavpbox
go build -o tavpbox .
```

### Option 3: Go Install

[](#option-3-go-install)

```
go install github.com/tavp-stack/tavpbox@latest
```

---

Quick Start
-----------

[](#quick-start)

```
# 1. Init project
cd ~/projects/my-app
tavpbox init

# 2. Create container
tavpbox create

# 3. Open browser
# http://my-app.tavp.my.id
```

### Migrasi dari Lando

[](#migrasi-dari-lando)

```
cd ~/lando-project
tavpbox create
# http://project.tavp.my.id → jalan!
```

---

Semua Commands
--------------

[](#semua-commands)

### Lifecycle

[](#lifecycle)

CommandDescription`tavpbox init`Initialize project (creates `.tavpbox.yml`)`tavpbox create`Create and start container`tavpbox start`Start container`tavpbox stop`Stop container`tavpbox restart`Restart container`tavpbox destroy`Destroy container permanently`tavpbox rebuild`Destroy and recreate container### Monitoring

[](#monitoring)

CommandDescription`tavpbox list`List all containers`tavpbox info`Show project details (URLs, DB creds)`tavpbox logs`Show container logs### Tooling

[](#tooling)

CommandDescription`tavpbox tooling`List available tooling commands`tavpbox artisan [args]`Run `php artisan` in container`tavpbox composer [args]`Run `composer` in container`tavpbox npm [args]`Run `npm` in container`tavpbox ssh [cmd]`SSH into container or run command### Panel

[](#panel)

CommandDescription`tavpbox panel`Start web panel at `tavpbox panel -p 3000`Start on custom port`tavpbox panel:stop`Stop panel### Proxy

[](#proxy)

CommandDescription`tavpbox proxy:start`Start reverse proxy`tavpbox proxy:stop`Stop reverse proxy`tavpbox proxy:status`Show proxy status + routes### Config

[](#config)

CommandDescription`tavpbox config list`List all configuration`tavpbox config set  `Set config value`tavpbox config get `Get config value### Image

[](#image)

CommandDescription`tavpbox image build`Build custom image from current container`tavpbox image push `Push image to registry`tavpbox image pull `Pull image from registry`tavpbox image list`List local images| `tavpbox version` | Show version |

---

Config: `.tavpbox.yml`
----------------------

[](#config-tavpboxyml)

```
name: my-project
recipe: tavp
webroot: public
services:
  mariadb:
    enabled: true
  redis:
    enabled: true
  mailpit:
    enabled: true
env:
  APP_NAME: "My Project"
  APP_ENV: local
  DB_DATABASE: my_database
  DB_USERNAME: my_user
  DB_PASSWORD: my_password
tooling:
  artisan:
    cmd: php artisan
  composer:
    cmd: composer
  npm:
    cmd: npm
  test:
    cmd: php artisan test
ram: 512MB
cpu: 1
```

---

Lando Migration
---------------

[](#lando-migration)

TAVPBox mendukung penuh `.lando.yml`. Cukup jalankan `tavpbox create` di folder yang ada `.lando.yml`.

### Yang di-support:

[](#yang-di-support)

- ✅ `recipe` (lamp, laravel, dll)
- ✅ `services` (mariadb, mysql, redis, mailpit, phpmyadmin, dll)
- ✅ `tooling` (artisan, composer, npm, mysql, dll)
- ✅ `proxy` (\*.lndo.site → \*.tavp.my.id)
- ✅ `events.post-start` (build/run commands)
- ✅ `services.*.overrides.environment` (env vars)
- ✅ `services.*.creds` (DB credentials)

### Contoh migrasi:

[](#contoh-migrasi)

```
# Project Lando
cd ~/kos-kosan.id
cat .lando.yml
# name: koskosan
# recipe: lamp
# services:
#   appserver: { type: php:8.4 }
#   database: { type: mysql:8.0, creds: { user: koskosan } }
#   redis: { type: redis:7 }
#   mailpit: { type: mailpit }
# proxy:
#   appserver: [koskosan.lndo.site]

# Migrasi ke TAVPBox
tavpbox info
# Recipe:    laravel
# Services:  mariadb, redis, mailpit
# Domain:    http://koskosan.tavp.my.id
# Database:  koskosan/koskosan/koskosan

tavpbox create
# http://koskosan.tavp.my.id → jalan!
```

---

Recipes
-------

[](#recipes)

RecipeDescriptionImageDefault Services`tavp`TAVP Stack (PHP 8.3 + Nginx + Node 20)ubuntu:24.04mariadb, redis, mailpit`laravel`Laravelubuntu:24.04mariadb, redis, mailpit`php`Generic PHPubuntu:24.04mariadb, redis`node`Node.jsnode:20-alpineredis`go`Gogolang:1.22-alpine—`python`Pythonpython:3.12-slimredis`blank`Empty containerubuntu:24.04—Services
--------

[](#services)

ServiceCategoryDescriptionmariadbdatabaseMySQL-compatible RDBMSmysqldatabaseMySQLpostgresdatabasePostgreSQLmongodbdatabaseNoSQL document DBrediscacheIn-memory cachememcachedcacheDistributed cachemailpitmailEmail testing (SMTP + web UI)mailhogmailEmail testingphpmyadminadminDatabase admin UIadmineradminLightweight DB managerelasticsearchsearchSearch enginerabbitmqqueueMessage brokerbeanstalkdqueueWork queueapachewebserverApache HTTP servervarnishcacheHTTP reverse proxy cache---

HTTPS
-----

[](#https)

HTTPS otomatis. TAVPBox sudah include wildcard cert `*.tavp.my.id` yang valid. Developer gak perlu setup apa-apa.

```
tavpbox create
# http://myproject.tavp.my.id → langsung jalan
```

Cert wildcard di-embed di binary. Browser auto-trust. Expired ~90 hari, admin release binary baru.

---

Web Panel
---------

[](#web-panel)

```
tavpbox panel
# Opens http://localhost:8080
```

Features:

- Dashboard (all projects with status)
- Create project wizard
- Project detail (logs, URLs, DB credentials)
- Start/Stop/Restart/Destroy actions
- Recipe &amp; service browser

---

Architecture
------------

[](#architecture)

```
tavpbox (Go binary)
├── CLI (cobra)
│   ├── init, create, start, stop, restart, destroy, rebuild
│   ├── ssh, list, info, logs
│   ├── tooling (dynamic subcommands)
│   ├── panel (web UI)
│   ├── proxy (reverse proxy management)
│   └── config (configuration)
├── Podman client (exec wrapper)
├── Embedded Go proxy
│   ├── HTTP :80
│   ├── HTTPS :443
│   └── Dynamic routes (routes.json)
├── Wildcard cert (*.tavp.my.id) embedded
├── Service library (15 services)
├── Recipe library (7 recipes)
├── Lando parser (.lando.yml)
├── Plugin engine (~/.tavpbox/plugins/)
└── API server (REST + embedded panel)

```

---

Multi-Platform
--------------

[](#multi-platform)

PlatformArchitectureBinaryWindowsamd64`tavpbox-windows-amd64.exe`macOSamd64`tavpbox-darwin-amd64`macOSarm64 (M1/M2)`tavpbox-darwin-arm64`Linuxamd64`tavpbox-linux-amd64`Linuxarm64`tavpbox-linux-arm64`Cross-compile:

```
make cross
# Output: dist/tavpbox-{os}-{arch}
```

---

Development
-----------

[](#development)

```
# Build
go build -o tavpbox .

# Cross-compile
make cross

# Run
./tavpbox version

# Test
go test ./...
```

---

Troubleshooting
---------------

[](#troubleshooting)

### Podman not found

[](#podman-not-found)

Install Podman Desktop:

### Container already exists

[](#container-already-exists)

```
tavpbox destroy
tavpbox create
```

### Port already in use

[](#port-already-in-use)

```
tavpbox proxy:stop
tavpbox proxy:start
```

---

Status Terkini
--------------

[](#status-terkini)

**Versi:** 0.11.2 (stable)

**Sudah bisa:**

- `tavpbox init` — auto-detect `.lando.yml` + convert
- `tavpbox create` — create container with pre-built image
- `tavpbox start` — auto-fix Podman if needed + start container + proxy
- `tavpbox destroy --yes` — destroy container
- `tavpbox ssh` — SSH into container
- `tavpbox expose` — show LAN URLs (fixed ports 8081-8999)
- `tavpbox proxy:start/stop/status` — manage proxy
- `tavpbox tooling` — run composer, npm, artisan, etc.
- 8/8 Lando projects migrated &amp; working
- Wildcard HTTPS (Let's Encrypt DNS-01)
- Web panel (localhost:8080)

**Diketahui:**

- WSL2 requires `networkingMode=mirrored` in `.wslconfig` (auto-created by tavpbox)
- `events.post-start` in `.tavpbox.yml` not auto-executed during create (manual step needed)

**Development:** Gitea (git.glotama.com/tavp-stack/tavp-box) — Release mirror ke GitHub

---

License
-------

[](#license)

MIT

---

Links
-----

[](#links)

- **GitHub**:
- **Gitea**:
- **Issues**:
- **Docs**:

###  Health Score

20

—

LowBetter than 12% of packages

Maintenance64

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/45a246eeec15ab5e78eec925cf3829fd5e69c302c1dee58e4e63a1551612a120?d=identicon)[jtdoank](/maintainers/jtdoank)

---

Top Contributors

[![jtdoank](https://avatars.githubusercontent.com/u/5408136?v=4)](https://github.com/jtdoank "jtdoank (133 commits)")

### Embed Badge

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

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

PHPackages © 2026

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