feat(deploy): add systemd service configuration and update deployment documentation

Add psagentia.service file for systemd service management and update DEPLOY.md
with new deployment paths, user service option (without sudo), and improved
service management commands for both system and user-level installations.
This commit is contained in:
marco
2026-09-03 16:51:18 -03:00
parent 485ceb59c3
commit fcf01cb19e
3 changed files with 62 additions and 9 deletions
+1
View File
@@ -4,6 +4,7 @@ TELEGRAM_CHAT_ID=7889499475
# Default AI Model
DEFAULT_MODEL=inclusionai/ling-3.0-flash
DEFAULT_MODEL=minimax/minimax-m3:free
# OpenRouter Configuration
+44 -9
View File
@@ -67,6 +67,8 @@ sudo chmod 600 .env
## 6. Criar serviço systemd
### Opção A — Serviço de sistema (requer sudo)
Crie o arquivo `/etc/systemd/system/psagentia.service`:
```ini
@@ -77,9 +79,9 @@ After=network.target
[Service]
Type=simple
User=marco
WorkingDirectory=/opt/PsAgentIAMarco/app
Environment="PATH=/opt/PsAgentIAMarco/app/venv/bin:/usr/bin:/bin"
ExecStart=/opt/PsAgentIAMarco/app/venv/bin/python3 /opt/PsAgentIAMarco/app/psagentia_agent.py
WorkingDirectory=/home/marco/PsAgentIA/app
Environment="PATH=/home/marco/PsAgentIA/app/venv/bin:/usr/local/bin:/usr/bin:/bin"
ExecStart=/home/marco/PsAgentIA/app/venv/bin/python3 /home/marco/PsAgentIA/app/psagentia_agent.py
Restart=always
RestartSec=10
StandardOutput=journal
@@ -91,22 +93,55 @@ WantedBy=multi-user.target
Ajuste `User` e `WorkingDirectory` conforme seu cenário.
### Opção B — Serviço de usuário (não requer sudo)
Se o arquivo `psagentia.service` já existe em `~/.config/systemd/user/`, basta:
```bash
systemctl --user daemon-reload
systemctl --user enable --now psagentia.service
```
---
## 7. Ativar e iniciar o serviço
### Opção A — Serviço de sistema (requer sudo, sobrevive a reboot)
```bash
sudo systemctl daemon-reload
sudo systemctl enable psagentiamarco.service
sudo systemctl start psagentiamarco.service
sudo systemctl enable psagentia.service
sudo systemctl start psagentia.service
```
Comandos úteis:
### Opção B — Serviço de usuário (sem sudo, NÃO sobrevive a reboot — use se não tiver sudo)
```bash
sudo systemctl status psagentia.service # status
sudo journalctl -u psagentia.service -f # logs em tempo real
sudo systemctl restart psagentia.service # reiniciar após alterações
systemctl --user daemon-reload
systemctl --user enable --now psagentia.service
```
> **Importante:** Se usar a Opção B (serviço de usuário), o processo será morto quando você fizer logout. Para torná-lo persistente mesmo sem login, adicione ` lingering` para o usuário:
> ```bash
> sudo loginctl enable-linger marco
> ```
Comandos úteis (Opção A — sistema):
```bash
sudo systemctl status psagentia.service # status
sudo journalctl -u psagentia.service -f # logs em tempo real
sudo systemctl restart psagentia.service # reiniciar após alterações
sudo systemctl stop psagentia.service # parar
```
Comandos úteis (Opção B — usuário):
```bash
systemctl --user status psagentia.service # status
journalctl --user -u psagentia.service -f # logs em tempo real
systemctl --user restart psagentia.service # reiniciar
systemctl --user stop psagentia.service # parar
```
---
+17
View File
@@ -0,0 +1,17 @@
[Unit]
Description=PsAgentIA - Personal Agent IA Conversacional
After=network.target
[Service]
Type=simple
User=marco
WorkingDirectory=/home/marco/PsAgentIA/app
Environment="PATH=/home/marco/PsAgentIA/app/venv/bin:/usr/local/bin:/usr/bin:/bin"
ExecStart=/home/marco/PsAgentIA/app/venv/bin/python3 /home/marco/PsAgentIA/app/psagentia_agent.py
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target