diff --git a/Jenkinsfile b/Jenkinsfile index 8c77dae..10db185 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,10 +6,12 @@ pipeline { } environment { + SSH_TARGET = "57.129.77.192" + SSH_PORT = "34567" + SSH_USER = "lucas" + GITEA_REPO_PATH = "lucas/vaultwarden" GITEA_API_URL = "https://gitea.lucasroyer.fr/api/v1" - DOCKER_HOST = "unix:///run/user/1001/docker.sock" - BASE_DIR = "/home/lucas/services/vaultwarden/${params.USER_NAME}" } @@ -21,26 +23,42 @@ pipeline { } stage('Deploy') { steps { - withCredentials([file(credentialsId: "vaultwarden-app-env-${params.USER_NAME}", variable: 'SECRET_ENV')]) { + withCredentials([ + sshUserPrivateKey(credentialsId: 'ssh-lucas-vps1', keyFileVariable: 'SSH_KEY'), + file(credentialsId: "vaultwarden-app-env-${params.USER_NAME}", variable: 'SECRET_ENV') + ]) { script { echo "Deploying Vaultwarden for ${params.USER_NAME}..." - sh "mkdir -p ${env.BASE_DIR}/vw-data" + // Prepare folder + sh ''' + ssh -4 -p $SSH_PORT -i $SSH_KEY -o StrictHostKeyChecking=no $SSH_USER@$SSH_TARGET \ + "mkdir -p $BASE_DIR/vw-data" + ''' - sh "cp docker-compose.yml ${env.BASE_DIR}/docker-compose.yml" - sh "cp \$SECRET_ENV ${env.BASE_DIR}/app.env" + // Send files + sh ''' + scp -4 -P $SSH_PORT -i $SSH_KEY -o StrictHostKeyChecking=no \ + docker-compose.yml $SSH_USER@$SSH_TARGET:$BASE_DIR/docker-compose.yml + ''' - dir("${env.BASE_DIR}") { - sh """ - docker compose -p vw-${params.USER_NAME} up -d --force-recreate --remove-orphans - """ - } + sh ''' + scp -4 -P $SSH_PORT -i $SSH_KEY -o StrictHostKeyChecking=no \ + $SECRET_ENV $SSH_USER@$SSH_TARGET:$BASE_DIR/app.env + ''' + + // Run + sh """ + ssh -4 -p \$SSH_PORT -i \$SSH_KEY -o StrictHostKeyChecking=no \$SSH_USER@\$SSH_TARGET \ + "cd \$BASE_DIR && USER_NAME=${params.USER_NAME} docker compose -p vw-${params.USER_NAME} up -d --force-recreate --remove-orphans" + """ } } } } } + post { always { script { diff --git a/docker-compose.yml b/docker-compose.yml index aaf6b5d..5f4b9b4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ services: vaultwarden: image: vaultwarden/server:1.35.2-alpine - container_name: vaultwarden + container_name: vaultwarden-${USER_NAME} restart: always volumes: - ./vw-data:/data