pipeline { agent { dockerfile true } tools { nodejs "nodejs" } environment { DOCKER_IMAGE_NAME = "weetikveel" DOCKER_REGISTRY = "veenm" // Optioneel als je Docker image naar Docker Hub wilt pushen TRUENAS_HOST = "192.168.2.31:9000" // IP-adres van TrueNAS TRUENAS_SSH_USER = "jenkins" // Gebruiker voor SSH TRUENAS_SSH_KEY = credentials('ssh-true-nas') // Voeg een SSH-sleutel toe in Jenkins credentials } stages { stage('Checkout') { steps { git 'https://git.melvanveen.nl/veenm/weetikveel.git' // Vervang door jouw repository URL } } stage('Build Angular') { steps { script { // Installeer de Angular dependencies en bouw de app sh 'npm install' sh 'npm run build --prod' } } } // stage('Build Docker Image') { // steps { // script { // // Bouw het Docker image // sh 'systemctl start docker' // sh 'docker build -t weetikveel .' // } // } // } // stage('Deploy to TrueNAS') { // steps { // script { // // SSH naar TrueNAS en stop de oude container (indien nodig) // sh """ // ssh -i $TRUENAS_SSH_KEY $TRUENAS_SSH_USER@$TRUENAS_HOST 'docker stop $DOCKER_IMAGE_NAME || true && docker rm $DOCKER_IMAGE_NAME || true' // """ // // Push het Docker image naar TrueNAS (optioneel als je een registry gebruikt) // sh 'docker tag $DOCKER_IMAGE_NAME $TRUENAS_HOST/$DOCKER_IMAGE_NAME' // sh 'docker push $TRUENAS_HOST/$DOCKER_IMAGE_NAME' // Alleen als je Docker Hub gebruikt, of een lokaal registry. // // // Deploy het Docker image naar TrueNAS via SSH // sh """ // ssh -i $TRUENAS_SSH_KEY $TRUENAS_SSH_USER@$TRUENAS_HOST ' // docker pull $TRUENAS_HOST/$DOCKER_IMAGE_NAME && // docker run -d -p 80:80 --name $DOCKER_IMAGE_NAME $TRUENAS_HOST/$DOCKER_IMAGE_NAME // ' // """ // } // } // } } post { success { echo "Deployment succesvol!" } failure { echo "Er is een fout opgetreden tijdens de deployment." } } }