Featured image of post Cara Mudah Berbagi Project Lokal Laravel ke Internet Publik

Cara Mudah Berbagi Project Lokal Laravel ke Internet Publik

Terkadang kita perlu untuk berbagi project lokal ke internet publik, misalnya untuk keperluan demo atau sharing project dengan client. Berikut adalah cara mudah untuk berbagi project lokal Laravel ke internet publik.

Laravel merupakan salah satu framework PHP yang paling populer saat ini. Dengan Laravel, kita bisa membuat aplikasi web dengan cepat dan mudah. Namun, terkadang kita perlu untuk berbagi project lokal ke internet publik tanpa perlu deploy/hosting terlebih dahulu, misalnya untuk keperluan demo atau sharing project dengan client. Berikut adalah cara mudah untuk berbagi project lokal Laravel ke internet publik.

Berbagi menggunakan ngrok

Ngrok adalah sebuah tools yang memungkinkan kita untuk membuat tunnel ke localhost. Dengan ngrok, kita bisa membuat project lokal kita bisa diakses dari internet publik. Pastikan telah memiliki akun ngrok di https://ngrok.com/.

  1. Login ke dashboard ngrok
  2. Download ngrok
  3. Jalankan project laravel
    1
    
    php artisan serve
    
  4. Jalankan perintah build jika menggunakan vite atau webpack
    1
    
    npm run build
    
  5. Jalankan ngrok
    1
    
    ./ngrok http 8000
    
  6. Selesai, project laravel sudah bisa diakses dari internet publik dengan URL yang dihasilkan oleh ngrok

Berbagi menggunakan expose.dev

expose.dev adalah layanan yang memungkinkan kita untuk membuat project lokal bisa diakses dari internet publik. Layanan ini menjadi salah satu alternatif terbaik dari ngrok, selain itu expose.dev dibuat dengan PHP, jadi lebih kompatibel walaupun tidak terlalu berpengaruh. Pastikan telah memiliki akun expose.dev di https://expose.dev/.

  1. Login ke dashboard expose.dev
  2. Install expose.dev
    1
    
    curl -sSL https://expose.dev/install | bash
    
  3. Jalankan project laravel
    1
    
    php artisan serve
    
  4. Jalankan perintah build jika menggunakan vite atau webpack
    1
    
    npm run build
    
  5. Jalankan expose.dev
    1
    
    expose share http://localhost:8000
    
  6. Selesai, project laravel sudah bisa diakses dari internet publik dengan URL yang dihasilkan oleh expose.dev

Konfigurasi proxy laravel

Agar laravel dapat mengetahui bahwa project sedang diakses lewat tunnel atau proxy, kita perlu menambahkan konfigurasi proxy. Dengan demikian fungsi generate url pada laravel seperti asset, url, route, @vite dan lainnya akan berjalan dengan baik.

Untuk konfigurasi proxy, gunakan kode berikut pada file bootstrap\app.php:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<?php

use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        //
        $middleware->trustProxies(at: '*'); // tambahkan baris berikut
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();

Jika menggunakan Laravel 10 kebawah, konfigurasi proxy bisa dilakukan dengan menambahkan kode berikut pada file app\Http\Middleware\TrustProxies.php:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php

namespace App\Http\Middleware;

use Illuminate\Http\Middleware\TrustProxies as Middleware;
use Illuminate\Http\Request;

class TrustProxies extends Middleware
{
    /**
     * The trusted proxies for this application.
     *
     * @var array<int, string>|string|null
     */
    protected $proxies = '*'; // tambahkan baris berikut
    

    /**
     * The headers that should be used to detect proxies.
     *
     * @var int
     */
    protected $headers =
        Request::HEADER_X_FORWARDED_FOR |
        Request::HEADER_X_FORWARDED_HOST |
        Request::HEADER_X_FORWARDED_PORT |
        Request::HEADER_X_FORWARDED_PROTO |
        Request::HEADER_X_FORWARDED_AWS_ELB;
}

Kesimpulan

Dengan menggunakan ngrok atau expose.dev, kita bisa dengan mudah berbagi project laravel lokal ke internet publik. Selain itu, dengan menambahkan konfigurasi proxy, kita bisa memastikan bahwa laravel dapat berjalan dengan baik saat diakses lewat tunnel atau proxy. Selamat mencoba!

Dibangun dengan Hugo
Tema Stack dirancang oleh Jimmy