Files
PsAgentAI/DEPLOY.md
T
marcocosta10000 6b3b6541a7 feat: add psagentai agent with deployment and configuration
Initial project setup including the main agent script, configuration
files, profile JSON state, systemd service unit, startup script,
deployment documentation, and Python dependencies.

Includes .env, venv/, and __pycache__/ which should likely be
excluded via .gitignore to avoid committing secrets and artifacts.
2026-10-25 17:05:13 -03:00

224 lines
5.2 KiB
Markdown

# PsAgentAI - Deploy em Servidor
Deploy como serviço systemd em Debian/Ubuntu para funcionar 24/7 em VPS.
---
## Pré-requisitos no servidor
```bash
sudo apt update
sudo apt install -y python3 python3-venv python3-pip git
```
Habilite o journal se quiser logs persistentes (opcional):
```bash
sudo apt install -y systemd-journal-remote
```
---
## 1) Copie o projeto para o servidor
Use git ou scp/rsync. Exemplo com git:
```bash
cd /opt
sudo git clone <URL_DO_REPOSITORIO> psagentai
sudo chown -R $USER:$USER /opt/psagentai
cd /opt/psagentai/app
```
Ajuste o caminho no serviço systemd para o diretório real:
```bash
nano psagentai.service
# altere /home/marco/PsAgentAI/app para /opt/psagentai/app
```
> O serviço usa `User=marco` por padrão. Crie o usuário se não existir:
> ```bash
> sudo useradd -m -s /bin/bash marco || true
> sudo usermod -aG sudo marco
> ```
> Ou edite `User=` no `.service` para o usuário existente do seu VPS.
---
## 2) Configure o `.env`
```bash
cp .env.example .env # se existir exemplo
nano .env
```
Preencha obrigatoriamente:
- `TELEGRAM_BOT_TOKEN`
- `TELEGRAM_CHAT_ID`
- `AI_PROVIDER` (`openrouter`, `stepfun`, `qwencloud` ou `llamacpp`)
- `DEFAULT_MODEL`
- pelo menos a chave de IA correspondente ao provider escolhido
Ajuste opcionalmente:
- `MIN_INTERVAL_MINUTES` / `MAX_INTERVAL_MINUTES`
- `MIN_MESSAGE_LINES`
> Importante: no Telegram, envie `/start` uma vez para o bot antes de ligar o serviço, caso contrário ele não conseguirá enviar mensagens iniciantes.
---
## 3) Instale as dependências
```bash
chmod +x iniciar.sh
./iniciar.sh
```
Esse script cria o `venv`, instala dependências e valida as variáveis do `.env`.
---
## 4) Instale o serviço systemd
```bash
# caminho absoluto no seu servidor
sudo nano /etc/systemd/system/psagentai.service
```
Conteúdo mínimo:
```ini
[Unit]
Description=PsAgentAI
After=network.target
[Service]
Type=simple
User=marco
WorkingDirectory=/opt/psagentai/app
Environment="PATH=/opt/psagentai/app/venv/bin:/usr/local/bin:/usr/bin:/bin"
ExecStart=/opt/psagentai/app/venv/bin/python3 /opt/psagentai/app/psagentai_agent.py
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
```
Ative e inicie:
```bash
sudo systemctl daemon-reload
sudo systemctl enable psagentai
sudo systemctl start psagentai
```
---
## 5) Comandos úteis
```bash
# status
sudo systemctl status psagentai
# logs em tempo real
sudo journalctl -u psagentai -f
# reiniciar após atualização
sudo systemctl restart psagentai
# parar
sudo systemctl stop psagentai
```
---
## 6) Atualizações futuras
```bash
cd /opt/psagentai/app
git pull
./iniciar.sh
sudo systemctl restart psagentai
```
---
## 7) Múltiplos usuários / VPSs
Cada instância do sistema é independente por chat ID do Telegram.
Para cada novo usuário/VPS:
1. Crie o bot via @BotFather (`/newbot`) e pegue o token.
2. Copie o projeto em um diretório separado, por exemplo `/opt/psagentai-user2`.
3. Crie um `.env` próprio com `TELEGRAM_BOT_TOKEN`, `TELEGRAM_CHAT_ID` e suas chaves de IA.
4. Instale dependências com `./iniciar.sh`.
5. Crie um serviço systemd separado, ex: `psagentai-user2.service`, apontando para esse diretório.
6. Habilite e inicie.
Nomes recomendados para evitar conflito:
- `/opt/psagentai-user1/`, `/opt/psagentai-user2/`
- `psagentai-user1.service`, `psagentai-user2.service`
---
## 8) Variáveis do `.env`
| Variável | Obrigatória | Descrição |
|---|---|---|
| `AI_PROVIDER` | não | Provider preferencial: `openrouter`, `stepfun`, `qwencloud` ou `llamacpp` |
| `TELEGRAM_BOT_TOKEN` | sim | Token do bot do Telegram |
| `TELEGRAM_CHAT_ID` | sim | Chat ID do usuário |
| `DEFAULT_MODEL` | sim | Modelo de IA padrão |
| `OPENROUTER_API_KEY` | 1 das chaves | Chave OpenRouter |
| `STEPFUN_API_KEY` | 1 das chaves | Chave StepFun |
| `QWENCLOUD_API_KEY` | 1 das chaves | Chave QwenCloud |
| `MIN_INTERVAL_MINUTES` | não | Intervalo mínimo para mensagens proativas |
| `MAX_INTERVAL_MINUTES` | não | Intervalo máximo para mensagens proativas |
| `MIN_MESSAGE_LINES` | não | Mínimo de linhas por mensagem do agente |
| `AUTO_ENRICH_EVERY` | não | Enriquece perfil a cada N mensagens |
| `AUTO_IMPROVE_EVERY` | não | Melhoria automática a cada N mensagens |
| `UPLOAD_CONTEXT_MAX_CHARS` | não | Limite de caracteres do upload enviado para a IA (`0` = sem limite) |
---
## Comandos úteis via Telegram
- `/veria` — mostra o provider e o modelo de IA atuais
- `/configia` — configura interativamente o provider e o modelo de IA
---
## 9) Backups importantes
Faça backup regular dos arquivos de dados dentro de `/app`:
- `user_profile.json`
- `agent_profile.json`
- `system_improvements.json`
- `uploads_metadata.json`
- pasta `contexts/`
- pasta `uploadsfiles/`
Exemplo simples de backup diário:
```bash
tar czf /root/backups/psagentai-$(date +%F).tar.gz -C /opt/psagentai/app user_profile.json agent_profile.json system_improvements.json uploads_metadata.json contexts uploadsfiles
```
---
## 10) Segurança
- Nunca comite o `.env` no repositório.
- Restrinja permissões: `chmod 600 .env`.
- Use um usuário exclusivo para cada instância do serviço.
- Para maior isolamento, execute cada instância em um container Docker separado ou em VMs distintas.