# Déploiement du service Web2Print ## 1. Transférer les fichiers sur le serveur ```bash # Depuis votre machine locale, transférer le dossier deploy vers le serveur scp -r -i ~/.ssh/id_ed25519 deploy/* debian@83.228.210.201:/tmp/web2print-deploy/ # OU utiliser rsync (plus rapide) rsync -avz -e "ssh -i ~/.ssh/id_ed25519" deploy/ debian@83.228.210.201:/tmp/web2print-deploy/ ``` ## 2. Sur le serveur, copier les fichiers vers /var/www/web2print ```bash # Se connecter au serveur ssh -i ~/.ssh/id_ed25519 debian@83.228.210.201 # Copier les fichiers sudo cp -r /tmp/web2print-deploy/config /var/www/web2print/ sudo cp -r /tmp/web2print-deploy/src /var/www/web2print/ sudo cp -r /tmp/web2print-deploy/public /var/www/web2print/ # Définir les bonnes permissions sudo chown -R www-data:www-data /var/www/web2print sudo chmod -R 755 /var/www/web2print sudo chmod -R 775 /var/www/web2print/logs sudo chmod -R 775 /var/www/web2print/tmp # Sécuriser le fichier de configuration sudo chmod 640 /var/www/web2print/config/config.php ``` ## 3. Générer une clé API ```bash # Générer une clé sécurisée openssl rand -hex 32 # Copier la clé générée et éditer le fichier de configuration sudo nano /var/www/web2print/config/config.php # Remplacer 'REMPLACER_PAR_VOTRE_CLE_API_GENEREE' par la clé générée # Sauvegarder (Ctrl+O) et quitter (Ctrl+X) ``` ## 4. Vérifier le chemin de pagedjs-cli ```bash # Vérifier le chemin which pagedjs-cli # Si différent de /usr/bin/pagedjs-cli, mettre à jour dans config.php sudo nano /var/www/web2print/config/config.php # Modifier la ligne 'pagedjs_bin' avec le bon chemin ``` ## 5. Configurer la variable d'environnement pour Puppeteer ```bash # Éditer le fichier envvars d'Apache sudo nano /etc/apache2/envvars # Ajouter à la fin : export PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium # Sauvegarder et redémarrer Apache sudo systemctl restart apache2 ``` ## 6. Tester le service ### Test depuis le serveur ```bash # Test simple (remplacer YOUR_API_KEY par votre clé) cat > /tmp/test-request.json << 'EOF' { "html": "

Test PDF Paged.js

Ceci est un test.

" } EOF curl -X POST http://localhost/generate \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d @/tmp/test-request.json \ --output /tmp/result.pdf # Vérifier le PDF file /tmp/result.pdf ls -lh /tmp/result.pdf ``` ### Test depuis votre machine locale ```bash # Test en ligne de commande (tout sur une seule ligne, remplacer YOUR_API_KEY par votre clé) curl -X POST http://web2print.studio-variable.com/generate -H "Content-Type: application/json" -H "X-API-Key: 25377ab6e2153b159d1d5fa22501228810b6aec9d63346bd0614045dc167061c" -d '{"html":"

Test PDF

Test depuis local

"}' --output test-result.pdf # Vérifier le PDF reçu file test-result.pdf open test-result.pdf ``` ## 7. Nettoyer ```bash # Supprimer le dossier temporaire rm -rf /tmp/web2print-deploy ``` ## Structure finale sur le serveur ``` /var/www/web2print/ ├── config/ │ └── config.php ├── src/ │ ├── Controllers/ │ │ └── GenerateController.php │ ├── Services/ │ │ └── PdfGenerator.php │ └── Middleware/ │ └── AuthMiddleware.php ├── public/ │ ├── index.php │ └── .htaccess ├── logs/ └── tmp/ ``` ## Troubleshooting Si l'API ne fonctionne pas : 1. Vérifier les logs Apache : `sudo tail -f /var/www/web2print/logs/apache-error.log` 2. Vérifier les logs applicatifs : `sudo tail -f /var/www/web2print/logs/app.log` 3. Vérifier les permissions : `ls -la /var/www/web2print` 4. Tester pagedjs-cli manuellement avec la variable d'environnement 5. Vérifier que le VirtualHost Apache est bien configuré