mgtr95/artlar-boilerplate
artlar-boilerplate
Laravel 13 + React/Inertia starter with a three-layer Docker setup: local development, manual VPS production, and a VPSOps panel seed.
Composer package: mgtr95/artlar-boilerplate
Create a new project
With the Artlar installer (recommended)
Install the CLI once (separate repo: mgtr95/artlar-installer):
# Until Packagist: register the VCS repo, then require
composer global config repositories.artlar-installer vcs https://github.com/mgtr95/artlar-installer.git
composer global require mgtr95/artlar-installer:dev-main
artlar new my-app
With Composer only
composer create-project mgtr95/artlar-boilerplate my-app --stability=dev \
--repository='{"type":"vcs","url":"https://github.com/mgtr95/artlar-boilerplate.git"}'
cd my-app
make up
After both packages are on Packagist, you can drop the --repository / composer global config lines.
Stack defaults
- Postgres, Redis, queue workers, and Vite (local)
- FrankenPHP (Caddy) — no in-app nginx
- Session / cache / queue on Redis
1. Local development
cp .env.example .env
make up
App: http://localhost:8000 — Vite HMR: http://localhost:5173
| Command | Purpose |
|---|---|
make up / make down |
Start / stop the stack |
make shell |
Shell in the app container |
make psql / make redis |
DB / Redis consoles |
make fresh |
migrate:fresh --seed |
make test |
Run Pest |
Set DOCKER_UID / DOCKER_GID in .env if your host user is not 1000:1000.
2. Manual VPS (shell)
Use when you deploy yourself without VPSOps:
cp .env.production.example .env
# Fill APP_KEY, DB_PASSWORD, APP_URL, mail, PROXY_NETWORK
docker network create proxy # if it does not exist yet
make prod-build
make prod-up
The app listens on :8080 inside the compose network (no host ports). Point your reverse proxy at http://app:8080. Queue workers and the scheduler run inside the app container via supervisord.
3. VPSOps panel
Seed files in the repo:
Dockerfile.paneldocker-compose.panel.yml.panel/Caddyfile,.panel/entrypoint.sh
On adopt/deploy, the panel regenerates these for the real slug and addons. Enable Postgres, Redis, and Queue in the panel UI. Production traffic goes through nginx on vps_proxy → {slug}_app:80.
Repo Docker for local/manual prod is ignored for panel production runs.
Layout
compose.yaml # local: app, queue, vite, pgsql, redis
compose.prod.yaml # manual VPS: app + pgsql + redis
docker/dev/ # local FrankenPHP image
docker/prod/ # multi-stage prod image + supervisord
Dockerfile.panel # VPSOps seed (regenerated on deploy)
docker-compose.panel.yml # VPSOps seed (postgres+redis+queue)
.panel/ # panel Caddyfile + entrypoint
Related Packages
Starter Kit Laravel 12 + React + Inertia + Tailwind + ShadCN UI + Spatie Permiss...
A reusable, server-side DataTable system for Laravel + Inertia.js + React (TanSt...
Illuminate your API — interactive inspector for Laravel 12 with Inertia + React
Domion - Professional Architecture for Laravel with Automated Frontend & Auth In...
Laravel Localizer bridges Laravel translations to your SPA frontend (React/Vue/I...