Langkah Konfigurasi Laravel Octane (RoadRunner), React.js, Tailwind CSS, Shadcn/UI, dan Vite sebagai Frontend di Laravel pada OS Ubuntu


Langkah Konfigurasi Laravel Octane (RoadRunner), React.js, Tailwind CSS, Shadcn/UI, dan Vite sebagai Frontend di Laravel pada OS Ubuntu

Integrasi React.js, Tailwind CSS, Shadcn/UI, dan Vite dengan Laravel  di Ubuntu memungkinkan pengembangan frontend modern yang cepat, efisien, dan estetis. Ikuti langkah-langkah berikut untuk menyiapkan lingkungan pengembangan yang optimal. Dengan menambahkan Laravel Octane dan RoadRunner, aplikasi Anda akan memiliki performa lebih cepat dan efisien dibandingkan menggunakan PHP-FPM biasa. Octane memanfaatkan worker yang selalu aktif sehingga memangkas waktu booting aplikasi Laravel.


1. Install Node, NPM, dan Vite

  1. Pastikan Node.js & NPM Terinstal:
    Jika belum ada, install dengan:

sudo apt update

sudo apt install nodejs npm

Periksa instalasi:

node -v

npm -v

  1. Update NPM ke Versi Terbaru:

npm install -g npm@10.9.2

  1. Install Vite dan Laravel Vite Plugin:

npm install --save-dev vite laravel-vite-plugin


2. Integrasi React dengan Laravel

  1. Install React & React DOM:

npm install react react-dom

  1. Buat File React Entry Point:
    Buat file resources/js/app.jsx dengan konten:

import React from "react";

import ReactDOM from "react-dom/client";

import App from "./components/App";

ReactDOM.createRoot(document.getElementById("app")).render(<App />);

  1. Buat Komponen Utama:
    Buat file resources/js/components/App.jsx dengan konten:

import React from "react";

function App() {

    return (

        <div className="p-4 text-center text-xl font-bold">

            Hello from React + Tailwind + Shadcn!

        </div>

    );

}

export default App;

  1. Konfigurasi Vite di Laravel:
    Edit file vite.config.js di root project Laravel:

import { defineConfig } from "vite";

import laravel from "laravel-vite-plugin";

import react from "@vitejs/plugin-react";

export default defineConfig({

    plugins: [

        laravel({

            input: "resources/js/app.jsx",

            refresh: true,

        }),

        react(),

    ],

});


3. Install Tailwind CSS

  1. Install Tailwind, PostCSS, dan Autoprefixer:

npm install -D tailwindcss postcss autoprefixer

  1. Inisialisasi Tailwind:

npx tailwindcss init

  1. Konfigurasi Tailwind:
    Edit file tailwind.config.js:

export default {

    content: [

        "./resources/**/*.blade.php",

        "./resources/**/*.js",

        "./resources/**/*.jsx",

    ],

    theme: {

        extend: {},

    },

    plugins: [],

};

  1. Setup Tailwind di Project:
    Tambahkan Tailwind ke resources/css/app.css:

@tailwind base;

@tailwind components;

@tailwind utilities;

  1. Tambahkan CSS di Vite:
    Edit resources/js/app.jsx untuk import CSS:

import "../css/app.css";


4. Install Shadcn/UI

  1. Inisialisasi Shadcn:

npx shadcn@latest init

  1. Tambahkan Komponen Shadcn:
    • Table:

npx shadcn@latest add table

    • Accordion:

npx shadcn@latest add accordion

    • Dialog:

npx shadcn@latest add dialog

    • Dropdown, Pagination, dan Popover:

npx shadcn@latest add dropdown-menu

npx shadcn@latest add pagination

npx shadcn@latest add popover

  1. Tambahkan Komponen Shadcn ke dalam kode React:
    Contoh di App.jsx:

import { Button } from "@/components/ui/button";

function App() {

    return (

        <div className="p-4">

            <Button>Click me</Button>

        </div>

    );

}


5. Install Router dan Axios

  1. Install React Router DOM:

npm install react-router-dom

  1. Install Axios untuk HTTP Requests:

npm install axios


6. Bangun Aplikasi

  1. Jalankan Server Laravel:

php artisan serve

  1. Jalankan Vite Development Server:

npm run dev

    • Akses aplikasi: http://localhost:8000.

7. Build Production Files

Jika sudah siap, jalankan:

npm run build


8. Tambahkan Template Blade (Opsional)

Edit resources/views/welcome.blade.php:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Laravel + React</title>

    @viteReactRefresh

    @vite('resources/js/app.jsx')

</head>

<body>

    <div id="app"></div>

</body>

</html>

 

Tips Optimalisasi untuk Mobile Web

  1. Gunakan Tailwind Utility Classes:
    Tambahkan kelas seperti p-4, flex, justify-center, items-center untuk membuat UI responsif.
  2. Gunakan Media Query Tailwind:
    Tambahkan responsive classes seperti:
