GitLab CI/CD ile DigitalOcean’da Sorunsuz Nuxt 2 Uygulama Dağıtımı
Merhaba! Fatih Soysal burada. Bu makalede, Nuxt.js 2 uygulamalarınızı GitLab CI/CD ve DigitalOcean kullanarak otomatik ve sorunsuz bir şekilde nasıl dağıtabileceğinizi adım adım açıklayacağım. Bu süreç, geliştirme sürecinizi hızlandıracak ve manuel işlemlerle uğraşmaktan kurtaracaktır. Başlayalım!
Gereksinimler
Öncelikle, aşağıdaki araç ve hizmetlere ihtiyacınız olacak:
- Bir DigitalOcean hesabı
- Bir GitLab hesabı
- Kurulu bir Nuxt.js 2 projesi
- Node.js ve npm (veya yarn)
- SSH erişimi için bir SSH istemcisi (Putty, Terminal vs.)
DigitalOcean’da Sunucu Kurulumu
İlk adım, DigitalOcean’da yeni bir sunucu oluşturmaktır. Ubuntu sunucusu seçmenizi öneririm. Sunucu oluşturulduktan sonra, SSH ile sunucuya bağlanın. Ardından, Node.js ve npm’yi (veya yarn’ı) yükleyin. Bunun için aşağıdaki komutları kullanabilirsiniz:
sudo apt update
sudo apt install nodejs npm
Node.js ve npm’nin başarılı bir şekilde kurulduğunu doğrulamak için aşağıdaki komutları çalıştırın:
node -v
npm -v
GitLab CI/CD Yapılandırması
Şimdi, GitLab projenize bir .gitlab-ci.yml dosyası eklememiz gerekiyor. Bu dosya, dağıtım sürecinizi tanımlayacaktır. Aşağıdaki örnek .gitlab-ci.yml dosyasını kullanabilirsiniz. Bu dosya, uygulamanızı derler, oluşturur ve DigitalOcean sunucunuza dağıtır. Bu örnekte, deploy aşamasında SSH kullanarak sunucuya bağlanıyoruz ve uygulamayı orada çalıştırıyoruz. Bu önemli bir detaydır, güvenliğiniz için SSH anahtarlarınızı doğru şekilde yönetmeniz gerekmektedir.
stages:
- build
- deploy
build:
stage: build
image: node:latest
script:
- npm install
- npm run build
deploy:
stage: deploy
image: ubuntu:latest
variables:
SSH_PRIVATE_KEY: $PRIVATE_KEY # GitLab değişkenleri aracılığıyla güvenli bir şekilde saklayın
SSH_HOST: your_server_ip
SSH_USER: your_username
DEPLOY_PATH: /var/www/your-nuxt-app # Dağıtım yolunuzu ayarlayın
before_script:
- apt-get update && apt-get install -y openssh-client
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- ssh-keyscan $SSH_HOST >> ~/.ssh/known_hosts
script:
- ssh $SSH_USER@$SSH_HOST "mkdir -p $DEPLOY_PATH"
- scp -r ./dist/ $SSH_USER@$SSH_HOST:$DEPLOY_PATH
- ssh $SSH_USER@$SSH_HOST "cd $DEPLOY_PATH && npm install" # Eğer gerekirse sunucuda npm install çalıştırın.
- ssh $SSH_USER@$SSH_HOST "pm2 start npm --name \"your-nuxt-app\" -- start" # pm2 kullanarak uygulamayı başlatın
Yukarıdaki kodu kopyalayıp yapıştırdıktan sonra, your_server_ip, your_username, PRIVATE_KEY ve DEPLOY_PATH değişkenlerini kendi değerlerinizle değiştirin. Özel anahtarınızı (PRIVATE_KEY) GitLab değişkenleri bölümünde güvenli bir şekilde saklamanız önemlidir. Bu, güvenlik açıklarından kaçınmanıza yardımcı olacaktır.
Uygulamayı Dağıtma
.gitlab-ci.yml dosyasını projenize ekledikten sonra, GitLab, kodunuzu her ittiğinizde otomatik olarak dağıtım işlemini başlatacaktır. Bu, geliştirme sürecinizi önemli ölçüde kolaylaştıracaktır. Ayrıca, pm2 gibi bir işlem yöneticisi kullanarak uygulamanızın sunucuda sürekli çalışmasını sağlayabilirsiniz.
Daha fazla bilgi ve ayrıntılı bir anlatım için fatihsoysal.com adresini ziyaret edebilirsiniz. Bu makalede verilen adımları izleyerek, Nuxt.js 2 uygulamalarınızı hızlı ve güvenli bir şekilde dağıtabilirsiniz. Unutmayın, güvenlik önemlidir, SSH anahtarlarınızı ve sunucu bilgilerinizi korumayı ihmal etmeyin!
Başka sorularınız varsa, bana ulaşmaktan çekinmeyin. Ayrıca, Nuxt.js ve DevOps konularında daha fazla bilgi edinmek için Nuxt.js resmi web sitesini ve GitLab CI/CD dokümanlarını inceleyebilirsiniz.
#Etiketler
Nuxt 2, GitLab CI/CD, DigitalOcean, Dağıtım, Deployment, Otomasyon, Rehber, Tutorial, SSH, PM2, DevOps, Node.js, npm