Ini adalah konfigurasi CI/CD untuk aplikasi frontend React dan backend Elysia.js menggunakan GitHub Actions dengan berbagai opsi deployment.
Workflow ini akan men-deploy aplikasi ke GitHub Pages setiap kali ada push ke branch main yang mengubah file di luar direktori backend/.
Langkah-langkah yang dilakukan:
- Checkout kode
- Setup Node.js 18
- Install dependencies dengan
npm ci - Build aplikasi dengan
npm run build - Deploy hasil build ke branch
gh-pages
Workflow ini akan men-deploy aplikasi ke Netlify setiap kali ada push ke branch main yang mengubah file di luar direktori backend/.
Langkah-langkah yang dilakukan:
- Checkout kode
- Setup Node.js 18
- Install dependencies dengan
npm ci - Build aplikasi dengan
npm run build - Deploy hasil build ke Netlify
Aplikasi dikonfigurasi untuk deployment ke Vercel menggunakan file vercel.json. Vercel akan otomatis mendeteksi perubahan di repository dan men-deploy aplikasi.
Konfigurasi utama:
- Build output directory:
dist - Routing untuk API dan SPA
- Environment variables yang diperlukan
Workflow ini akan membangun dan men-push Docker image ke DockerHub setiap kali ada push ke branch main yang mengubah file di luar direktori backend/.
Langkah-langkah yang dilakukan:
- Checkout kode
- Setup Docker Buildx
- Login ke DockerHub
- Build dan push Docker image dengan tag latest dan SHA commit
Workflow ini akan men-deploy aplikasi ke VPS sebagai static site di direktori /var/www/html/ setiap kali ada push ke branch main.
Langkah-langkah yang dilakukan:
- Checkout kode
- Setup Node.js 18
- Install dependencies dan build
- Upload hasil build ke VPS menggunakan SCP
- Menjalankan perintah deployment di VPS melalui SSH
Alternatif manual menggunakan script deploy-vps.sh.
Workflow ini akan men-deploy backend ke VPS menggunakan Docker setiap kali ada push ke branch main yang mengubah file di direktori backend/.
Langkah-langkah yang dilakukan:
- Checkout kode
- Build dan push Docker image ke DockerHub
- Deploy ke VPS menggunakan SSH dan docker-compose
Tidak diperlukan konfigurasi tambahan selain mengaktifkan GitHub Pages di repository settings.
Tambahkan secrets berikut di repository GitHub:
NETLIFY_AUTH_TOKEN: Token autentikasi NetlifyNETLIFY_SITE_ID: ID situs Netlify
Hubungkan repository dengan Vercel dan tambahkan environment variable berikut:
VITE_API_URL: URL API backend
Tambahkan secrets berikut di repository GitHub:
DOCKERHUB_USERNAME: Username DockerHubDOCKERHUB_TOKEN: Token autentikasi DockerHub
Tambahkan secrets berikut di repository GitHub:
VPS_HOST: Hostname atau IP VPSVPS_USERNAME: Username untuk SSH ke VPSVPS_SSH_KEY: Private key untuk SSH ke VPSVPS_PORT: Port SSH (biasanya 22)
- Push kode ke repository GitHub
- GitHub Actions akan otomatis menjalankan workflow yang sesuai
- Cek tab "Actions" di repository GitHub untuk melihat status workflow
Untuk menjalankan aplikasi frontend menggunakan Docker secara lokal:
# Build dan jalankan dengan docker-compose
docker-compose up --build
# Atau build dan jalankan hanya frontend
docker build -t frontend .
docker run -p 80:80 frontendUntuk menjalankan backend menggunakan Docker secara lokal:
# Masuk ke direktori backend
cd backend
# Build dan jalankan dengan docker-compose
docker-compose up --build
# Atau build dan jalankan hanya backend
docker build -t backend .
docker run -p 3000:3000 backend- Edit file
deploy-vps.shdan sesuaikan variabel konfigurasi - Berikan izin eksekusi:
chmod +x deploy-vps.sh - Jalankan script:
./deploy-vps.sh