<div className="p-4 md:p-6 lg:p-8">
    Responsive Content
</div>
  1. Optimalkan Komponen Shadcn/UI:
    Gunakan komponen siap pakai seperti Button, Dropdown, Pagination, dan Dialog untuk menghemat waktu.
  2. Lazy Loading dan Code Splitting:
    Optimalkan performa menggunakan React Lazy:
const MyComponent = React.lazy(() => import("./MyComponent"));

 

Dengan mengikuti langkah-langkah di atas, Anda berhasil mengatur React.js, Tailwind CSS, Shadcn/UI, dan Vite sebagai frontend di Laravel 8 untuk mobile web development. Kombinasi teknologi ini memberikan performa tinggi, UI yang responsif, dan pengalaman pengembangan yang efisien.

Konfigurasi Laravel Octane (RoadRunner) di Laravel 8

Laravel Octane mempercepat performa aplikasi Laravel dengan server RoadRunner atau Swoole. Berikut adalah langkah-langkah konfigurasi Laravel Octane menggunakan RoadRunner sebagai server.


1. Install Laravel Octane

Pastikan Anda sudah berada di direktori root proyek Laravel, lalu jalankan perintah berikut:

composer require laravel/octane

Setelah instalasi selesai, jalankan installer Laravel Octane:

php artisan octane:install

Pilih opsi RoadRunner saat diminta.


2. Install RoadRunner Binary

Laravel Octane memerlukan RoadRunner binary. Anda dapat mendownloadnya langsung melalui perintah berikut:

./vendor/bin/rr get-binary

Pastikan binary dapat dieksekusi:

chmod +x ./vendor/bin/rr

3. Konfigurasi RoadRunner

Secara default, Laravel Octane akan membuat file konfigurasi octane.yaml di root proyek Anda. Jika tidak, buat file tersebut dengan isi berikut:


 
server:
  command: "php artisan octane:start --server=roadrunner --host=127.0.0.1 --port=8000"
http:
  address: 127.0.0.1:8000
  workers:
    command: "php artisan octane:worker"
    pool:
      numWorkers: 4
      maxJobs: 1000

Keterangan:

  • address: RoadRunner akan berjalan di 127.0.0.1:8000. Pastikan Nginx mengarah ke alamat ini.
  • numWorkers: Jumlah worker sesuai dengan kapasitas CPU server Anda.

4. Jalankan Laravel Octane

Jalankan RoadRunner untuk memulai Laravel Octane:

php artisan octane:start --server=roadrunner --host=127.0.0.1 --port=8000

Jika ingin menjalankan server di background (daemon):

php artisan octane:start --server=roadrunner --host=127.0.0.1 --port=8000 --daemon

5. Konfigurasi Nginx untuk Laravel Octane

Edit file konfigurasi Nginx Anda (misalnya: /etc/nginx/sites-available/laravel) agar Nginx meneruskan request ke RoadRunner:

