# Upload Project Website Laravel ke Shared Hosting dengan Menggunakan Git-FTP

<figure><img src="https://nos.wjv-1.neo.id/cdn.medusa.my.id/Git-FTP.png" alt=""><figcaption></figcaption></figure>

## Introduction

[**Git-FTP**](https://git-ftp.github.io) adalah sebuah tool yang digunakan dalam pengembangan perangkat lunak yang berfungsi untuk mengelola dan mengunggah perubahan ke Web Server melalui FTP (File Transfer Protocol) dengan menggunakan [**Git**](https://git-scm.com) sebagai dasar version control. Git-FTP memungkinkan pengembang untuk mengintegrasikan workflow Git mereka dengan Web Server yang menjalankan FTP untuk mengelola project website yang berbasis file.

Berikut adalah beberapa fitur dan konsep utama yang terkait dengan Git-FTP:

1. **Integrasi Git:** Git-FTP memungkinkan untuk mengelola perubahan yang kita lakukan menggunakan Git seperti pada umumnya. Kita dapat melakukan commit, branch, dan merge pada perubahan yang telah dilakukan dengan cara yang sama dengan pengoperasian Git pada umumnya.
2. **Upload ke FTP Server:** Salah satu fitur utama Git-FTP adalah kemampuannya untuk mengunggah perubahan yang telah dilakukan ke FTP Server dengan mudah. Kita dapat menggunakan perintah **`git ftp push`** untuk mengunggah perubahan terbaru ke FTP Server yang ditentukan.
3. **Sinkronisasi:** Git-FTP secara otomatis melacak perubahan yang telah kita commit sejak yang terakhir kali diunggah ke server. Ini berarti hanya perubahan yang baru yang akan diunggah ke server, menghemat waktu dan bandwidth.
4. **Konfigurasi:** Git-FTP memerlukan konfigurasi yang tepat untuk menghubungkan ke FTP Server. Kita perlu data credential seperti IP Address atau Host dari server, username, password, dan directory tujuan di server.
5. **Password Protection:** Git-FTP juga menyediakan opsi untuk menyimpan password FTP dengan aman menggunakan enkripsi, sehingga kita tidak perlu menampilkan password yang kita gunakan secara vulgar dalam file konfigurasi untuk menghindari data compromised.

Penting untuk diingat bahwa Git-FTP bukan merupakan bagian resmi dari Git dan tidak termasuk dalam distribusi resmi Git. Ini adalah tool pihak ketiga yang ditujukan khusus untuk mengelola pengunggahan ke FTP Server dalam konteks pengembangan website. Seiring berjalannya waktu, tool-tool lain mungkin juga telah muncul untuk tujuan yang serupa. Sebelum menggunakan Git-FTP atau tool serupa, pastikan untuk memeriksa dokumentasi dan sumber yang relevan agar dapat menggunakannya dengan efektif.

## Requirements

Sebelum meng-upload project website yang menggunakan framework [**Laravel**](https://laravel.com) yang kita miliki ke shared hosting, terlebih dahulu kita harus sudah melakukan proses deploy framework Laravel pada komputer lokal maupun server yang kita miliki terlebih dahulu dan berikut kebutuhan yang perlu kita siapkan sebelumnya, antara lain:

* **Internet**.
* **Komputer/Server**.
* **Framework Laravel**.
* **Git**.
* **Git-FTP**.
* **Shared Hosting**.
* **Domain**.

## Installation

Setelah semua kebutuhan diatas sudah siap, maka proses selanjutkan kita masuk ke bagian di mana kita meng-upload project website Laravel ke Shared Hosting, pastikan sebelum kita meng-upload project website yang kita miliki, kita harus sudah menambahkan domain pada shared hosting yang kita gunakan.

Sebelumnya kita juga perlu membuat akun FTP pada shared hosting yang kita miliki, nantinya data credential akun FTP yang telah kita buat dibutuhkan untuk akses ke FTP server pada shared hosting yang kita miliki untuk keperluan proses transfer data dan berikut langkah-langkahnya:

### **Install Paket Software Git**

{% code title="Debian/Ubuntu" overflow="wrap" lineNumbers="true" fullWidth="false" %}

```bash
sudo apt-get update
sudo apt-get install git
```

{% endcode %}

{% code title="CentOS/RHEL/Rocky Linux/AlmaLinux" overflow="wrap" lineNumbers="true" fullWidth="false" %}

```bash
sudo yum update
sudo yum install git
```

{% endcode %}

{% code title="Arch Linux" overflow="wrap" lineNumbers="true" %}

```bash
sudo pamac update
sudo pamac install git
```

{% endcode %}

{% code title="Manjaro Linux" overflow="wrap" lineNumbers="true" %}

```bash
sudo pacman -Syyu
sudo pacman -S git
```

{% endcode %}

### Install Paket Software Git-FTP

{% code overflow="wrap" lineNumbers="true" %}

```bash
cd /opt
git clone https://github.com/git-ftp/git-ftp.git
cd git-ftp/
cp git-ftp /usr/bin/git-ftp
```

{% endcode %}

{% embed url="<https://www.youtube.com/live/nJhxC55nyEo?si=ucNFP0PFhU1Iv3Ek>" fullWidth="false" %}
Installation of Git-FTP Software Package
{% endembed %}

## Testing

### Upload Project Laravel ke Shared Hosting

{% code overflow="wrap" lineNumbers="true" fullWidth="false" %}

```bash
cd /path/laravel
git init
git add .
git commit -m "Upload Project Laravel ke Shared Hosting"
git config git-ftp.url "ftp://[DOMAIN/IP_ADDRESS]:21"
git config git-ftp.password "ftppassword"
git config git-ftp.user "ftpuser"
git config git-ftp.syncroot /path/laravel
git config git-ftp.insecure 0
git-ftp init atau git-ftp init --syncroot /path/laravel
```

{% endcode %}

### Upload File Baru ke Project Laravel

{% code overflow="wrap" lineNumbers="true" %}

```bash
cd /path/laravel
touch file.txt
echo "Upload File Baru ke Project Laravel" > file.txt
git add file.txt
git commit file.txt -m "Upload File Baru ke Project Laravel"
git-ftp push atau git-ftp push --syncroot /path/laravel
```

{% endcode %}

### Delete File pada Project Laravel

{% code overflow="wrap" lineNumbers="true" %}

```bash
cd /path/laravel
git rm file.txt
git commit -m "Delete File pada Project Laravel"
git-ftp push atau git-ftp push --syncroot /path/laravel
```

{% endcode %}

### Download Project Laravel dari Shared Hosting

{% code overflow="wrap" lineNumbers="true" %}

```bash
cd /path/laravel
git init
git commit -m "Download Project Laravel dari Shared Hosting"
git-ftp pull -u ftpuser -p ftppassword ftp://[DOMAIN/IP_ADDRESS]:21 (OR)
git-ftp download -u ftpuser -p ftppassword ftp://[DOMAIN/IP_ADDRESS]:21
```

{% endcode %}

Setelah semua proses di atas selesai dan berhasil dilakukan, maka project website Laravel yang saat ini kita kelola pada shared hosting sudah dapat di-publish.

> **Catatan:**
>
> Untuk **`/path/laravel`** sesuaikan dengan directory dari repository project website yang kita miliki di komputer atau server.

Demikian sedikit pengetahuan dan pengalaman yang dapat saya bagikan, semoga apa yang telah saya sampaikan dapat bermanfaat bagi kita semua.

<details>

<summary><strong>Referensi</strong></summary>

* [**Cara Upload File ke Server FTP ala Git**](https://www.petanikode.com/git-ftp/)
* [**Mudah Mengupload Proyek berbasis Git ke Server Hosting Menggunakan Git-FTP**](https://www.codepolitan.com/upload-deploymet-proyek-berbasis-git-ke-server-shared-hosting-menggunakan-git-ftp)

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.madfxr.my.id/documentation/categories/cloud-computing/upload-project-website-laravel-ke-shared-hosting-dengan-menggunakan-git-ftp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
