Version 4.0.0
[4.0.0] — 2026-03-03
Complete rewrite of the Cipi CLI from the ground up.
Added
- New modular shell architecture: each domain split into its own library (
lib/app.sh,lib/deploy.sh,lib/db.sh,lib/backup.sh,lib/ssl.sh,lib/php.sh,lib/firewall.sh,lib/service.sh,lib/worker.sh,lib/self-update.sh,lib/common.sh) lib/common.sh— shared helpers:parse_args,validate_*,generate_password,read_input,confirm,log_action, and app registry helpers (app_exists,app_get,app_set,app_save,app_remove)cipi service list|restart|start|stop— full service management for nginx, mariadb, supervisor, fail2ban, php-fpmcipi deploy <app> --unlock— unlock a stuck Deployer processcipi deploy <app> --webhook— display webhook URL and tokencipi deploy <app> --key— display the SSH deploy public keycipi deploy <app> --releases— list available releasescipi deploy <app> --rollback— roll back to the previous releasecipi backup configure— interactive S3 configuration wizardcipi backup run [app]— run backup for a specific app or all appscipi backup list [app]— list S3 backups per-app or globally (supports multiple S3 providers)cipi self-update [--check]— update Cipi in place;--checkshows available version without installingcipi app artisan <app> <cmd>— run arbitrary Artisan commandscipi app tinker <app>— open Laravel Tinker for an appcipi app logs <app> [--type=nginx|php|worker|deploy|all]— tail app logs by type- PHP 8.4 and 8.5 support
lib/cipi-worker— standalone helper script for queue worker management via sudoers- Nginx security headers (
X-Frame-Options,X-Content-Type-Options,Referrer-Policy) in generated vhosts - App registry stored as JSON (
/etc/cipi/apps.json) with full CRUD viaapp_save/app_remove - Structured action logging to
/var/log/cipi
Changed
cipi app createnow provisions: Linux user, directories, SSH deploy key, MariaDB database,.env, PHP-FPM pool, Nginx vhost, Supervisor worker, crontab (scheduler + deploy trigger), Deployer config, sudoers entry- Deployer recipe uses
recipe/laravel.phpwith automaticartisan:migrate,artisan:optimize,artisan:storage:link,artisan:queue:restart, andworkers:restarthooks cipi app editsupports--php,--branch,--repositoryflags and updates all affected config files atomicallycipi app deleteperforms full cleanup: workers, nginx, php-fpm, database, crontab, sudoers, SSL certificate, home directorycipi alias add/removeregenerates the Nginx vhost and reloads nginxcipi dbcommands (create,list,delete,backup,restore) rewritten with MariaDB-native toolingcipi ssl installuses Certbot with all aliases included in the certificate SANcipi php installmanages PHP-FPM installs per versioncipi firewall allow/listwrapsufw- Removed legacy
lib/commands.sh,lib/domain.sh,lib/nginx.sh,lib/database.sh - Removed Redis dependency from the default stack
Fixed
- SSL Certbot integration with multi-domain vhosts
- Worker restart via supervisor with app-scoped naming
- PHP-FPM pool
open_basedirset correctly per app - Deploy key
authorized_keysandknown_hostspermissions hardened