Metadata-Version: 2.4
Name: deployhub-agent
Version: 1.0.3
Summary: Agent distant pour exécuter les déploiements DeployHub
Author: DeployHub
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: python-dotenv<2.0,>=1.0
Requires-Dist: websockets<16.0,>=12.0

# DeployHub Agent

Agent distant officiel pour DeployHub.

DeployHub Agent s'installe sur le serveur qui héberge vos applications. Il se connecte à votre instance DeployHub par WebSocket, reçoit les jobs de déploiement, exécute les commandes configurées dans vos projets, remonte les logs en temps réel, puis renvoie le statut final du déploiement.

Ce paquet contient uniquement l'agent d'exécution. Il ne contient pas le backend DeployHub, le frontend, la base de données, ni les secrets de votre plateforme.

## Installation avec pip

```bash
python3 -m pip install deployhub-agent
```

Les commandes suivantes sont installées :

```bash
deployhub-agent
deployhub-agent-run
```

## Configuration

L'agent lit sa configuration depuis `/etc/deployhub-agent/agent.env` ou depuis les variables d'environnement.

Exemple de fichier `/etc/deployhub-agent/agent.env` :

```env
AGENT_WS_URL="url_DeployHub/ws/agent"
AGENT_TOKEN="TOKEN_GENERE_DANS_DEPLOYHUB"
AGENT_WORKDIR="/var/www"
AGENT_RECONNECT_DELAY_SECONDS="5"
AGENT_HEARTBEAT_TIMEOUT_SECONDS="60"
AGENT_COMMAND_TIMEOUT_SECONDS="1200"
```

Lancez ensuite l'agent :

```bash
deployhub-agent-run
```

## Installation complète comme service systemd

Pour une installation serveur complète sur Debian/Ubuntu, utilisez un environnement virtuel dédié, puis lancez `install-service`.

Exemple minimal :

```bash
sudo apt-get update
sudo apt-get install -y python3 python3-venv ca-certificates
sudo mkdir -p /opt/deployhub-agent
sudo python3 -m venv /opt/deployhub-agent/.venv
sudo /opt/deployhub-agent/.venv/bin/pip install --upgrade pip
sudo /opt/deployhub-agent/.venv/bin/pip install deployhub-agent

sudo /opt/deployhub-agent/.venv/bin/deployhub-agent install-service \
  --server url_DeployHub/ws/agent \
  --token "TOKEN_GENERE_DANS_DEPLOYHUB" \
  --workdir /var/www
```

Cette commande crée l'utilisateur système `deployhub-agent`, les dossiers `/etc/deployhub-agent`, `/var/lib/deployhub-agent` et `/var/log/deployhub-agent`, écrit le fichier `/etc/deployhub-agent/agent.env`, installe le service systemd, puis démarre l'agent.

## Gestion du service

```bash
sudo systemctl status deployhub-agent
sudo journalctl -u deployhub-agent -f
sudo systemctl restart deployhub-agent
```

## Permissions

L'agent exécute les commandes avec l'utilisateur du service systemd. Si vous utilisez l'utilisateur `deployhub-agent`, il doit avoir les droits nécessaires sur les dossiers de vos projets.

Exemple :

```bash
sudo chown -R deployhub-agent:deployhub-agent /var/www/mon-application
```

Pour un dépôt Git privé, configurez aussi l'accès Git pour cet utilisateur, par exemple avec une clé SSH de déploiement.
