mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2025-12-16 13:35:11 +00:00
Configurar aplicação para deploy no Scalingo
Arquivos adicionados: - server.js: Servidor Express para servir a enciclopédia - package.json: Dependências Node.js (Express + compression) - Procfile: Configuração de processo para Scalingo - scalingo.json: Configurações específicas do Scalingo - .gitignore: Ignorar node_modules e arquivos desnecessários - DEPLOY.md: Guia completo de deploy no Scalingo Recursos implementados: ✅ Servidor Express otimizado ✅ Compressão GZIP para melhor performance ✅ Health check endpoint (/health) ✅ Cache de arquivos estáticos ✅ Tratamento de erros ✅ Redirecionamento de rotas ✅ Pronto para produção Como fazer deploy: 1. scalingo login 2. scalingo create enciclopedia-ai-prompts 3. git push scalingo main Veja DEPLOY.md para instruções detalhadas.
This commit is contained in:
parent
9a983dda0f
commit
ab7f38d11b
37
.gitignore
vendored
Normal file
37
.gitignore
vendored
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# Dependências
|
||||||
|
node_modules/
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
# Arquivos de ambiente
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Sistema operacional
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# IDEs
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Cache
|
||||||
|
.cache/
|
||||||
|
.temp/
|
||||||
|
tmp/
|
||||||
|
|
||||||
|
# Build
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
|
||||||
|
# Scalingo
|
||||||
|
.scalingo/
|
||||||
211
DEPLOY.md
Normal file
211
DEPLOY.md
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
# 🚀 Deploy da Enciclopédia no Scalingo
|
||||||
|
|
||||||
|
Este guia explica como fazer o deploy da Enciclopédia de System Prompts e IA no Scalingo.
|
||||||
|
|
||||||
|
## 📋 Pré-requisitos
|
||||||
|
|
||||||
|
1. Conta no [Scalingo](https://scalingo.com/)
|
||||||
|
2. [Scalingo CLI](https://doc.scalingo.com/platform/cli/start) instalado
|
||||||
|
3. Git configurado
|
||||||
|
|
||||||
|
## 🔧 Instalação do Scalingo CLI
|
||||||
|
|
||||||
|
### Linux / macOS
|
||||||
|
```bash
|
||||||
|
curl -O https://cli-dl.scalingo.com/install && bash install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
Baixe o instalador em: https://cli-dl.scalingo.com/install
|
||||||
|
|
||||||
|
## 📦 Arquivos de Configuração
|
||||||
|
|
||||||
|
A aplicação já está configurada com todos os arquivos necessários:
|
||||||
|
|
||||||
|
- ✅ `server.js` - Servidor Express para servir a enciclopédia
|
||||||
|
- ✅ `package.json` - Dependências Node.js
|
||||||
|
- ✅ `Procfile` - Comando para iniciar a aplicação
|
||||||
|
- ✅ `scalingo.json` - Configurações do Scalingo
|
||||||
|
- ✅ `.gitignore` - Arquivos a ignorar no Git
|
||||||
|
|
||||||
|
## 🚀 Deploy Passo a Passo
|
||||||
|
|
||||||
|
### 1. Login no Scalingo
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scalingo login
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Criar a Aplicação
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scalingo create enciclopedia-ai-prompts
|
||||||
|
```
|
||||||
|
|
||||||
|
Ou escolha seu próprio nome:
|
||||||
|
```bash
|
||||||
|
scalingo create seu-nome-aqui
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Adicionar Remote do Scalingo (se necessário)
|
||||||
|
|
||||||
|
O comando acima já adiciona automaticamente, mas se precisar adicionar manualmente:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scalingo git-setup --app enciclopedia-ai-prompts
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Deploy!
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git push scalingo main
|
||||||
|
```
|
||||||
|
|
||||||
|
Ou se estiver em uma branch diferente:
|
||||||
|
```bash
|
||||||
|
git push scalingo sua-branch:main
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Abrir a Aplicação
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scalingo --app enciclopedia-ai-prompts open
|
||||||
|
```
|
||||||
|
|
||||||
|
## ⚙️ Configurações Avançadas
|
||||||
|
|
||||||
|
### Definir Variáveis de Ambiente
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scalingo --app enciclopedia-ai-prompts env-set NODE_ENV=production
|
||||||
|
```
|
||||||
|
|
||||||
|
### Verificar Logs
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scalingo --app enciclopedia-ai-prompts logs
|
||||||
|
```
|
||||||
|
|
||||||
|
### Escalar a Aplicação
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scalingo --app enciclopedia-ai-prompts scale web:1:M
|
||||||
|
```
|
||||||
|
|
||||||
|
Tamanhos disponíveis: S, M, L, XL
|
||||||
|
|
||||||
|
### Verificar Status
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scalingo --app enciclopedia-ai-prompts ps
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🧪 Testar Localmente
|
||||||
|
|
||||||
|
Antes de fazer deploy, você pode testar localmente:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Instalar dependências
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# Rodar em modo desenvolvimento
|
||||||
|
npm run dev
|
||||||
|
|
||||||
|
# Ou rodar em modo produção
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
Acesse: http://localhost:3000
|
||||||
|
|
||||||
|
## 🌐 URLs Importantes
|
||||||
|
|
||||||
|
Após o deploy, sua aplicação estará disponível em:
|
||||||
|
- **URL da Aplicação:** `https://enciclopedia-ai-prompts.osc-fr1.scalingo.io`
|
||||||
|
- **Dashboard:** `https://dashboard.scalingo.com/`
|
||||||
|
|
||||||
|
## 📊 Monitoramento
|
||||||
|
|
||||||
|
### Health Check
|
||||||
|
A aplicação possui um endpoint de health check:
|
||||||
|
```
|
||||||
|
GET /health
|
||||||
|
```
|
||||||
|
|
||||||
|
Retorna: `{ "status": "ok", "message": "Enciclopédia de IA rodando!" }`
|
||||||
|
|
||||||
|
### Métricas no Dashboard
|
||||||
|
Acesse o dashboard do Scalingo para ver:
|
||||||
|
- Uso de CPU
|
||||||
|
- Uso de memória
|
||||||
|
- Tempo de resposta
|
||||||
|
- Número de requisições
|
||||||
|
|
||||||
|
## 🔄 Atualizar a Aplicação
|
||||||
|
|
||||||
|
1. Faça suas alterações localmente
|
||||||
|
2. Commit:
|
||||||
|
```bash
|
||||||
|
git add .
|
||||||
|
git commit -m "Descrição das alterações"
|
||||||
|
```
|
||||||
|
3. Push para o Scalingo:
|
||||||
|
```bash
|
||||||
|
git push scalingo main
|
||||||
|
```
|
||||||
|
|
||||||
|
O Scalingo fará o rebuild e deploy automaticamente!
|
||||||
|
|
||||||
|
## 🐛 Troubleshooting
|
||||||
|
|
||||||
|
### Build falhou?
|
||||||
|
```bash
|
||||||
|
scalingo --app enciclopedia-ai-prompts logs --lines 100
|
||||||
|
```
|
||||||
|
|
||||||
|
### App não inicia?
|
||||||
|
Verifique se o `Procfile` está correto e se as dependências no `package.json` estão instaladas.
|
||||||
|
|
||||||
|
### Timeout nas requisições?
|
||||||
|
Verifique os logs e considere escalar para um container maior:
|
||||||
|
```bash
|
||||||
|
scalingo --app enciclopedia-ai-prompts scale web:1:M
|
||||||
|
```
|
||||||
|
|
||||||
|
## 💰 Custos
|
||||||
|
|
||||||
|
O Scalingo oferece:
|
||||||
|
- **Free Trial** - Para testar
|
||||||
|
- **Planos pagos** - A partir de €7/mês
|
||||||
|
|
||||||
|
Container S (padrão desta aplicação): ~€7-10/mês
|
||||||
|
|
||||||
|
## 📚 Documentação
|
||||||
|
|
||||||
|
- [Documentação do Scalingo](https://doc.scalingo.com/)
|
||||||
|
- [Node.js no Scalingo](https://doc.scalingo.com/languages/nodejs/start)
|
||||||
|
- [Scalingo CLI Reference](https://doc.scalingo.com/platform/cli/start)
|
||||||
|
|
||||||
|
## 🆘 Suporte
|
||||||
|
|
||||||
|
- **Discord Scalingo:** https://scalingo.com/discord
|
||||||
|
- **Support:** support@scalingo.com
|
||||||
|
- **Status:** https://scalingostatus.com/
|
||||||
|
|
||||||
|
## ✅ Checklist de Deploy
|
||||||
|
|
||||||
|
- [ ] Scalingo CLI instalado
|
||||||
|
- [ ] Login no Scalingo feito
|
||||||
|
- [ ] Aplicação criada no Scalingo
|
||||||
|
- [ ] Código commitado no Git
|
||||||
|
- [ ] Deploy executado com sucesso
|
||||||
|
- [ ] Aplicação acessível via URL
|
||||||
|
- [ ] Health check respondendo
|
||||||
|
- [ ] Logs verificados
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎉 Pronto!
|
||||||
|
|
||||||
|
Sua Enciclopédia de IA está no ar! 🚀
|
||||||
|
|
||||||
|
Acesse e compartilhe com a comunidade! ⭐
|
||||||
1271
package-lock.json
generated
Normal file
1271
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
40
package.json
Normal file
40
package.json
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"name": "enciclopedia-ai-prompts",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Enciclopédia interativa sobre System Prompts e Modelos de IA - A maior coleção de instruções de sistema do mundo",
|
||||||
|
"main": "server.js",
|
||||||
|
"scripts": {
|
||||||
|
"start": "node server.js",
|
||||||
|
"dev": "nodemon server.js",
|
||||||
|
"test": "echo \"No tests configured\" && exit 0"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"ai",
|
||||||
|
"prompts",
|
||||||
|
"system-prompts",
|
||||||
|
"ia",
|
||||||
|
"inteligencia-artificial",
|
||||||
|
"enciclopedia",
|
||||||
|
"cursor",
|
||||||
|
"claude",
|
||||||
|
"chatgpt",
|
||||||
|
"copilot"
|
||||||
|
],
|
||||||
|
"author": "Lucknite",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.0.0",
|
||||||
|
"npm": ">=9.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"express": "^4.18.2",
|
||||||
|
"compression": "^1.7.4"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"nodemon": "^3.0.1"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools"
|
||||||
|
}
|
||||||
|
}
|
||||||
30
scalingo.json
Normal file
30
scalingo.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"name": "enciclopedia-ai-prompts",
|
||||||
|
"description": "Enciclopédia interativa sobre System Prompts e Modelos de IA",
|
||||||
|
"repository": "https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools",
|
||||||
|
"website": "https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools",
|
||||||
|
"keywords": [
|
||||||
|
"ai",
|
||||||
|
"prompts",
|
||||||
|
"system-prompts",
|
||||||
|
"ia",
|
||||||
|
"enciclopedia"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"NODE_ENV": {
|
||||||
|
"description": "Ambiente de execução",
|
||||||
|
"value": "production"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"formation": {
|
||||||
|
"web": {
|
||||||
|
"amount": 1,
|
||||||
|
"size": "S"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"buildpacks": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/Scalingo/nodejs-buildpack"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
47
server.js
Normal file
47
server.js
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const path = require('path');
|
||||||
|
const compression = require('compression');
|
||||||
|
|
||||||
|
const app = express();
|
||||||
|
const PORT = process.env.PORT || 3000;
|
||||||
|
|
||||||
|
// Middleware para compressão GZIP
|
||||||
|
app.use(compression());
|
||||||
|
|
||||||
|
// Servir arquivos estáticos
|
||||||
|
app.use(express.static(__dirname, {
|
||||||
|
maxAge: '1d', // Cache de 1 dia para melhor performance
|
||||||
|
etag: true
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Rota principal - serve a enciclopédia
|
||||||
|
app.get('/', (req, res) => {
|
||||||
|
res.sendFile(path.join(__dirname, 'enciclopedia.html'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Rota de health check para o Scalingo
|
||||||
|
app.get('/health', (req, res) => {
|
||||||
|
res.status(200).json({ status: 'ok', message: 'Enciclopédia de IA rodando!' });
|
||||||
|
});
|
||||||
|
|
||||||
|
// Redirecionar qualquer outra rota para a página principal
|
||||||
|
app.get('*', (req, res) => {
|
||||||
|
res.sendFile(path.join(__dirname, 'enciclopedia.html'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Iniciar servidor
|
||||||
|
app.listen(PORT, () => {
|
||||||
|
console.log(`🚀 Servidor rodando na porta ${PORT}`);
|
||||||
|
console.log(`📚 Enciclopédia disponível em http://localhost:${PORT}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Tratamento de erros
|
||||||
|
process.on('uncaughtException', (err) => {
|
||||||
|
console.error('❌ Erro não capturado:', err);
|
||||||
|
process.exit(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (err) => {
|
||||||
|
console.error('❌ Promise rejection não tratada:', err);
|
||||||
|
process.exit(1);
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue
Block a user