Dica: lovable + php e deploy automatico no seu servidor via ftp
Uma dica rapida: se você está usando lovable/v0 ou qualquer outra coisa parecida e esta fazendo o backend em php (outra dica você pode pedir para eles fazerem o backend em php) você pode facilitar a sua vida fazendo com que eles mesmo faça upload do build no seu servidor usando php. Envie um comando do tipo:
Adicione um scrip que deve ser executado após o build para fazer o upload via ftp, siga esse modelo:
import { Client } from 'basic-ftp';
import path from 'path';
import { fileURLToPath } from 'url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const FTP_CONFIG = {
host: '',
user: '',
password: '',
secure: false
};
const LOCAL_DIR = path.resolve(__dirname, '../dist');
const REMOTE_DIR = '/public_html';
async function deploy() {
const client = new Client();
client.ftp.verbose = true;
try {
console.log('🔌 Conectando ao servidor FTP...');
await client.access(FTP_CONFIG);
console.log('📂 Navegando para o diretório remoto...');
await client.ensureDir(REMOTE_DIR);
console.log('🚀 Iniciando upload dos arquivos...');
await client.uploadFromDir(LOCAL_DIR, REMOTE_DIR);
console.log('✅ Deploy concluído com sucesso!');
} catch (err) {
console.error('❌ Erro no deploy:', err);
process.exit(1);
} finally {
client.close();
}
}
deploy();
Claro você deve fornecer seus dados de acesso ftp
mas isso facilitou muito a minha vida, até porque eu fico pulando de conta em conta quando meus creditos acabam então com isso ele sempre faz upload de tudo para o servidor.
No meu caso tanto o front quanto a api php terminam na pasta dist, se estiver usando next vai ser a pasta out.
prompt que usei para convencer o lovable a usar php:
Quero uma aplicação dividida em duas partes.
O frontend deve ser feito com Node.js usando Vite exclusivamente para build. O resultado do build deve gerar apenas arquivos estáticos HTML, CSS e JavaScript. Não deve existir backend em Node nem servidor Node em produção.
A pasta public do projeto será a raiz pública do servidor. Dentro da pasta public deve existir a pasta api. Todo o backend deve ser feito exclusivamente em PHP e deve existir apenas dentro da pasta public/api. Não deve existir nenhuma outra pasta de backend fora de public/api.
Durante o processo de build do frontend, a pasta public inteira, incluindo public/api, deve ser copiada para a pasta dist junto com os arquivos estáticos gerados pelo Vite. O deploy final deve usar apenas o conteúdo da pasta dist.
Todo o backend em PHP deve usar banco de dados SQLite através de PDO. O banco deve ser local ao projeto. Não usar MySQL, Postgres ou qualquer serviço externo.
A aplicação deve ser multiusuário. Os usuários são identificados exclusivamente pelo e mail.
A autenticação deve permitir login por senha ou por magic link enviado por e mail. A criação de novos usuários deve ocorrer apenas via magic link.
O envio de e mail deve ser feito exclusivamente usando a função padrão mail do PHP. Não usar bibliotecas externas nem serviços de terceiros.
O frontend deve acessar a API PHP através de uma URL base configurável no arquivo api.ts. O frontend não deve conter lógica sensível de autenticação, apenas chamadas HTTP para a API.
O servidor final será um ambiente LAMP tradicional, servindo apenas os arquivos contidos na pasta dist
o v0.dev é mais chato e vai te obrigar a usar nextjs mas ainda assim da pra usar essa ideia
se voce ainda nao testou o lovable teste com meu link para a gentr ganhar 10 creditos quando publicar