Git tanpa SSH

Sapa sing durung ngalami iki: Sampeyan kudu cepet ndownload apa wae ing paket hosting sing dienggo bareng sing murah (contone, saka IONOS). git pull Sampeyan bisa uga pengin mbukak program utawa nggunakake database, nanging panyedhiya hosting sampeyan ora menehi akses SSH - utawa mung ing rencana sing luwih larang. Asring, siji-sijine pilihan sing isih ana yaiku proses ngunggah file kanthi manual liwat FTP sing mboseni, sing ndadekake penyebaran sing ora perlu rumit lan rawan kesalahan.


Salah sawijining solusi sing bisa ditindakake yaiku masang sistem file liwat sshfs. Ing téori, iki muni apik: Sampeyan masang folder remot sacara lokal lan bisa kaya-kaya file kasebut ana ing mesin sampeyan dhewe. Kanggo nindakake iki, sampeyan mung nggawe direktori lokal lan nyambungake menyang server liwat pangguna FTP/SSH. Perintah sing dibutuhake kanggo nggawe sambungan lan nyiapake Git kanggo folder iki katon kaya iki ing Linux::

sudo apt-get install sshfs
mkdir /var/www/remote
cd /var/www/remote
sshfs username@your.host:/ -p 22 /var/www/remote
git config --global --add safe.directory /var/www/remote
git status
...
umount /var/www/remote

Masalahé: Performané ala banget. Amarga Git ngalami kesulitan karo printah kaya git status Nalika nindakake ewonan operasi file cilik, sing saben-saben mbutuhake akses jaringan, wong asring ngenteni sawetara menit kanggo respon sing paling gampang. Pakaryan produktif meh ora mungkin ing kahanan kaya ngene. Utamane ing proyek kanthi akeh dependensi, terminal asring macet total, meksa pangguna sing frustasi ninggalake proses kasebut.

Pustaka kaya ftpsh ana persis kanggo skenario iki. Pustaka iki ngidini sampeyan nglakokake printah shell ing server remot sing mung nawakake akses (S)FTP lan HTTP. Trike yaiku skrip PHP diunggah sementara, sing nglakokake printah sing diwenehake lan ngasilake output. Kabeh iki kedadeyan ing latar mburi, nanging rasane kaya shell nyata.

Instalasine cepet lan gampang.:

mkdir ftpsh
cd ftpsh
wget -O ftpsh.sh https://raw.githubusercontent.com/vielhuber/ftpsh/main/ftpsh.sh
chmod +x ftpsh.sh

Sabanjure, kita nggawe file .env nganggo data akses (S)FTP.:

HOST=your-server.com
PORT=22
USERNAME=your-username
PASSWORD=your-password
REMOTE_PATH="/"
WEB_URL="https://your-server.com"

Saiki kita bisa nglakokake prentah apa wae ing server, anggere piranti kasebut kasedhiya saka jarak jauh.:

ftpsh git status
ftpsh "mysqldump -h xxx --port 3306 -u xxx -p\"xxx\" --routines xxx" > dump.sql

Skrip iki ngunggah worker ing latar mburi, nglakokake printah sacara lokal ing server (ing ngendi cepet), lan ngasilake asil. Iki ngidini otomatisasi penyebaran, dump database, utawa operasi Git sing efisien, sanajan ing lingkungan hosting winates. Skrip iki uga terintegrasi kanthi lancar karo syncdb kanggo sinkronisasi database.

Bali