You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
3.3 KiB
Markdown
158 lines
3.3 KiB
Markdown
# Deploy do Telegram Satellite no Servidor
|
|
|
|
Este guia considera o modelo operacional atual do projeto:
|
|
- MySQL para tools e base mock
|
|
- Redis para estado conversacional
|
|
- Vertex AI para o modelo
|
|
- Telegram como canal principal
|
|
|
|
## 1) Fluxo com Git
|
|
|
|
```bash
|
|
# maquina local
|
|
git add .
|
|
git commit -m "ajustes no orquestrador"
|
|
git push origin main
|
|
|
|
# servidor
|
|
cd /opt/orquestrador
|
|
git pull origin main
|
|
```
|
|
|
|
## 2) Preparacao do ambiente
|
|
|
|
```bash
|
|
cd /opt/orquestrador
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
pip install -U pip
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
## 3) Dependencias externas
|
|
|
|
Garanta antes da subida:
|
|
- MySQL acessivel pelo host configurado
|
|
- Redis acessivel pelo host configurado
|
|
- credencial valida do Vertex AI
|
|
- token do bot do Telegram
|
|
|
|
## 4) Configurar `.env.prod`
|
|
|
|
Exemplo minimo:
|
|
|
|
```env
|
|
GOOGLE_PROJECT_ID=seu-projeto
|
|
GOOGLE_LOCATION=us-central1
|
|
VERTEX_MODEL_NAME=gemini-2.5-pro
|
|
|
|
ENVIRONMENT=production
|
|
DEBUG=false
|
|
|
|
DB_HOST=127.0.0.1
|
|
DB_PORT=3306
|
|
DB_USER=root
|
|
DB_PASSWORD=sua_senha
|
|
DB_NAME=orquestrador_mock
|
|
|
|
MOCK_DB_HOST=127.0.0.1
|
|
MOCK_DB_PORT=3306
|
|
MOCK_DB_USER=root
|
|
MOCK_DB_PASSWORD=sua_senha
|
|
MOCK_DB_NAME=orquestrador_mock
|
|
|
|
AUTO_SEED_TOOLS=true
|
|
AUTO_SEED_MOCK=true
|
|
MOCK_SEED_ENABLED=true
|
|
|
|
CONVERSATION_STATE_BACKEND=redis
|
|
CONVERSATION_STATE_TTL_MINUTES=60
|
|
REDIS_URL=redis://127.0.0.1:6379/0
|
|
REDIS_KEY_PREFIX=orquestrador
|
|
REDIS_SOCKET_TIMEOUT_SECONDS=5
|
|
|
|
TELEGRAM_BOT_TOKEN=seu_token_aqui
|
|
TELEGRAM_POLLING_TIMEOUT=30
|
|
TELEGRAM_REQUEST_TIMEOUT=45
|
|
```
|
|
|
|
Observacoes:
|
|
- em producao, o satelite exige `CONVERSATION_STATE_BACKEND=redis`;
|
|
- use `DEBUG=false` ou `DEBUG=true`, sem valores livres como `release`.
|
|
|
|
## 5) Credencial do Vertex AI
|
|
|
|
Defina um dos formatos abaixo:
|
|
|
|
- `GOOGLE_APPLICATION_CREDENTIALS=/opt/orquestrador/sa.json`
|
|
- ou Application Default Credentials
|
|
|
|
A service account precisa de permissao de uso do Vertex AI, como `roles/aiplatform.user`.
|
|
|
|
## 6) Bootstrap manual inicial
|
|
|
|
Antes de ativar o servico, rode uma inicializacao manual para validar banco e seeds:
|
|
|
|
```bash
|
|
cd /opt/orquestrador
|
|
source venv/bin/activate
|
|
python -m app.db.bootstrap
|
|
```
|
|
|
|
## 7) Configurar `systemd`
|
|
|
|
Copie o template principal:
|
|
|
|
```bash
|
|
sudo cp deploy/systemd/orquestrador.service.example /etc/systemd/system/orquestrador.service
|
|
sudo nano /etc/systemd/system/orquestrador.service
|
|
```
|
|
|
|
Se quiser um atalho explicito para bootstrap manual via `systemd`, existe tambem o template:
|
|
|
|
```bash
|
|
sudo cp deploy/systemd/orquestrador-bootstrap.service.example /etc/systemd/system/orquestrador-bootstrap.service
|
|
```
|
|
|
|
Depois recarregue e inicie:
|
|
|
|
```bash
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable --now orquestrador
|
|
sudo systemctl status orquestrador
|
|
```
|
|
|
|
Logs:
|
|
|
|
```bash
|
|
journalctl -u orquestrador -f
|
|
```
|
|
|
|
## 8) Validacao rapida
|
|
|
|
Checklist minimo:
|
|
- o servico sobe sem excecao
|
|
- o Redis responde
|
|
- o bot aparece online no Telegram
|
|
- uma mensagem simples recebe resposta
|
|
|
|
Teste funcional:
|
|
1. Abra o bot no Telegram.
|
|
2. Envie uma mensagem como `Ola`.
|
|
3. Envie uma mensagem operacional como `Quero ver carros ate 50000 reais`.
|
|
4. Verifique os logs do servico se necessario.
|
|
|
|
## 9) Atualizacao em producao
|
|
|
|
```bash
|
|
cd /opt/orquestrador
|
|
git pull origin main
|
|
source venv/bin/activate
|
|
pip install -r requirements.txt
|
|
# rode o bootstrap apenas quando houver mudanca de schema/seed
|
|
python -m app.db.bootstrap
|
|
sudo systemctl restart orquestrador
|
|
sudo systemctl status orquestrador
|
|
```
|
|
|