Skip to content

Laravel on your own server — without DevOps.

A stack for the app, zero-downtime deploys with migrations and caches, Horizon queues and the scheduler — everything a Laravel app needs, from one panel.

  • 7 days free
  • No card required
  • Payment in rubles
Deploy · api.example.com · main

$ git clone --depth 1 … releases/20261006-0912clone

$ composer install --no-dev --optimize-autoloaderdependencies

$ npm ci && npm run buildasset builds

$ php artisan migrate --forcemigrations

$ php artisan config:cache && route:cache && view:cachecaches

$ ln -sfn releases/20261006-0912 currentswitch

$ php artisan queue:restartqueues

✓ Release is live · no downtime · 48 s

0s
of downtime: the new release is built alongside and switched in with one symlink change
5
releases kept for rollback — the number is configurable
4
daemon presets: Horizon, Queue Worker, the scheduler and Reverb
3
site environments: production, staging and development

Server

A ready stack in minutes.

The starter package set for a PHP app installs the whole stack. You can change it before install and extend it at any time.

  • PHPa version per site
  • Nginxconfigured for public/
  • MySQLdatabases and users
  • Rediscache and queues
  • Composerdependencies
  • Node.jsasset builds
  • Supervisordaemons and queues
  • Gitpush-to-deploy
  • CertbotSSL and renewal
  • UFWfirewall

Nginx is configured for Laravel: the root in public/, try_files to index.php, a separate PHP-FPM pool per site.

Deploy

Push to Git — and Laravel is updated.

The panel runs the whole cycle itself: dependencies, asset build, migrations and caches. The new release is built next to the old one and switched in atomically.

  • composer install, npm ci and asset builds
  • artisan migrate, config:cache, route:cache, view:cache
  • Releases in releases/, switching the current symlink
  • One-click rollback to a kept release
/home/api/api.example.comzero-downtime layout
  • current→ releases/20261006-0912served by the site
  • releases/
  • 20261006-0912new release
  • 20261005-1820for rollback
  • 20261003-1104for rollback
  • .envshared between releases
  • storage/shared between releases

Environment

Production, staging, development.

The site's environment sets the install flags, APP_ENV and APP_DEBUG for you — no manual editing.

Production

An optimized install without dev dependencies, debugging off.

composer install
--no-dev
APP_ENV
production
APP_DEBUG
false

Staging

A copy of the production environment to test releases before going live.

composer install
with dev dependencies
APP_ENV
staging
APP_DEBUG
false

Development

Dev dependencies and debugging on for active development.

composer install
with dev dependencies
APP_ENV
local
APP_DEBUG
true

Background processes

Queues, the scheduler and WebSockets.

Ready-made Supervisor daemon presets: started in a couple of clicks, restarted on their own and after every deploy.

Horizon

A dashboard and Redis queues with auto-restart. Horizon statistics are visible right in the panel.

php artisan horizon

Queue Worker

The classic queue worker: the number of processes is set in the daemon's settings.

php artisan queue:work redis --queue=default --tries=3 --max-time=3600 --memory=256

Scheduler

Laravel's scheduled tasks without a hand-written cron entry.

php artisan schedule:work

Reverb

WebSockets: the panel adds the /wss block to Nginx and the required variables to .env.

php artisan reverb:start --host=0.0.0.0 --port=8080

Worker nodes

Queues — on a separate server.

Connect a separate VPS as a worker node: it takes .env from the main site and runs the queues while the app serves users.

  • A worker server for queues
  • .env is synced from the main site
  • On a worker, deploy doesn't re-run migrations
masterapp-01Nginx · PHP-FPM · MySQLuser requests
workerworker-01Horizon · Supervisorheavy jobs

Variables and commands

.env and artisan from the panel.

Artisan commands can be run from the panel's terminal — or in plain words: the AI assistant and MCP can run them.

  • .env editor

    Edit environment variables in the panel and sync them with the server.

  • DB_* values fill in themselves

    Link a database to the site — its credentials land in .env automatically.

  • First run with no manual steps

    key:generate and storage:link run when the site is created.

  • An environment template per cluster

    One .env template is rolled out to every server of the cluster.

AI assistant · api.example.com

you: run the migrations and restart the queues

$ php artisan migrate --force

INFO Nothing to migrate.

$ php artisan queue:restart

INFO Broadcasting queue restart signal.

AI assistant and MCP

In the panel 203.0.113.21 Connect done in 4 min 52 s

Deploy Laravel without DevOps.

Stack, deploy, queues and scheduler — from one panel. 7 days free after sign-up.

  • 7 days free
  • No card required
  • Human support

We use cookies and the Yandex Metrica web-analytics service (including Session Replay) to improve the site. Details are in the privacy policy.