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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user