Document OVH FTP path handling
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
FTP_HOST=ftp.cluster129.hosting.ovh.net
|
||||
FTP_USER=ecobsoleiq
|
||||
FTP_PORT=21
|
||||
# OVH FTP is chrooted: use /www here.
|
||||
# Do not reuse the absolute SFTP path /home/ecobsoleiq/www in FTP mode.
|
||||
FTP_REMOTE_DIR=/www
|
||||
FTP_PASS=your-ftp-password
|
||||
PUBLIC_SITE_URL_PROD=https://www.lelectronrare.fr/
|
||||
|
||||
@@ -74,7 +74,8 @@ Utilisateur: `ecobsoleiq`
|
||||
2. Préparer les identifiants (hors repo):
|
||||
- Copier `.env.ftp.example` vers `.env.ftp`
|
||||
- Remplacer `FTP_PASS=...` par le vrai mot de passe
|
||||
- Garder `FTP_REMOTE_DIR=/www` (recommandé OVH mutualisé)
|
||||
- Garder `FTP_REMOTE_DIR=/www` en FTP
|
||||
- Ne pas réutiliser ici le chemin absolu SFTP ` /home/ecobsoleiq/www `
|
||||
- `source .env.ftp` (ou exporter `FTP_PASS` / `FTP_HOST` en variable d'env)
|
||||
3. Déploiement via script:
|
||||
- `FTP_PASS='<ton_mot_de_passe>' FTP_REMOTE_DIR='/www' npm run deploy:ftp`
|
||||
@@ -89,7 +90,9 @@ Utilisateur: `ecobsoleiq`
|
||||
Notes:
|
||||
- Le script utilise `lftp`; installe-le si absent: `brew install lftp` ou `apt-get install lftp`.
|
||||
- Le script refuse de synchroniser vers `/` par sécurité (utiliser `/www`).
|
||||
- Si ton host pointe vers un sous-répertoire, ajuste `FTP_REMOTE_DIR` (ex: `/www/`).
|
||||
- Sur cet hébergement OVH, le chroot FTP fait que le docroot public se référence en FTP comme `/www`, alors qu'en SFTP il apparaît comme `/home/ecobsoleiq/www`.
|
||||
- Mélanger les deux crée un faux arbre du type `/home/ecobsoleiq/home/ecobsoleiq/www/...`, hors docroot web.
|
||||
- Si ton host pointe vers un sous-répertoire, ajuste `FTP_REMOTE_DIR` à partir de la racine FTP (ex: `/www/preview`).
|
||||
- Aucune donnée sensible n’est hardcodée dans le script (mot de passe via `FTP_PASS` uniquement).
|
||||
|
||||
Exemple 1-liner (via fichier local `.env.ftp`):
|
||||
|
||||
@@ -14,6 +14,18 @@ Le runner :
|
||||
- choisit la cible `preview` ou `production`
|
||||
- synchronise `dist/` via `lftp`
|
||||
|
||||
## Point critique OVH
|
||||
|
||||
Sur cet hebergement, le chemin valide depend du protocole :
|
||||
- FTP : `/www`
|
||||
- SFTP : `/home/ecobsoleiq/www`
|
||||
|
||||
Il ne faut pas reutiliser le chemin absolu SFTP dans le flux FTP.
|
||||
Sinon OVH cree un arbre imbrique du type :
|
||||
- `/home/ecobsoleiq/home/ecobsoleiq/www/...`
|
||||
|
||||
qui n'est pas le docroot public.
|
||||
|
||||
## Secrets GitHub requis
|
||||
|
||||
- `OVH_FTP_HOST`
|
||||
|
||||
@@ -49,6 +49,13 @@ if [[ "$FTP_REMOTE_DIR" != /* ]]; then
|
||||
FTP_REMOTE_DIR="/$FTP_REMOTE_DIR"
|
||||
fi
|
||||
|
||||
if [[ "$FTP_REMOTE_DIR" == /home/* ]]; then
|
||||
echo "Refusing FTP sync to an absolute server filesystem path: '$FTP_REMOTE_DIR'."
|
||||
echo "On OVH FTP, use the chrooted path instead: '/www' or '/www/<subdir>'."
|
||||
echo "Example: SFTP uses '/home/ecobsoleiq/www', but FTP must use '/www'."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$FTP_REMOTE_DIR" == "/" && "${ALLOW_FTP_ROOT_SYNC:-0}" != "1" ]]; then
|
||||
echo "Refusing FTP sync to '/'."
|
||||
echo "Set FTP_REMOTE_DIR='/www' (recommended for OVH web hosting)."
|
||||
|
||||
Reference in New Issue
Block a user