> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plato.ae/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Installez et exécutez le pilote d'imprimante PC.

# Installation

L'artefact de production est `drivers/pc-printer/plato-printer.zip`. Il contient l'exécutable, la configuration par défaut, les actifs/certificats Caddy et les binaires Redis.

## Installation de production

1. Copiez `plato-printer.zip` sur la machine Windows pouvant accéder aux imprimantes.
2. Extrayez le zip dans un dossier stable, par exemple `C:\PlatoPrinter`.
3. Modifiez `config.json`.
4. Exécutez `plato-printer.exe`.
5. Autorisez l’accès au pare-feu Windows pour le port HTTP configuré.
6. Confirmez que le service est joignable :

```sh theme={null}
curl http://localhost:8080/health
```

Réponse attendue :

```json theme={null}
{
  "ok": true,
  "version": 66,
  "uptime": 12.345
}
```

## Liste de contrôle d'installation réseau

* La machine pilote peut atteindre chaque adresse IP et port d'imprimante.
* Les navigateurs POS peuvent accéder à la machine pilote.
* Le port `8080` est ouvert pour HTTP, sauf modification dans `config.json`.
* Le port `443` est ouvert si HTTPS est activé.
* Les adresses IP des imprimantes sont statiques ou réservées dans DHCP.
* Les imprimantes thermiques acceptent les ESC/POS bruts sur TCP.

## Liste de contrôle d'installation de HTTPS

Lorsque HTTPS est activé :

1. Gardez `features.httpsEnabled` et `caddy.enabled` réglés sur `true`.
2. Assurez-vous que `assets/certs/ca.crt`, `server.crt` et `server.key` existent.
3. Pointez `caddy.domain` vers la machine du pilote, généralement via DNS ou une entrée d'hôtes.
4. Installez le certificat CA à partir de :

```txt theme={null}
http://<driver-ip>:8080/ca.crt
```

5. Utilisez le pilote HTTPS URL depuis la console, généralement :

```txt theme={null}
https://plato-printer.local
```

## Lancement automatique

Au démarrage, l'exécutable enregistre le lancement automatique en utilisant le nom de l'application `Plato PC Printer`. Le chemin de l'exécutable est `process.execPath` et le service est configuré pour démarrer caché.

Si le lancement automatique échoue, le pilote enregistre l'échec et continue de s'exécuter.

## Installation de développement

Depuis la racine du référentiel :

```sh theme={null}
pnpm install
pnpm --filter @plato/pc-printer build
pnpm --filter @plato/pc-printer start
```

Le serveur de développement lit `config.json` à partir de `drivers/pc-printer` lorsqu'il est démarré dans ce dossier.

## Bilan de santé local

```sh theme={null}
curl http://localhost:8080/health
curl http://localhost:8080/queue-status
```

Si HTTPS est activé et configuré :

```sh theme={null}
curl https://plato-printer.local/health
```
