Deploy Laravel ke production seringkali jadi momok bagi banyak developer. Setup VPS, install nginx, konfigurasi PHP-FPM, buat Dockerfile โ belum lagi kalau ada masalah SSL atau permission. Helipod hadir untuk menghilangkan semua itu.
Dengan Helipod, kamu connect repo โ set env vars โ klik deploy. Selesai. Helipod menggunakan Helipack untuk otomatis mendeteksi bahwa project kamu adalah Laravel dan generate Dockerfile yang optimal โ termasuk pilihan antara FrankenPHP (PHP 8.2+) atau Nginx + PHP-FPM sebagai fallback.
Yang Kamu Butuhkan
Sebelum mulai, pastikan kamu sudah punya:
- Akun Helipod (daftar gratis di helipod.io)
- Repository Laravel di GitHub atau GitLab
- File
.envyang sudah dikonfigurasi
Langkah 1: Connect Repository
Login ke dashboard Helipod, klik New Project, lalu pilih repository Laravel kamu dari GitHub atau GitLab. Helipod otomatis mendeteksi bahwa ini adalah project Laravel.
Setelah repository terhubung, kamu akan melihat service card muncul di canvas dengan status Building.
Langkah 2: Konfigurasi Environment Variables
Masuk ke tab Variables pada service panel di sebelah kanan. Klik + New variable dan masukkan environment variables dari file .env kamu:
APP_KEY=base64:xxxxx
APP_ENV=production
APP_DEBUG=false
DB_CONNECTION=pgsql
DB_HOST=nama-service-postgres
DB_PORT=5432
DB_DATABASE=laravel
DB_USERNAME=postgres
DB_PASSWORD=secret
Tips: Untuk
DB_HOST, gunakan nama service database yang kamu deploy di Helipod. Semua service dalam satu project bisa saling berkomunikasi via internal network โ format hostname-nya adalah nama pod yang kamu beri saat membuat service. Baca lebih lanjut di Panduan Internal Network Helipod.
Keamanan: Variable di Helipod dienkripsi at rest dan di-inject langsung ke container saat runtime โ tidak pernah muncul di build logs. Untuk file sensitif seperti service account JSON, gunakan tab Secrets.
Langkah 3: Tambahkan Database (Opsional)
Jika aplikasi kamu butuh database, klik + di canvas untuk menambah service baru dan pilih PostgreSQL. Database akan otomatis terhubung ke jaringan internal yang sama dengan service Laravel kamu.
Setelah PostgreSQL running, catat nama service-nya dan gunakan sebagai DB_HOST di step 2.
Langkah 4: Deploy
Klik tombol Deploy di pojok kanan atas panel. Helipod akan:
- Clone repository kamu
- Detect framework โ Laravel terdeteksi
- Generate Dockerfile optimal (FrankenPHP untuk PHP 8.2+)
- Build Docker image dengan Helipack
- Push ke internal registry
- Deploy ke cluster Kubernetes
- Setup domain dan SSL otomatis
Kamu bisa memantau prosesnya secara real-time di tab Deployments โ Build logs.
Seluruh proses biasanya selesai dalam 2โ3 menit.
Langkah 5: Jalankan Migrasi
Setelah deploy berhasil dan status berubah menjadi LIVE, buka tab Terminal dan jalankan:
php artisan migrate --force
php artisan storage:link
Catatan: Jika kamu menggunakan Laravel Octane dengan Swoole, Helipack akan otomatis mendeteksinya dan generate Dockerfile yang sesuai โ termasuk konfigurasi worker dan port yang tepat.
Kustomisasi dengan helipack.json (Opsional)
Jika kamu butuh override konfigurasi default, buat file helipack.json di root repository:
{
"run": {
"port": 8000,
"before": "php artisan migrate --force"
},
"health": {
"path": "/",
"duration": 15
},
"packages": {
"apk": ["ffmpeg", "imagemagick"]
}
}
Dengan run.before, kamu bisa otomatis jalankan migrasi setiap kali deployment baru โ tanpa perlu manual masuk ke terminal.
Baca selengkapnya di Panduan helipack.json.
Verifikasi
Buka URL yang diberikan Helipod di tab Settings โ Networking & Domains (format: nama-project.helipod.app) dan pastikan aplikasi kamu berjalan dengan benar.
Kamu juga bisa pantau performa aplikasi di tab Metrics โ CPU usage, Memory, Uptime, dan jumlah Restarts tersedia real-time.
Troubleshooting Umum
Build gagal dengan error "composer install failed"
Pastikan file composer.json dan composer.lock ada di root repository. Helipod menggunakan composer.lock untuk reproducible builds.
Error "APP_KEY not set"
Generate APP_KEY dengan php artisan key:generate --show di local, lalu copy hasilnya ke Variables di Helipod.
Database connection refused
Pastikan DB_HOST menggunakan nama service PostgreSQL di Helipod (bukan localhost atau IP). Cek nama service di canvas dashboard.
Storage tidak bisa ditulis
Jalankan php artisan storage:link dari tab Terminal setelah deploy pertama. Untuk persistent storage, tambahkan volume mount di Settings โ Storage Volumes.
Kesimpulan
Deploy Laravel ke Helipod tidak membutuhkan pengetahuan DevOps yang dalam. Cukup connect repo, set environment variables, dan klik deploy. Semua urusan infrastruktur โ server, container, SSL, health check โ ditangani Helipod.
Ingin tahu lebih tentang cara Helipod generate Dockerfile untuk Laravel? Baca Cara Helipack Generate Dockerfile Otomatis.
Punya pertanyaan? Hubungi kami di support@helipod.id atau bergabung ke komunitas di hangar.helipod.io.