This commit is contained in:
Fellipe Saraiva 2025-11-14 00:10:16 -03:00 committed by GitHub
commit dfd2325bf1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 2788 additions and 0 deletions

37
.gitignore vendored Normal file
View 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
View 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! ⭐

1
Procfile Normal file
View File

@ -0,0 +1 @@
web: node server.js

1151
enciclopedia.html Normal file

File diff suppressed because it is too large Load Diff

1271
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

40
package.json Normal file
View 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
View 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
View 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);
});