Lewati ke konten utama
  1. Artikel-artikel/

Shared Hosting Ci Cd

·644 kata·4 menit· loading · loading · ·
CI/CD SSH Github Shared-Hosting Hosting
Humaedi
Penulis
Humaedi
Halo, nama saya Humaedi 👋. Saya seorang Pengajar/Mentor & { Full-Stack Developer } Bekerjalah seakan hidup abadi, beribadah seakan mau mati, jangan lupa ☕️ untuk mendapat inspirasi.

Berikut adalah langkah-langkah lengkap untuk menyiapkan CI/CD di shared hosting yang mendukung akses SSH. Proses ini akan memungkinkan Anda melakukan deployment otomatis dari GitHub ke server hosting setiap kali ada perubahan di branch utama.

Persyaratan:
#

  1. Akses SSH ke shared hosting Anda.
  2. Git terinstal di server (sebagian besar shared hosting yang mendukung SSH sudah memiliki Git).
  3. Akun GitHub tempat kode Anda disimpan.

Langkah-langkah Setup CI/CD di Shared Hosting
#

1. Buat Repositori di GitHub
#

  1. Masuk ke GitHub dan buat repositori baru untuk proyek Anda.
  2. Push kode Anda ke repositori ini (jika belum).

2. Login ke Shared Hosting Melalui SSH
#

  1. Buka terminal atau command prompt di komputer Anda.

  2. Login ke server hosting Anda menggunakan perintah SSH:

    ssh username@hostname
    

    Note: Ganti username dengan nama pengguna dan hostname dengan nama domain atau IP server hosting Anda.

3. Siapkan Direktori untuk Aplikasi Anda di Server
#

  1. Tentukan di mana aplikasi Anda akan disimpan. Biasanya, direktori web hosting ada di /home/username/public_html atau /home/username/www.

  2. Buat folder khusus untuk aplikasi Anda, misalnya:

    mkdir -p ~/apps/myapp
    cd ~/apps/myapp
    

4. Inisialisasi Repositori Git di Server
#

  1. Di dalam direktori aplikasi (~/apps/myapp), inisialisasi repositori Git:

    git init
    
  2. Atur repositori agar berfungsi sebagai tempat checkout saat deployment dilakukan dengan hook Git nanti.

5. Setup Hook Git untuk Deployment Otomatis
#

  1. Masuk ke folder .git/hooks:

    cd .git/hooks
    
  2. Buat file post-receive yang akan menjalankan script deployment setiap kali ada push baru ke server:

    nano post-receive
    
  3. Tambahkan script berikut ke dalam file post-receive:

    #!/bin/sh
    GIT_WORK_TREE=/home/username/public_html git checkout -f
    
    • Ganti /home/username/public_html dengan direktori tempat aplikasi akan dijalankan di server (direktori yang bisa diakses oleh pengguna).
  4. Berikan izin eksekusi pada file post-receive:

    chmod +x post-receive
    

6. Tambahkan Server sebagai Remote di Komputer Lokal
#

  1. Di komputer lokal, buka terminal dan arahkan ke repositori proyek Anda.

  2. Tambahkan remote server sebagai tujuan production:

    git remote add production ssh://username@hostname/home/username/apps/myapp
    

    Ganti username, hostname, dan path sesuai dengan konfigurasi Anda.

7. Buat Kunci SSH untuk Autentikasi GitHub
#

  1. Di server hosting, buat kunci SSH (jika belum ada):

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
  2. Setelah membuat kunci SSH, copy isi kunci publik (~/.ssh/id_rsa.pub).

    cat ~/.ssh/id_rsa.pub
    
  3. Salin isi kunci tersebut.

  4. Masuk ke akun GitHub Anda dan tambahkan kunci publik ini ke akun Anda:

    • Buka Settings > SSH and GPG keys.
    • Klik New SSH key, beri nama, dan paste kunci publik tadi.

8. Setup GitHub Actions untuk Otomatisasi Deployment
#

  1. Di repositori GitHub Anda, buat direktori .github/workflows/.

  2. Di dalam direktori tersebut, buat file deploy.yml.

  3. Masukkan konfigurasi GitHub Actions berikut untuk melakukan deployment otomatis:

    name: Deploy to Shared Hosting
    
    on:
      push:
        branches: [ master ]
    
    jobs:
      deploy:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout code
            uses: actions/checkout@v2
    
          - name: Deploy to server
            uses: appleboy/ssh-action@master
            with:
              host: ${{ secrets.SERVER_HOST }}
              username: ${{ secrets.SERVER_USER }}
              key: ${{ secrets.SERVER_SSH_KEY }}
              script: |
                cd /home/username/apps/myapp
                git pull origin master
                # Jalankan perintah lain jika diperlukan            
    
  4. Tambahkan secrets di GitHub:

    • Masuk ke repositori GitHub Anda, pilih Settings > Secrets and variables > Actions.
    • Tambahkan secrets berikut:
      • SERVER_HOST: hostname atau IP server Anda.
      • SERVER_USER: username SSH Anda.
      • SERVER_SSH_KEY: Kunci privat SSH Anda yang sesuai dengan kunci publik di server.
  5. Commit dan push file deploy.yml ini ke GitHub.

9. Uji Deployment Otomatis
#

  1. Setiap kali Anda melakukan push ke branch master di GitHub, GitHub Actions akan otomatis menjalankan workflow deploy.yml.
  2. GitHub Actions akan login ke server hosting, menarik perubahan, dan menerapkan update.

10. Periksa Log untuk Memastikan Deployment Berjalan
#

  1. Di GitHub, buka tab Actions pada repositori untuk melihat hasil dari workflow.
  2. Anda dapat melihat output dan memastikan tidak ada error selama deployment.

Tips Tambahan
#

  • Testing: Jika ada perubahan besar, sebaiknya uji di lingkungan lokal atau staging sebelum push ke master.
  • Error Handling: Pastikan script post-receive dan workflow GitHub Actions diatur dengan benar untuk menangani error.
  • Backup: Sebelum deployment besar, backup file penting di server Anda.

Dengan setup ini, Anda dapat melakukan deployment otomatis ke shared hosting Anda setiap kali push ke GitHub.

Terkait

Svelte Basic Auth Auth 4
·927 kata·5 menit· loading · loading
Development Js Framework Svelte Nodejs
Halo para seniman yang budiman!
Svelte Basic Auth Auth 3
·951 kata·5 menit· loading · loading
Development Js Framework Svelte Nodejs
Halo para seniman yang budiman!
Svelte Basic Auth Auth 2
·858 kata·5 menit· loading · loading
Development Js Framework Svelte Nodejs
Halo para seniman yang budiman!