Checklist Sebelum Laravel Go Live

Checklist sebelum Laravel go live membantu memastikan aplikasi tidak hanya jalan di laptop, tetapi juga aman dan stabil saat dibuka user sungguhan. Jawaban cepatnya: cek .env production, debug mode, database, migration, Nginx, permission, storage link, queue worker, scheduler, email, HTTPS, backup, dan smoke test fitur utama sebelum domain dibagikan.

Halaman ini cocok dipakai setelah kamu berhasil mengikuti Panduan Deploy Laravel ke Production atau Cara Deploy Laravel ke VPS. Jangan jadikan checklist ini formalitas. Banyak error production Laravel muncul dari hal kecil: .env masih localhost, cache config belum diperbarui, folder storage tidak writable, atau worker queue belum restart.

1. Checklist Environment

Pastikan file .env production bukan salinan mentah dari lokal.

APP_ENV=production
APP_DEBUG=false
APP_URL=https://tokolaravel.com

Cek juga database, mail, cache, queue, session, dan storage. Untuk project yang memakai HTTPS, pastikan cookie aman:

SESSION_SECURE_COOKIE=true

Setelah mengubah .env, jalankan:

php artisan config:clear
php artisan config:cache
php artisan about

Kalau nilai yang tampil masih aneh, jangan lanjut go live. Baca Laravel .env Production: Checklist Aman.

2. Checklist Dependency dan Build

Di server, dependency production harus diinstall tanpa package development:

composer install --no-dev --optimize-autoloader

Jika project memakai Vite atau asset frontend:

npm ci
npm run build

Lalu optimasi Laravel:

php artisan optimize

Jika sedang debugging config atau route, bersihkan cache dulu:

php artisan optimize:clear

Jangan cache konfigurasi yang belum benar.

3. Checklist Database dan Migration

Sebelum migration production, pastikan database yang dituju benar:

php artisan migrate:status

Saat menjalankan migration di production, gunakan:

php artisan migrate --force

--force memberi tahu Laravel bahwa kamu sadar perintah ini berjalan di production. Jangan menjalankan migration besar tanpa backup atau rencana rollback.

Minimal cek:

  • nama database bukan database lokal
  • user database punya permission yang cukup, tetapi tidak berlebihan
  • migration sudah pernah dites di staging atau lokal bersih
  • seed dummy tidak ikut masuk production
  • backup tersedia sebelum perubahan besar

4. Checklist Nginx dan PHP-FPM

Nginx harus mengarah ke folder public:

root /var/www/toko-laravel/public;

Cek konfigurasi:

sudo nginx -t
sudo systemctl status nginx
sudo systemctl status php8.3-fpm

Jika halaman 502 Bad Gateway, cek socket PHP-FPM. Jika route selain homepage 404, cek try_files. Panduan lengkapnya ada di Setup Nginx + PHP-FPM untuk Laravel.

5. Checklist Permission dan Storage

Laravel butuh menulis ke storage dan bootstrap/cache:

sudo chown -R www-data:www-data storage bootstrap/cache
sudo chmod -R ug+rw storage bootstrap/cache

Jika project punya upload file publik:

php artisan storage:link
ls -la public | grep storage

Lalu test URL gambar atau file upload dari browser. Jika upload berhasil tetapi file 404, baca Storage Link Laravel Tidak Jalan di Server. Jika error berisi Permission denied, baca Permission Folder Storage Laravel di Linux.

6. Checklist Queue, Scheduler, dan Redis

Jika project memakai queue, worker harus hidup di background:

sudo supervisorctl status
php artisan queue:failed

Setelah deploy:

php artisan queue:restart

Jika project memakai scheduler, cek cron:

crontab -l
php artisan schedule:list

Cron umum Laravel:

* * * * * cd /var/www/toko-laravel && php artisan schedule:run >> /dev/null 2>&1

Jika project memakai Redis untuk queue atau cache:

redis-cli ping

Output sehat:

PONG

Untuk detail queue, buka Setup Supervisor untuk Queue Laravel dan Setup Redis untuk Queue dan Cache Laravel.

7. Checklist Email, Session, dan Auth

Test fitur yang sering gagal setelah pindah server:

  • login
  • logout
  • register jika ada
  • lupa password
  • verifikasi email
  • form kontak
  • upload avatar atau dokumen

Jika login sering mental atau muncul 419, cek:

APP_URL=https://tokolaravel.com
SESSION_SECURE_COOKIE=true
SESSION_DRIVER=database

Untuk email, jangan biarkan production memakai MAIL_MAILER=log kecuali memang sengaja belum mengirim email sungguhan.

8. Checklist Security Minimum

Minimal sebelum go live:

  • APP_DEBUG=false
  • .env tidak masuk Git
  • domain memakai HTTPS
  • Nginx root ke folder public
  • folder internal tidak bisa dibuka dari browser
  • password database kuat
  • key dan token tidak ditempel di repository
  • backup database tersedia
  • user deploy bukan root jika memungkinkan

Cek apakah .env pernah ter-commit:

git status --short
git ls-files .env

Jika .env muncul sebagai tracked file, hentikan dulu dan bersihkan riwayat sesuai kebutuhan sebelum repository dibagikan.

9. Smoke Test Sebelum Dibagikan

Jalankan smoke test manual:

curl -I https://tokolaravel.com
php artisan about
php artisan migrate:status
php artisan queue:failed
tail -n 50 storage/logs/laravel.log

Buka browser dan cek:

  • homepage tidak error
  • halaman login tampil
  • form utama bisa submit
  • data baru masuk database
  • upload file bisa dibuka lagi
  • email terkirim jika fitur email ada
  • halaman 404 terlihat rapi
  • tidak ada stack trace tampil ke user

Setelah semua sehat, baru bagikan link.

Kesalahan yang Sering Terjadi

Menganggap Website Bisa Dibuka Berarti Sudah Go Live

Homepage yang tampil belum cukup. Banyak bug production baru terlihat saat login, upload, queue, scheduler, email, atau fitur database dipakai.

Lupa Mematikan Debug

Production harus:

APP_DEBUG=false

Jangan menyalakan debug permanen hanya karena sedang mencari error.

Cache Config Masih Membaca Nilai Lama

Jika .env sudah benar tetapi aplikasi tetap salah, jalankan:

php artisan config:clear
php artisan config:cache

Migration Dijalankan Tanpa Backup

Untuk project penting, backup dulu sebelum migration yang mengubah struktur atau data besar.

Queue dan Scheduler Tidak Dites

Queue dan scheduler sering tidak terlihat dari halaman utama. Cek status worker, failed job, cron, dan log.

FAQ

Apakah checklist ini harus dilakukan setiap deploy?

Tidak semuanya. Untuk deploy rutin, gunakan subset yang relevan. Untuk go live pertama atau perubahan besar, jalankan checklist lengkap.

Apakah php artisan optimize wajib?

Tidak wajib, tetapi umum dipakai untuk production. Pastikan konfigurasi sudah benar sebelum menjalankannya.

Kapan boleh menjalankan migration di production?

Saat sudah tahu database yang dituju benar, migration sudah dites, dan ada backup atau rencana rollback untuk perubahan penting.

Apakah perlu staging?

Untuk project belajar, staging mungkin belum wajib. Untuk project client atau aplikasi penting, staging sangat membantu mencegah error langsung ke user.

Apa yang harus dicek pertama jika setelah go live muncul error 500?

Cek storage/logs/laravel.log, Nginx error log, .env, permission folder, dan hasil migration. Jangan mulai dari mengubah kode acak.

Bacaan Terkait