← Semua artikel
Tips & Trik08 Nov 2026ariel4 menit baca

GitHub Actions: Deployment Aplikasi ke VPS Linux

Panduan merancang pipeline GitHub Actions untuk pengujian dan deployment ke VPS Linux, termasuk pengelolaan secret, validasi, dan rollback.
Alur Kerja CI/CD GitHub Actions dan Deployment Linux

Proses rilis aplikasi manual menggunakan FTP atau login SSH satu per satu sangat rentan terhadap kesalahan manusia (human error). Melalui integrasi CI/CD (Continuous Integration / Continuous Deployment) menggunakan GitHub Actions, perubahan pada repositori dapat memicu pemeriksaan, build, dan deployment sesuai workflow yang dirancang. Setiap tahap tetap perlu diverifikasi sebelum diterapkan ke server produksi.

Alur Kerja CI/CD GitHub Actions dan Deployment Linux
Ilustrasi: Otomasi alur rilis kode memangkas waktu deployment dari hitungan jam menjadi hitungan detik dengan risiko kesalahan manual yang lebih kecil.

Praktik dari nol: hal yang wajib disiapkan

Contoh CI/CD harus memiliki **repository dengan folder tests dan tes yang benar-benar menjalankan assertion**. Baris python3 -m unittest discover tests tidak membuktikan kualitas bila tidak ada tes atau dependensi yang diperlukan. Workflow contoh ini dipicu manual untuk lab awal. APP_PATH adalah placeholder yang harus diganti; SSH key deploy perlu dipasang di authorized_keys user dengan hak terbatas, IP/port sesuai dan secrets diset pada repo GitHub. Sebelum deploy, catat commit, lakukan backup volume dan siapkan rollback. Setelah test dan staging berjalan, barulah pertimbangkan trigger otomatis main branch.

Persiapan dan hasil yang harus dibuktikan: GitHub Actions dan VPS

Siapkan repository uji, akses SSH dengan key deployment yang terpisah, runner yang sesuai, serta kemampuan rollback di VPS. Pahami izin secrets dan environments sebelum memicu deployment.

Preflight

ssh -V
git --version
# Pada VPS:
systemctl --failed

Verifikasi

Workflow harus menunjukkan run sukses, artefak deploy yang benar, status aplikasi setelah deploy, dan rollback yang bisa dilakukan. Hindari menilai keberhasilan hanya dari badge hijau.

Risiko

Batasi private key deployment ke user dan host target yang diperlukan; jangan menampilkan isi secret di log.

Checklist ini bersifat panduan uji, bukan screenshot atau bukti pelaksanaan pada lingkungan produksi.

Catatan penting saat mempraktikkan panduan ini

Contoh GitHub Actions menjalankan python3 -m unittest discover tests. Perintah ini hanya valid jika repo benar-benar menyertakan direktori dan modul test yang sesuai. echo bukan bukti pengujian lulus. Uji command yang sama pada checkout repository lokal, tambahkan job health check dan rollback yang konkret, serta pastikan secret deploy key diberikan hanya ke workflow dan environment yang tepat. Untuk keamanan supply chain, tinjau versi action pihak ketiga dan pertimbangkan pin ke commit SHA yang diverifikasi.

Verifikasi: simpan output perintah dan dokumentasi pengujian pada perangkat yang memang boleh dikelola. Ilustrasi tidak dianggap bukti instalasi berhasil.

1. Pembuatan SSH Key Khusus Deployment

Buat pasangan kunci SSH Ed25519 khusus yang hanya memiliki hak terbatas untuk proses deployment pada server tujuan:

ssh-keygen -t ed25519 -C "github-actions-deploy" -f ~/.ssh/github_actions_deploy

Tambahkan isi github_actions_deploy.pub ke dalam ~/.ssh/authorized_keys di server VPS Anda. Kemudian simpan isi kunci privat ke dalam GitHub Repository Settings > Secrets and variables > Actions dengan nama SSH_PRIVATE_KEY.

2. Membuat Workflow File (.github/workflows/deploy.yml)

Tambahkan file alur kerja berikut di repositori Anda:

name: Production Deployment Pipeline

on:
  workflow_dispatch: # Aktivasi manual lebih aman untuk praktik awal; push otomatis setelah review

jobs:
  test-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4

      - name: Run Automated Tests
        run: |
          echo "Menjalankan unit testing..."
          python3 -m unittest discover tests

      - name: Deploy to Remote Linux Server
        uses: appleboy/ssh-action@v1.0.3
        with:
          host: ${{ secrets.SERVER_HOST }}
          username: ${{ secrets.SERVER_USER }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          port: ${{ secrets.SERVER_PORT }}
          script: |
            cd /srv/APP_PATH # Ganti path dengan repo aplikasi uji yang benar
            git pull origin main
            docker compose up -d --build --remove-orphans

Langkah Verifikasi Implementasi

Kesimpulan & Rekomendasi Praktik Terbaik

Dengan pipeline CI/CD yang teruji, siklus pengembangan perangkat lunak menjadi jauh lebih lincah (agile), membantu mempercepat proses rilis dan mengurangi pekerjaan manual. Keandalan deployment tetap perlu dibuktikan lewat pengujian workflow, health check, pemantauan, dan prosedur rollback.

Rujukan & bacaan lanjutan: cek dokumentasi GitHub Actions, lalu pelajari dasar Docker Compose dan peta belajar Edelweis. Periksa versi dan lakukan pengujian sendiri sebelum menerapkan konfigurasi.

Catatan editorial: Diagram bersifat konseptual kecuali diberi label sebagai hasil uji. Verifikasi konfigurasi di perangkat lu sendiri sebelum dipakai pada sistem produksi.

END OF NOTE.Jelajahi artikel lain ↗

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *