Search by

mgtr95 / artlar-boilerplate

mgtr95

Laravel 13 + React/Inertia starter with Docker (FrankenPHP, Postgres, Redis).

Package info

github.com/mgtr95/artlar-boilerplate

Language:TypeScript

Type:project

pkg:composer/mgtr95/artlar-boilerplate

Statistics

Installs: 5

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.1 2026-09-18 12:38 UTC

This package is auto-updated.

Last update: 2026-09-18 12:54:37 UTC


README

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.panel
  • docker-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