Otomatisasi Backup Kode ke GitHub Private di Alpine Linux Saat Deploy

Daftar Isi

Halo Sobat, kali ini saya mau berbagi sedikit catatan teknis dan eksperimen seputar alur kerja (workflow) pengembangan web serta pengeloaan server Linux.Saat kita membangun aplikasi—misalnya menggunakan Rust—dan rutin melakukan deploy ke server produksi, kadang muncul rasa was-was: “Bagaimana kalau kode lokal saya terhapus?” atau “Bagaimana caranya agar setiap kompilasi sukses, kode langsung tersimpan rapi tanpa perlu di-push manual?”

Solusi terbaiknya adalah menggunakan GitHub Private Repository. Tenang saja, fitur privat ini 100% gratis tanpa batasan repositori, jadi kode program Sobat tidak akan pernah bisa diintip oleh publik. Di artikel ini, saya bagikan panduan praktis dari daftar GitHub, konfigurasi di Alpine Linux, sampai integrasinya ke skrip deployment.


1. Menyiapkan Repositori Private di GitHub

Langkah awal diawali dari platform GitHub:

  • Buka github.com dan buat akun jika belum punya.
  • Setelah masuk, klik ikon + di pojok kanan atas lalu pilih New repository.
  • Isi nama proyek Sobat, lalu pastikan memilih opsi Private. Pilihan ini penting agar kode hanya bisa diakses oleh Sobat sendiri.
  • Klik Create repository.

2. Menginstal dan Mengatur Git di Alpine Linux

Alpine Linux terkenal sangat ringan dan efisien untuk server maupun kontainer. Kita hanya perlu menginstal beberapa paket dasar menggunakan apk.

Jalankan perintah ini di terminal Alpine Linux Sobat:

apk update
apk add git openssh-client

Setelah itu, daftarkan identitas pengembang agar setiap perubahan kode tercatat atas nama Sobat:

git config --global user.name "Nama Anda"
git config --global user.email "email-github-anda@example.com"

3. Memasang SSH Key agar Otomatisasi Tanpa Password

Agar skrip otomatis bisa melakukan git push tanpa meminta kata sandi setiap kali kompilasi berhasil, kita akan menggunakan kunci SSH.

Buat kunci SSH baru di terminal Alpine:

ssh-keygen -t ed25519 -C "email-github-anda@example.com"

Tips: Tekan Enter pada seluruh konfirmasi (kosongkan passphrase) agar skrip dapat berjalan di latar belakang tanpa terhenti meminta masukan manual.

Tampilkan dan salin kunci publik yang sudah dibuat:

cat ~/.ssh/id_ed25519.pub

Tempelkan teks tersebut ke akun GitHub Sobat: masuk ke menu Settings > SSH and GPG keys > New SSH key, lalu simpan.

Uji koneksinya dengan perintah:

ssh -T git@github.com

4. Menghubungkan Folder Proyek ke Repositori

Masuk ke folder proyek yang sedang dikembangkan (misalnya folder proyek Rust), lalu jalankan perintah inisialisasi:

cd /home/ripanel/rustwp
git init
git branch -M main
git remote add origin git@github.com:USERNAME_GITHUB/NAMA_REPO.git

5. Integrasi ke Skrip Deploy Bash

Karena skrip menggunakan perintah set -e di baris awal, skrip akan langsung berhenti jika proses kompilasi gagal. Artinya, perintah Git di bawahnya hanya akan dieksekusi saat kompilasi 100% berhasil.

Berikut contoh skrip lengkap yang sudah kita padukan:

#!/bin/bash

# Hentikan skrip jika terjadi error
set -e

echo "Memulai proses kompilasi Rust..."
CARGO_TARGET_DIR=/home/ripanel/rustwp-tmp/target cargo build --release

echo "Kompilasi berhasil! Mengunggah source code ke GitHub Private..."
git add .
git commit -m "Auto-deploy: $(date +'%Y-%m-%d %H:%M:%S')" || true
git push origin main

echo "Mengirim biner dan file statis ke server produksi..."
rsync -av -e ssh /home/ripanel/rustwp-tmp/target/release/rustwp root@104.251.223.123:/home/ripanel/
rsync -av -e ssh /home/ripanel/rustwp/static/ root@104.251.223.123:/home/ripanel/myweb/s5.linuxfun.com/static/
rsync -av -e ssh /home/ripanel/myweb/s6.linuxfun.com/ root@104.251.223.123:/home/ripanel/myweb/s6.linuxfun.com/

echo "Mengeksekusi biner di server produksi..."
ssh root@104.251.223.123 << 'EOF'
    chmod +x /home/ripanel/rustwp
    chown -R nginx:nginx /home/ripanel/myweb/s5.linuxfun.com
    chown -R nginx:nginx /home/ripanel/myweb/s6.linuxfun.com
    pkill -f rustwp || true
    nohup /home/ripanel/rustwp > /home/ripanel/rustwp.log 2>&1 &
    echo "Biner rustwp berhasil dijalankan!"
EOF

Sekarang alur kerja jadi jauh lebih efisien. Setiap kali Sobat melakukan kompilasi dan berhasil, biner langsung meluncur ke server produksi dan source code otomatis tersimpan aman di GitHub Private.

Semoga catatan kecil ini bermanfaat buat Sobat yang sedang mengulik Linux, server, dan pengembangan web. Sampai jumpa di catatan teknis dan cerita eksperimen berikutnya!

Tinggalkan Balasan

Informasi kontak Anda tidak akan dipublikasikan. Kolom yang wajib diisi ditandai *. Notifikasi akan dikirim ke telegram untuk mempercepat tanggapan komentar