https://medium.com/@stadja/tout-sur-comment-se-connecter-%C3%A0-un-serveur-ssh-sans-mot-de-passe-b2cc5c0a86e1
https://medium.com/@stadja/comment-d%C3%A9ployer-sur-un-serveur-distant-en-une-commande-git-pas-%C3%A0-pas-bdcf5aaf172d
https://docs.ovh.com/fr/hosting/24-days/day07/
# Deployer un projet avec git sur un serveur distant
## Se connecter en SSH sans mot de passe
- Générer une clé SSH sur la machine si ce n’est pas déjà fait `ssh-keygen -t rsa`
- `ssh-copy-id DISTANT-USER@SERVER_HOST`
- Se connecter en ssh sans mot de passe en faisant `ssh DISTANT-USER@SERVER_HOST`
## Créer le dépot de déployement (ex:/home/DISTANT-USER/deploy)
- `mkdir deploy`
- `cd deploy`
- `git init --bare PROJECT-NAME.git`
## Mettre en place le hook post-receive
- `cd BARE-REPOSITORY-FOLDER/PROJECT-NAME.git/hooks`
- `nano post-receive`
- Ajouter au fichier le code suivant
```
#!/bin/bash
# Hook post-receive
# Force source bash profile to update PATH
source ~/.bash_profile
source ~/.bashrc
GIT_REPO=$HOME/deploy/peps-website-2019.git
DEPLOY_DIR=$HOME/website-2019
# Go to deploy directory to load ovhconfig
cd $DEPLOY_DIR
ovhConfig
cd -
while read prevsha1 newsha1 ref
do
if [[ $ref =~ .*/master$ ]];
then
echo "Deploying master branch to production..."
git --work-tree=$DEPLOY_DIR --git-dir=$GIT_REPO checkout -f
cd $DEPLOY_DIR
else
echo "Ref: $ref isn't master. Nothing to do on production"
fi
done
```
- Modifier les droits `chmod 755 post-receive`
## Ajouter le dépot externe sur la machine de développement
- Sur notre machine de développement, se rendre au dossier du projet
- `git remote add REMOTE-SERVER DISTANT-USER@SERVER_HOST:BARE-REPOSITORY-FOLDER/PROJECT-NAME.git`
- Si pas de message d’erreur, c’est ok !
## Envoyer le code sur le serveur du repo sur le serveur
- `git push REMOTE-SERVER BRANCH-TO-DEPLOY`
## Options
### Installer composer sur un mutualisé OVH
`mkdir -p $HOME/bin`
`wget -nv https://getcomposer.org/composer.phar -O bin/composer`
`chmod +x $HOME/bin/composer`
`php $HOME/bin/composer.phar require anhskohbo/no-captcha`