Comandos CLI
Referência completa de todos os comandos disponíveis via php vupi e php db.
Setup
bash
php vupi setup # menu interativo (23 opções)
php vupi setup --help # lista todas as flags
php vupi setup --auto # modo automático sem interação
Flags do modo --auto
| Flag | Valores | Padrão | Descrição |
|---|---|---|---|
--db-mode | compose, docker, skip | compose | Como subir o banco: docker-compose, container avulso ou pular. |
--server | background, php, pm2, pm2+caddy, fpm+caddy | background | Como subir o servidor PHP. fpm+caddy é o recomendado para produção real. |
--jwt | if-empty, skip | if-empty | Gera JWT_SECRET e JWT_API_SECRET se estiverem vazios. |
--api-token | generate, skip | skip | Gera token JWT de API após o setup. |
--caddy | production, dev, skip | skip | Inicia Caddy: produção (Let's Encrypt), dev (mkcert) ou pula. |
bash
# Exemplos de uso
php vupi setup --auto --db-mode=docker --server=php --jwt=if-empty
php vupi setup --auto --server=fpm+caddy # produção real (PHP-FPM + Caddy)
php vupi setup --auto --server=pm2+caddy --caddy=production
php vupi setup --auto --db-mode=skip --caddy=dev
php vupi setup --auto --jwt=if-empty --api-token=generate
Migrations e banco
bash
php vupi migrate # executa migrations pendentes (core + módulos)
php vupi migrate --seed # migrations + seeders
php vupi migrate --rollback # desfaz a última migration
php vupi migrate --core # apenas conexão core (DB_*)
php vupi migrate --modules # apenas conexão modules (DB2_*)
php vupi migrate --status # status de todas as migrations
php vupi migrate --status --json # status em formato JSON
# Alias: php db faz a mesma coisa
php db migrate
php db seed
php db rollback
Geração de código
bash
php vupi make:module NomeDoModulo
php vupi make:plugin NomeDoPlugin
php vupi make:plugin NomeDoPlugin --capability=email-sender --description="Envio de e-mails"
Plugins
bash
php vupi plugin:install nome-do-plugin # instala
php vupi plugin:enable nome-do-plugin # ativa
php vupi plugin:disable nome-do-plugin # desativa
php vupi plugin:uninstall nome-do-plugin # remove
php vupi plugin:migrate # migrations de todos os plugins
php vupi plugin:rollback nome-do-plugin # reverte migrations do plugin
php vupi plugin:validate # valida estrutura dos plugins
php vupi plugin:inspect # lista plugins instalados
Capacidades
bash
php vupi capability:list # lista todas as capacidades
php vupi capability:list email-sender # detalha uma capacidade específica
php vupi plugin:provider:set email-sender nome-do-plugin # define o provider
Makefile
Atalhos para tarefas comuns. Execute make help para ver todos.
bash
# Docker
make up-pg # sobe PostgreSQL + Adminer
make up-mysql # sobe MySQL + Adminer
make up-all # sobe tudo
make down # para containers
make restart # reinicia containers
make logs # logs em tempo real
make ps # lista containers
make shell-pg # abre psql no PostgreSQL
make shell-mysql # abre mysql no MySQL
# Projeto
make install # composer install --no-dev --optimize-autoloader (produção)
make migrate # php vupi migrate
make seed # php vupi migrate --seed
make test # testes de segurança
make analyse # PHPStan nível 6
make setup # setup completo (banco + deps + migrations)
# Caddy (proxy reverso / HTTPS)
make caddy-install # instala Caddy no Ubuntu/Debian
make caddy-start # inicia Caddy em produção (HTTPS Let's Encrypt)
make caddy-stop # para Caddy
make caddy-reload # recarrega config sem downtime
make caddy-dev # HTTPS local com mkcert (desenvolvimento)
# Limpeza
make clean # remove cache e arquivos temporários
make reset # para containers e apaga volumes (CUIDADO: apaga dados!)
Servidor
bash
php -S localhost:3005 index.php # desenvolvimento
php vupi setup --auto --server=fpm+caddy # produção: PHP-FPM + Caddy (recomendado)
php vupi setup --auto --server=pm2+caddy # produção: PM2 + Caddy
php vupi setup --auto --server=pm2 # produção: apenas PM2
Menu interativo (opções)
O menu php vupi setup possui opções numeradas. As mais importantes para produção:
| Opção | Descrição |
|---|---|
24 | [Recomendado produção] PHP-FPM + Caddy — substitui php -S e PM2 |
25 | Recarregar PHP-FPM — aplica mudanças de código sem derrubar conexões |
26 | Recarregar Caddy — aplica mudanças no Caddyfile |
27 | Recarregar tudo (PHP-FPM + Caddy) — use após git pull |
28 | Verificar e corrigir permissões do projeto automaticamente |
Fluxo de deploy recomendado
bash
git pull
composer install --no-dev --optimize-autoloader
php vupi setup # opção 27 (recarrega PHP-FPM + Caddy)Testes
bash
php vendor/bin/phpunit # todos os testes unitários
php tests/SecurityTest.php http://localhost:3005 # OWASP API Top 10
php tests/FuzzTest.php http://localhost:3005 # fuzzing de endpoints
php tests/LoadAttackTest.php http://localhost:3005 # carga + ataque combinado
php tests/PerformanceTest.php http://localhost:3005 # testes de performance
ADMIN_PASSWORD=senha php tests/EnvConfigTest.php # testes de configuração do .env