Deploy Laravel ke shared hosting seperti Hostinger sering jadi PR tersendiri bagi developer yang baru pertama kali. File transfer via FTP terasa kuno, dan rawan error kalau ada file yang terlewat. Untung, dengan Git dan SSH, kita bisa membuat proses deploy jadi lebih profesional, terstruktur, dan repeateable.
Artikel ini adalah panduan praktis step-by-step yang sudah ditest di lingkungan shared hosting nyata. Kita mulai dari persiapan SSH key, setup Git repository, hingga optimasi production. Semua trik yang dibahas bisa langsung kamu terapkan.
Prasyarat yang Kamu Butuhkan
Sebelum mulai, pastikan kamu sudah punya beberapa hal ini:
- Akun Hostinger dengan akses SSH (cek di panel Hostinger > Files > FTP/SSH)
- Git sudah terinstall di local machine kamu
- Repository Laravel (bisa di GitHub, GitLab, atau Gitea)
- Terminal/Command prompt yang nyaman
- SSH client (bawaan di Linux/Mac, PuTTY/Git Bash di Windows)
Kalau belum ada Git atau belum terbiasa, tidak masalah — panduan ini akan cukup detail dan accessible.
Langkah 1: Generate SSH Key dan Setup di Hostinger
SSH key adalah cara aman dan praktis untuk autentikasi tanpa perlu memasukkan password berkali-kali. Pertama, generate SSH key di local machine:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/hostinger_keyTekan Enter untuk skip passphrase (atau buat passphrase kalau kamu prefer security lebih tinggi). Setelah itu, kamu akan punya 2 file: hostinger_key (private) dan hostinger_key.pub (public).
Selanjutnya, login ke Hostinger panel. Masuk ke bagian Files > FTP/SSH, lalu klik "Manage SSH Keys". Copy isi dari file hostinger_key.pub (bukan private key!) dan paste di form Hostinger. Setelah disimpan, tunggu beberapa menit hingga key ter-sync.
Coba test koneksi SSH kamu:
ssh -i ~/.ssh/hostinger_key username@your-hostinger-domain.comGanti username dengan username FTP kamu. Kalau berhasil, kamu bakal masuk ke shell Hostinger.
Langkah 2: Siapkan Repository di Platform Git
Sebelum deploy, pastikan kode Laravel kamu sudah di-push ke repository publik atau private di GitHub, GitLab, atau platform git lainnya. Di Hostinger shared hosting, kita akan clone repository langsung.
Penting: Pastikan repository kamu bersih dari file sensitif seperti .env. Gunakan .gitignore untuk exclude .env, node_modules/, vendor/, dan file-file lain yang sebaiknya tidak di-track.
Contoh .gitignore minimal untuk Laravel:
.env
.env.*.php
node_modules/
vendor/
storage/
bootstrap/cache/
.DS_StoreLangkah 3: Clone Repository ke Hostinger
SSH-in ke Hostinger, lalu navigate ke folder public HTML (biasanya public_html):
ssh -i ~/.ssh/hostinger_key username@your-hostinger-domain.com
cd public_htmlSebelum clone, kosongkan folder ini (atau backup kalau ada file lama). Kalau folder kosong:
git clone https://github.com/your-username/your-laravel-repo.git .Perhatian: Jangan lupa tanda titik (.) di akhir command. Itu berarti clone langsung ke folder public_html, bukan membuat subfolder.
Kalau repository private, kamu mungkin perlu setup SSH key di platform Git juga. Untuk GitHub, caranya ada di Settings > Deploy Keys.
Langkah 4: Install Dependencies dan Setup Laravel
Setelah clone berhasil, install composer dependencies:
composer install --no-dev --optimize-autoloaderFlag --no-dev menghilangkan dependency development untuk menghemat space. Tunggu sampai selesai (bisa beberapa menit tergantung paket yang digunakan).
Selanjutnya, setup file .env:
cp .env.example .envEdit file .env dengan nano atau vim:
nano .envUbah konfigurasi sesuai environment production kamu:
APP_NAME=YourAppName
APP_ENV=production
APP_KEY=base64:your-app-key
APP_DEBUG=false
APP_URL=https://your-domain.com
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=your_db_name
DB_USERNAME=your_db_user
DB_PASSWORD=your_db_passwordGenerate APP_KEY jika belum ada (atau copy dari local .env kamu):
php artisan key:generateLangkah 5: Setup Database dan Migration
Buat database dan user di Hostinger panel (MySQL Databases). Setelah itu, jalankan migration:
php artisan migrate --forceFlag --force diperlukan di production environment. Ini akan create tabel-tabel sesuai migration file kamu.
Kalau ada seed data:
php artisan db:seed --class=YourSeederLangkah 6: Optimize Laravel untuk Production
Cache configuration, route, dan view untuk performa optimal:
php artisan config:cache
php artisan route:cache
php artisan view:cacheSet permission untuk storage dan bootstrap/cache:
chmod -R 755 storage bootstrap/cache
chmod -R 644 storage bootstrap/cacheLangkah 7: Update ke Versi Terbaru (Pull Updates)
Salah keuntungan setup Git adalah update jadi super mudah. Kapan pun kamu push update kode ke repository, kamu tinggal SSH dan jalankan:
git pull origin mainAtau kalau ada perubahan dependencies:
git pull origin main
composer install --no-dev --optimize-autoloader
php artisan migrate --forceItu saja. Tidak perlu re-upload semua file lagi.
Troubleshooting Umum
1. Permission Denied (publickey) — SSH key belum ter-setup dengan benar. Double-check apakah public key sudah ter-paste di Hostinger panel SSH Keys.
2. Composer: command not found — Hostinger shared hosting mungkin tidak punya composer global. Coba gunakan php composer.phar install atau minta hosting team untuk enable composer.
3. PHP version mismatch — Pastikan PHP version di local dan Hostinger sama. Cek dengan php -v di Hostinger. Bisa diatur di Hostinger panel (PHP Settings).
4. Storage permission error — Pastikan permission folder storage/ dan bootstrap/cache/ sudah writable untuk web server. Jalankan kembali chmod command di atas.
Kesimpulan
Deploy Laravel ke shared hosting bukan hal yang rumit asalkan kamu sudah paham dasar Git dan SSH. Dengan setup yang sudah kita bahas — mulai dari SSH key, clone repository, hingga optimize production — kode kamu akan ter-deploy dengan profesional dan terstruktur. Update di masa depan juga jadi jauh lebih cepat dan minim error.
Selamat mencoba, dan semoga deploy-mu lancar! Kalau ada pertanyaan atau macet di salah satu langkah, jangan ragu untuk re-read step-by-step atau tanya di komunitas developer Indonesia yang memang peduli soal hal-hal praktis seperti ini.