Reorganize project structure and migrate CI to Forgejo
Some checks are pending
Deploy / deploy (push) Waiting to run
Some checks are pending
Deploy / deploy (push) Waiting to run
Move all files from deploy/ to project root, replace .gitlab-ci.yml with .forgejo/workflows/deploy.yml using Gitea Actions format. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
baa36144a8
commit
b130f5c9d8
13 changed files with 71 additions and 66 deletions
140
DEPLOY.md
Normal file
140
DEPLOY.md
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
# 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": "<!DOCTYPE html><html><head><meta charset='utf-8'><style>@page { size: A4; margin: 2cm; } body { font-family: Arial; } h1 { color: #333; }</style></head><body><h1>Test PDF Paged.js</h1><p>Ceci est un test.</p></body></html>"
|
||||
}
|
||||
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":"<!DOCTYPE html><html><head><meta charset=\"utf-8\"><style>@page { size: A4; margin: 2cm; } body { font-family: Arial; } h1 { color: #333; }</style></head><body><h1>Test PDF</h1><p>Test depuis local</p></body></html>"}' --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é
|
||||
Loading…
Add table
Add a link
Reference in a new issue