Files
PsAgentAI/DEPLOY.md
T
marcocosta10000 4cd968a74e feat(vision): add configurable image analysis model and workspace file editing
- Add VISION_MODEL and VISION_PROVIDER env options with openrouter
  default and provider auto-detection from the model id
- Add /veriavision, /configiavision and /about commands
- Support natural-language editing of files inside workspace/ and a
  /baixar command to download them
- Replace config-based timezone with system-local time detection
- Add module version/author/license metadata
- Document development conventions in new RULES.md and update
  README.md/DEPLOY.md with the new commands and env vars
2026-10-26 11:28:59 -03:00

5.8 KiB

PsAgentAI - Deploy em Servidor

Deploy como serviço systemd em Debian/Ubuntu para funcionar 24/7 em VPS.


Pré-requisitos no servidor

sudo apt update
sudo apt install -y python3 python3-venv python3-pip git ffmpeg

Habilite o journal se quiser logs persistentes (opcional):

sudo apt install -y systemd-journal-remote

1) Copie o projeto para o servidor

Use git ou scp/rsync. Exemplo com git:

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:

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:

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

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

sudo apt install -y ffmpeg

```bash
chmod +x iniciar.sh
./iniciar.sh

Esse script cria o venv, instala dependências e valida as variáveis do .env.

Se o comando acima não instalar ffmpeg na versão esperada, use também:

sudo apt install -y ffmpeg

O reconhecimento de voz usa SpeechRecognition + pydub + ffmpeg.


4) Instale o serviço systemd

# caminho absoluto no seu servidor
sudo nano /etc/systemd/system/psagentai.service

Conteúdo mínimo:

[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:

sudo systemctl daemon-reload
sudo systemctl enable psagentai
sudo systemctl start psagentai

5) Comandos úteis

# 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

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)
VISION_MODEL não Modelo de IA para análise de imagens
VISION_PROVIDER não Provider do modelo de visão (openrouter, stepfun, qwencloud)

Comandos úteis via Telegram

  • /veria — mostra o provider e o modelo de IA atuais
  • /configia — configura interativamente o provider e o modelo de IA
  • /veriavision — mostra o provider e o modelo de visão atuais
  • /configiavision — configura interativamente o modelo de visão
  • /about — exibe informações do sistema, versão, autor e licença

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 workspace/

Exemplo simples de backup diário:

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 workspace

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.