v4.0.0 — MIT Licensed — 1.1k Stars

Easy Laravel Deployments

The open-source CLI built exclusively for Laravel. One command installs a complete production stack. One command creates an isolated app with its own database, workers, SSL, and zero-downtime deploys.

Install on any Ubuntu 24.04+ VPS
$ wget -O - https://raw.githubusercontent.com/andreapollastri/cipi/refs/heads/latest/install.sh | bash

A single VPS becomes a multi-app
Laravel hosting platform

Every app runs under its own Linux user. Isolated filesystem, PHP-FPM pool, and database. One compromised app cannot touch the others.

Nginx Reverse Proxy

Per-app virtual hosts with optimized configuration for Laravel applications.

MariaDB

Auto-tuned to your server's RAM. Dedicated database per app with isolated users.

Multi PHP & Composer

Selectable per app. Hot swap PHP versions from 7.4 to 8.5 and Composer 2.

Let's Encrypt SSL

Automatic certificates via Certbot with SAN support for domain aliases.

CI/CD Ready

Zero-downtime deployments with instant rollback. Keeps last 5 releases.

Fail2ban + UFW

Brute-force protection and firewall out of the box. SSH, HTTP, HTTPS only.

S3 Backups

Automated database and storage backups to Amazon S3 or compatible providers.

Supervisor Workers

Per-app queue workers with CLI management. Add, scale, and monitor queues.

From zero to production
in three steps

01

Install Cipi

Run the installer on a fresh Ubuntu 24.04+ VPS. Takes about 10–15 minutes. At the end, save the MariaDB root password — it's shown only once.

02

Create your app

Run cipi app create and answer a few questions: username, domain, Git repo, branch, PHP version. Cipi sets up everything — user, database, Nginx, workers, cron.

03

Deploy & go live

Run cipi deploy myapp for zero-downtime deployment, then cipi ssl install myapp for HTTPS. Your Laravel app is live.

Everything you need,
nothing you don't

Built for Laravel developers who value security, simplicity, and control. No web panel, no bloat — just SSH and the cipi command.

Deploy

Zero-Downtime Deploys

Deployer clones your repo, runs composer install, links storage, runs migrations, and swaps the symlink atomically. Instant rollback to any of the last 5 releases.

Automation

Webhook Auto-Deploy

Install the Cipi Agent Laravel package for automatic deploys on git push. Supports GitHub and GitLab with HMAC signature verification.

Security

Full Isolation

Each app has its own Linux user, PHP-FPM pool, database, SSH key, and home directory. open_basedir restricts PHP to the app's home. No app can touch another.

Domains

Aliases & SSL

Add multiple domains or subdomains to any app. Certbot provisions a single SAN certificate covering all domains. Auto-renew via weekly cron.

Workers

Queue Management

Every app gets a default Supervisor worker. Add queues, set processes and timeouts, scale up — all via CLI. Workers restart automatically after each deploy.

Ops

Artisan, Tinker & Logs

Run Artisan and Tinker as the app user with the correct PHP version. Tail logs in real-time — Nginx, PHP-FPM, workers, deploys. Auto-rotated daily, kept 14 days.

One command for everything

No GUI, no overhead. Manage your entire Laravel infrastructure from the terminal.

cipi app createCreate app (interactive)
cipi app create --user=U --domain=D --repository=R --php=VCreate app (flags, non-interactive)
cipi app listList all apps
cipi app show <app>App details, deploy key, workers
cipi app edit <app> --php=8.5Change PHP version
cipi app edit <app> --branch=developChange deploy branch
cipi app env <app>Edit .env in nano
cipi app logs <app>Tail all logs
cipi app logs <app> --type=deployTail specific log type (nginx, php, worker, deploy)
cipi app artisan <app> migrateRun Artisan command
cipi app tinker <app>Open Tinker
cipi app delete <app>Delete app
cipi deploy <app>Deploy via Deployer
cipi deploy <app> --rollbackRollback to previous release
cipi deploy <app> --releasesList releases
cipi deploy <app> --keyShow SSH deploy key
cipi deploy <app> --webhookShow webhook URL & token
cipi worker add <app> --queue=Q --processes=NAdd worker
cipi worker list <app>List workers
cipi worker edit <app> --queue=Q --processes=NEdit worker
cipi worker remove <app> <queue>Remove worker
cipi worker restart <app>Restart all workers
cipi db createCreate database
cipi db listList databases with sizes
cipi db backup <n>Backup to local file
cipi db restore <n> <file>Restore from file
cipi db password <n>Regenerate password
cipi db delete <n>Delete database
cipi backup configureConfigure S3 credentials
cipi backup run [app]Backup all or single app
cipi backup list [app]List backups
cipi ssl install <app>Install Let's Encrypt SSL
cipi ssl renewRenew all certificates
cipi ssl statusShow certificates & expiry
cipi php install <ver>Install PHP version
cipi php remove <ver>Remove PHP version
cipi php listList installed PHP versions
cipi alias add <app> <domain>Add domain alias
cipi alias remove <app> <domain>Remove alias
cipi alias list <app>List aliases
cipi service listStatus of all services with uptime info
cipi service list <service>Status of a specific service
cipi service restartRestart all services
cipi service restart <service>Restart one service (nginx uses graceful reload)
cipi service restart phpRestart all installed PHP-FPM versions
cipi service start <service>Start a stopped service
cipi service stop <service>Stop a running service (with confirmation)
cipi firewall allow <port>Allow port
cipi firewall allow <port> --from=IPAllow port from IP
cipi firewall deny <port>Deny port
cipi firewall listShow firewall rules
cipi statusServer status (CPU, RAM, disk, services, PHP, apps)
cipi versionShow Cipi version
cipi self-updateUpdate Cipi
cipi self-update --checkCheck for updates without installing

Works on any Ubuntu VPS

Ubuntu 24.04 LTS or higher, root access, ports 22/80/443 open. That's all you need.

DigitalOcean AWS EC2 Vultr Linode Hetzner Google Cloud OVH Scaleway

What changed in v4

A complete rewrite focused on Laravel, security, and the command line.

Feature v3 v4
Interface Web UI (Laravel app) CLI only (SSH)
Target Generic PHP + WordPress Laravel exclusively
Database MySQL MariaDB 11.4
Deploy git pull Deployer (zero-downtime)
Workers Basic Supervisor CLI-managed add/edit/remove
Cache / Queue Redis optional Database (Laravel native)
Deploy Keys Shared Per-app (ed25519)
Webhooks Not available GitHub / GitLab
Updates Reinstall cipi self-update with migrations
Backup Not available S3 automated

Deploy your Laravel app today

Open source, MIT licensed, free forever. Install on your VPS and start deploying in minutes.

$ wget -O - https://raw.githubusercontent.com/andreapollastri/cipi/refs/heads/latest/install.sh | bash
GitHub Repository Report an Issue