
********************************************************************
*     1. Generate ssh keys - private key to gitlab (localhost)     *
********************************************************************

mkdir -p /path/to/project/.ssh_dev
ssh-keygen -t rsa -f "/path/to/project/.ssh_dev/id_rsa" -N ""
cat /path/to/project/.ssh_dev/id_rsa

*************************************************************
*     2. Copy ssh to server - public key to remote host     *
*************************************************************

can ask a password - enter XXXXXXXXXX
ssh-copy-id -i "/path/to/project/.ssh_dev/id_rsa" -P 22 "template@template.host"

********************************************************
*     3. Generate generate ssh-keys on remote host     *
********************************************************

ssh -i "/path/to/project/.ssh_dev/id_rsa" -P 22 "template@template.host" "ssh-keygen -t rsa -f ~/.ssh/id_rsa -N \"\""
ssh -i "/path/to/project/.ssh_dev/id_rsa" -P 22 "template@template.host" "cat ~/.ssh/id_rsa.pub"
Remote pub-key: rsa-ssh AAA....AAA user@host

*******************************
*     4. Gitlab variables     *
*******************************

BIN_PHP
/usr/bin/php74

BIN_COMPOSER
/usr/bin/php74 /usr/bin/composer

DEPLOY_BASE_DIR
/home/template/web/template.host/public_html

DEPLOY_SERVER
template.host

DEPLOY_USER
template

SSH_PORT
22

SSH_PUB_KEY
rsa-ssh AAA....AAA user@host

CI_ENABLED
0

SSH_PRIVATE_KEY

tip: put SSH_PUB_KEY => Gitlab.project -> Settings -> Repository -> Deploy keys

*******************************************************************
*     5. Add gitlab to confirmed (known hosts) on remote host     *
*******************************************************************

ssh-keyscan -t ecdsa-sha2-nistp256 gitlab.hexide-digital.com,188.34.141.230
ssh -i "/path/to/project/.ssh_dev/id_rsa" -P 22 "template@template.host" "cat ~/.ssh/known_hosts"
ssh -i "/path/to/project/.ssh_dev/id_rsa" -P 22 "template@template.host" 'echo "" >> ~/.ssh/known_hosts'

************************************************
*     6. Run deploy prepare from localhost     *
************************************************

php /path/to/project/vendor/bin/dep deploy:prepare dev -v -o branch=dev

**********************************************************
*     7. Putting static env variables to deploy file     *
**********************************************************


******************************************************************
*     8. Setup env file for remote server and move to server     *
******************************************************************

cp /path/to/project/.env.example/path/to/project/.env.host
file_put_contents(/path/to/project/.env.host): failed to open stream: No such file or directory
scp "/path/to/project/.env.host" -i "/path/to/project/.ssh_dev/id_rsa" -P 22 "template@template.host":"/home/template/web/template.host/public_html/shared/.env"
rm /path/to/project/.env.host

************************************
*     9. Run deploy from local     *
************************************

php /path/to/project/vendor/bin/dep deploy dev -v -o branch=dev
Rollback deploy file content

*******************************
*     10. IDEA - PhpStorm     *
*******************************

 - change mount path
    /home/template/web/template.host/public_html

    - add site url
    template.host

    - add mapping
    /current

    - connect to databases (local and remote)
    port: 22
    domain: https://template.host
    db_name: proj_db
    db_user: proj_db
    password: XXXXXXXXXX
