Implantando no Cloud

Nossa infraestrutura Smart Deploy é projetada para rodar backends leves e sites estáticos com zero configuração. Upload, detecção, build e deploy em segundos.

Isolamento

Cada app roda em seu próprio container Linux seguro.

Auto-Install

Detectamos package.json e executamos npm install automaticamente.

Fila Global

Monitoramento em tempo real do tráfego e logs.

Ambiente de Execução

O container fornece um conjunto de variáveis fixas e dinâmicas que seu código pode consumir.

Variável Resumo
PORTPorta dinâmica atribuída para o servidor escutar.
DATABASE_URLCaminho para o banco SQLite privado em user_data.db.
USER_IDSua identificação única no ecossistema BuhApp.
NODE_ENVSempre definido como production.

Rede e Portas

Como os apps rodam em containers compartilhados, você não escolhe a porta final. Nosso Gateway faz o Proxy reverso automaticamente.

🔥 Regra de Ouro:

Nunca use 8080 ou 3000 fixos. Sempre use process.env.PORT.

// Exemplo Express.js const express = require('express'); const app = express(); const PORT = process.env.PORT || 4000; app.get('/', (req, res) => res.send('BuhApp Cloud Online!')); app.listen(PORT, () => console.log(`Iniciado na porta ${PORT}`));

Node.js & TypeScript

O runtime oferece suporte nativo a ES Modules e TypeScript (via tsx). Se o seu arquivo terminar em .ts, o sistema o executará automaticamente como TypeScript.

Banco de Dados (SQLite)

Cada app tem um volume persistente para o banco de dados. O arquivo é recriado ou mantido entre deploys para garantir que você não perca dados.

const sqlite3 = require('sqlite3').verbose(); const path = require('path'); // Variável DATABASE_URL contém sqlite:///opt/app/user_data.db const dbFile = path.join(__dirname, 'user_data.db'); const db = new sqlite3.Database(dbFile, (err) => { if (err) console.error('Erro ao conectar ao DB:', err.message); else console.log('✅ Banco de dados SQLite persistente conectado.'); });

⚠️ Dica: Evite abrir múltiplas conexões simultâneas se seu app tiver alto tráfego. O SQLite pode travar se houver muitas escritas concorrentes por segundo.

BuhApp Vault (Segredos)

Segurança é nossa prioridade. O Vault permite injetar chaves privadas de APIs (Mercado Pago, Firebase, Stripe) sem que elas apareçam no seu código-fonte ZIP.

// Configure MP_ACCESS_TOKEN no painel Vault antes do deploy const mpToken = process.env.MP_ACCESS_TOKEN; async function criarPagamento() { const res = await fetch('https://api.mercadopago.com/v1/payments', { headers: { 'Authorization': `Bearer ${mpToken}` }, // ... }); }

Limites & Quotas

Recursos Pro

  • 🚀 RAM: 156MB Soft Limit / 256MB Hard Limit
  • 📁 Armazenamento: 50MB (Código) / 50MB (DB)
  • ⏱️ Build Timeout: 5 Minutos
  • 🌍 Conexões: Ilimitadas via Proxy Cloud

Monitoramento

Logs em tempo real disponíveis na aba Console do seu painel Smart.

[14:20:10] Executando npm install...
[14:20:15] Build Finalizada.
[14:20:16] Servidor Online na porta 45921