# Provisionnement Projets

Application web autonome pour créer des environnements de développement :
conteneur PHP (Portainer), base MySQL, URL publique (Nginx Proxy Manager), accès SSH.

## Accès

- URL : `/projets/public/` (ou racine `/` si DocumentRoot = `/var/www/html`)
- Identifiants par défaut : `admin` / `Lap1nrjK` (changez le hash dans `config.php`)

## Prérequis

1. **Image Docker PHP** — construite automatiquement sur le NUC via Portainer (`projets-php-dev:latest` : Apache, PHP, SSH, nano, htop). Build manuel optionnel :

```bash
docker build -t projets-php-dev:latest /var/www/html/projets/docker/php-dev
```

2. **Dossier workspaces sur l'hôte Docker** (NUC) :

```bash
mkdir -p /home/mike/docker_config/projets/workspaces
```

3. **Réseau Docker** : le réseau `llm_default` (ou celui configuré) doit exister.

4. **Portainer** : token API et endpoint_id dans `config.php`.

5. **NPM** : identifiants dans `config.php` pour les sous-domaines.

## Configuration

Copiez `config.example.php` vers `config.php` et adaptez les valeurs.

Variables d'environnement supportées : `PROJETS_USER`, `PROJETS_PASSWORD_HASH`, `PORTAINER_*`, `NPM_*`, `PROJETS_MYSQL_*`.

## Fonctionnalités

| Option | Description |
|--------|-------------|
| Conteneur PHP | Apache 8.2, PDO MySQL, nano, htop, SSH |
| Base de données | Création MySQL sur 192.168.1.254 |
| URL | Sous-domaine `*.borninthe80s.fr` via NPM + Let's Encrypt |
| Accès SSH | Port 22 publié, mot de passe root configurable (défaut Lap1nrjK) |

## Structure

```
projets/
├── config.php
├── includes/          # Auth, Portainer, NPM, MySQL, orchestration
├── docker/php-dev/    # Image PHP + SSH
├── data/projects/     # Métadonnées JSON
├── data/workspaces/   # Fichiers locaux (montés sur l'hôte Docker)
└── public/            # Interface web
```

Cette application remplace l'usage direct des répertoires `PORTAINER DIY` et `llm` pour le provisionnement d'environnements.
