Instalação
Do zero ao servidor rodando em minutos.
Pré-requisitos
Antes de começar, certifique-se de ter instalado:
| Requisito | Versão mínima | Verificar |
|---|---|---|
| PHP | 8.2+ | php -v |
| Composer | 2.x | composer -V |
| Git | 2.x | git --version |
| PostgreSQL ou MySQL | 15+ / 8+ | psql -V / mysql -V |
Instalar PHP 8.2 (Ubuntu)
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install -y php8.2 php8.2-cli php8.2-common php8.2-curl php8.2-mbstring php8.2-xml php8.2-zip
Instalar Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Instalar extensões de banco de dados
Para PostgreSQL:
sudo apt-get install php8.2-pgsql
# Windows: habilite 'extension=pgsql' e 'extension=pdo_pgsql' no php.ini
Para MySQL:
sudo apt-get install php8.2-mysql
# Windows: habilite 'extension=mysqli' e 'extension=pdo_mysql' no php.ini
Banco de dados com Docker (alternativa recomendada)
Se não quiser instalar PostgreSQL ou MySQL localmente, use o Docker. O projeto já vem com um docker-compose.yml pronto.
Instalar Docker + Compose (Ubuntu)
# Remove versões antigas
sudo apt-get remove -y docker docker-engine docker.io containerd runc
# Instala dependências
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
# Adiciona chave GPG oficial do Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Adiciona repositório
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Instala Docker Engine + Compose plugin
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Permite rodar sem sudo (requer logout/login)
sudo usermod -aG docker $USER
Windows / macOS
Instale o Docker Desktop — já inclui o Compose.
Subir o banco com docker-compose.yml
Com o repositório clonado, escolha o banco que preferir:
# Apenas PostgreSQL (recomendado)
docker compose up -d postgres
# Apenas MySQL
docker compose up -d mysql
# PostgreSQL + Adminer (interface web na porta 8080)
docker compose up -d postgres adminer
# Tudo (PostgreSQL + MySQL + Adminer)
docker compose up -d
Com o Adminer rodando, acesse http://localhost:8080 para gerenciar o banco via interface web. Servidor: postgres, usuário: admin, senha: conforme DB_SENHA no .env.
Parar os containers
docker compose down # para e remove containers (dados preservados)
docker compose down -v # para e remove containers + volumes (apaga dados)
O Docker Compose lê as variáveis DB_NOME, DB_USUARIO, DB_SENHA e APP_TIMEZONE diretamente do seu .env. Configure-as antes de subir os containers.
Clonar o repositório
git clone https://github.com/vupi.us/api_vupi.us_php.git
cd api_vupi.us_php
Instalar dependências
composer install --no-dev --optimize-autoloader # produção
composer install # desenvolvimento
Setup automático (recomendado)
O projeto possui um comando de setup completo com menu interativo:
php vupi setup
O menu interativo permite:
- Gerar secrets JWT automaticamente
- Criar banco de dados via Docker
- Executar migrations e seeders
- Subir o servidor PHP em background
- Configurar Caddy para HTTPS automático
Ou tudo de uma vez sem interação:
php vupi setup --auto --db-mode=docker --server=php --jwt=if-empty
php vupi setup --help lista todas as flags disponíveis.
Setup manual (passo a passo)
Copiar o arquivo de ambiente
cp EXEMPLO.env .env
# Windows:
copy EXEMPLO.env .env
Editar o .env com suas configurações
Preencha pelo menos: DB_HOST, DB_NOME, DB_USUARIO, DB_SENHA, JWT_SECRET e JWT_API_SECRET.
Veja a seção Configuração do Ambiente para detalhes de cada variável.
Executar migrations
php vupi migrate --seed
Instalação rápida (Ubuntu)
Para Ubuntu 22.04/24.04, um único script instala tudo:
git clone https://github.com/vupi.us/api_vupi.us_php.git
cd api_vupi.us_php
sudo bash install.sh
Instala PHP 8.2, Docker, drivers de banco, Composer, sobe o banco, roda migrations e seeders, e inicia o servidor — tudo automaticamente.