server {
    listen 80;
    server_name urlaplikasianda.teltics.in;

    root /data/data/urlaplikasianda/public;
    index index.php index.html index.htm;

    # Arahkan request ke Laravel Octane
    location / {
        proxy_pass http://127.0.0.1:8000; # Port RoadRunner
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
 
    # Cache static assets
    location ~* \.(jpg|jpeg|gif|png|css|js|ico|webp|woff|woff2|ttf|svg|otf|eot)$ {
        expires max;
        log_not_found off;
        access_log off;
    }

    # Deny access to hidden files
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
}

Pastikan Nginx diarahkan ke RoadRunner yang berjalan di 127.0.0.1:8000.


6. Uji Aplikasi

  1. Restart Nginx untuk menerapkan perubahan:
sudo systemctl restart nginx
  1. Jalankan Laravel Octane dengan RoadRunner:
php artisan octane:start --server=roadrunner
  1. Buka browser dan akses aplikasi Anda:
http://urlaplikasianda.teltics.in

7. Optimize Aplikasi Laravel

Untuk memastikan performa Laravel Octane optimal, lakukan langkah-langkah berikut:

  1. Cache konfigurasi:
php artisan config:cache
php artisan route:cache
php artisan view:cache
  1. Pastikan log level hanya untuk produksi: Edit .env:
APP_DEBUG=false
APP_ENV=production

8. Monitor RoadRunner (Optional)

Gunakan tool seperti Supervisor untuk memastikan RoadRunner berjalan otomatis dan restart jika gagal.

Konfigurasi Supervisor:

Buat file /etc/supervisor/conf.d/laravel-octane.conf:

[program:laravel-octane]
command=php artisan octane:start --server=roadrunner --host=127.0.0.1 --port=8000
autostart=true
autorestart=true
stderr_logfile=/var/log/laravel-octane.err.log
stdout_logfile=/var/log/laravel-octane.out.log
user=www-data

Reload Supervisor:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-octane

Dengan menambahkan Laravel Octane dan RoadRunner, aplikasi Anda akan memiliki performa lebih cepat dan efisien dibandingkan menggunakan PHP-FPM biasa. Octane memanfaatkan worker yang selalu aktif sehingga memangkas waktu booting aplikasi Laravel.

Integrasi ini memastikan pengembangan mobile web dengan React.js, Tailwind CSS, dan Shadcn/UI berjalan optimal di Laravel  dengan performa tinggi. 

🚀 Selamat mencoba dan tingkatkan performa aplikasi Anda! Selamat mengembangkan mobile web modern Anda!

 

Glosarium: Istilah Penting dalam Konfigurasi React.js, Tailwind CSS, Shadcn/UI, Vite, dan Laravel Octane

  1. Laravel
    Framework PHP populer yang digunakan untuk pengembangan web dengan sintaks yang elegan dan alat bantu lengkap.
  2. React.js
    Library JavaScript untuk membangun antarmuka pengguna (UI) yang interaktif dan modular dengan pendekatan berbasis komponen.
  3. Tailwind CSS
    Framework CSS berbasis utility-first yang memungkinkan pengembang membuat desain responsif dengan cepat tanpa menulis CSS kustom.
  4. Shadcn/UI
    Kumpulan komponen UI modern dan siap pakai yang dapat dikonfigurasi dan dikustomisasi sesuai kebutuhan menggunakan Tailwind CSS.
  5. Vite
    Alat build modern dan cepat untuk proyek frontend. Vite menawarkan performa unggul dibandingkan dengan bundler tradisional seperti Webpack.
  6. Laravel Vite Plugin
    Plugin resmi dari Laravel untuk mengintegrasikan Vite sebagai alat build frontend di proyek Laravel.
  7. Octane
    Paket Laravel yang digunakan untuk meningkatkan performa aplikasi dengan menggunakan server RoadRunner atau Swoole untuk pemrosesan permintaan yang lebih cepat.
  8. RoadRunner
    Server aplikasi PHP yang digunakan oleh Laravel Octane. RoadRunner dirancang untuk performa tinggi, mengelola worker PHP secara efisien tanpa perlu restart setiap permintaan.
  9. Worker
    Proses yang digunakan oleh Octane (RoadRunner atau Swoole) untuk menjaga aplikasi tetap berjalan dan memproses banyak request tanpa perlu mem-boot ulang framework.
  10. Node.js
    Lingkungan runtime JavaScript yang memungkinkan eksekusi JavaScript di sisi server.
  11. NPM
    Node Package Manager, alat untuk mengelola paket JavaScript yang digunakan dalam proyek frontend.
  12. PostCSS
    Alat yang memungkinkan transformasi CSS dengan plugin, sering digunakan untuk optimasi dan integrasi Tailwind CSS.
  13. Autoprefixer
    Plugin PostCSS yang secara otomatis menambahkan vendor prefix pada CSS untuk memastikan kompatibilitas dengan browser.
  14. Axios
    Library JavaScript untuk membuat HTTP request, sering digunakan untuk komunikasi antara frontend React.js dengan backend Laravel.
  15. React Router DOM
    Paket React yang memungkinkan navigasi antar halaman dalam aplikasi berbasis SPA (Single Page Application).
  16. Supervisor
    Process manager yang digunakan untuk menjalankan layanan seperti Laravel Octane secara otomatis, memastikan layanan tetap berjalan meskipun terjadi crash.
  17. Vite Dev Server
    Server development milik Vite yang memungkinkan pengembangan frontend dengan fitur hot module replacement (HMR) untuk pembaruan cepat di browser.
  18. Production Build
    Proses mengompilasi file frontend menjadi aset yang dioptimalkan untuk performa produksi (misalnya dengan npm run build).
  19. Blade Template
    Mesin templating bawaan Laravel yang digunakan untuk merender tampilan halaman dengan sintaks yang sederhana.
  20. Component
    Bagian kecil dari UI dalam React.js yang bersifat modular dan reusable, seperti tombol, form, atau navigasi.
  21. CSS Utility Classes
    Kelas CSS kecil yang digunakan untuk mengatur styling langsung di HTML, seperti p-4 (padding), text-center, dan flex.
  22. Content Delivery Network (CDN)
    Jaringan server yang digunakan untuk mendistribusikan aset statis (CSS, JS, gambar) agar lebih cepat diakses oleh pengguna.
  23. Proxy Pass
    Direktif dalam Nginx yang meneruskan request dari Nginx ke aplikasi Laravel Octane yang berjalan di port tertentu, seperti 127.0.0.1:8000.
  24. Environment File (.env)
    File konfigurasi di Laravel yang menyimpan variabel lingkungan, seperti host, port, atau kunci keamanan.
  25. Caching
    Proses menyimpan data sementara untuk meningkatkan performa aplikasi. Misalnya, konfigurasi, route, dan tampilan dalam Laravel dapat di-cache.