feat: Docker Compose setup untuk development & production
- docker/php/Dockerfile: PHP 8.4-FPM + GD + imagick (PECL) + semua extension Laravel - docker/php/php.ini: upload 20MB, memory 512MB, opcache, Asia/Kuala_Lumpur - docker/php/php-dev.ini: validate_timestamps=1, display_errors=On (dev) - docker/nginx/default.conf: gzip, security headers, static asset caching - docker/entrypoint.sh: tunggu MySQL → migrate → seed AdminSeeder → cache (prod) - docker-compose.yml: dev stack — port 8003, DB host 33060, queue worker - docker-compose.prod.yml: production overrides — storage volume, no DB port exposed - .env.docker: template env untuk Docker (DB_HOST=db) - .dockerignore: exclude node_modules, vendor, .env, logs fix: testGenerate try/catch kembalikan JSON error (bukan HTML 500) fix: loadPreview() semak r.ok, tunjuk error alert, loading spinner Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
65
.env.docker
Normal file
65
.env.docker
Normal file
@@ -0,0 +1,65 @@
|
||||
# ──────────────────────────────────────────────────────────────────────────────
|
||||
# eCert MBIP — Contoh .env untuk Docker
|
||||
# Salin ke .env dan ubah nilai yang perlu:
|
||||
# cp .env.docker .env
|
||||
# ──────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
APP_NAME="eCert MBIP"
|
||||
APP_ENV=local
|
||||
APP_KEY=
|
||||
APP_DEBUG=true
|
||||
# PENTING: Tukar ke domain sebenar untuk production
|
||||
# Contoh: APP_URL=https://ecert.mbip.gov.my
|
||||
APP_URL=http://localhost:8003
|
||||
|
||||
APP_LOCALE=ms
|
||||
APP_FALLBACK_LOCALE=ms
|
||||
APP_FAKER_LOCALE=ms_MY
|
||||
|
||||
APP_MAINTENANCE_DRIVER=file
|
||||
|
||||
BCRYPT_ROUNDS=12
|
||||
|
||||
LOG_CHANNEL=stack
|
||||
LOG_STACK=single
|
||||
LOG_DEPRECATIONS_CHANNEL=null
|
||||
# Production: guna level "warning" atau "error"
|
||||
LOG_LEVEL=debug
|
||||
|
||||
# ── Database ──────────────────────────────────────────────────────────────────
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=db # nama service dalam docker-compose.yml
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=ecert_mbip
|
||||
DB_USERNAME=ecert
|
||||
# Tukar password ini!
|
||||
DB_PASSWORD=ecert_secret_2025
|
||||
|
||||
# ── Session ───────────────────────────────────────────────────────────────────
|
||||
SESSION_DRIVER=database
|
||||
SESSION_LIFETIME=120
|
||||
SESSION_ENCRYPT=false
|
||||
SESSION_PATH=/
|
||||
SESSION_DOMAIN=null
|
||||
|
||||
# ── Cache & Queue (guna database — tiada Redis diperlukan) ────────────────────
|
||||
BROADCAST_CONNECTION=log
|
||||
FILESYSTEM_DISK=local
|
||||
QUEUE_CONNECTION=database
|
||||
CACHE_STORE=database
|
||||
|
||||
# ── Mail ──────────────────────────────────────────────────────────────────────
|
||||
# Dev: guna "log" untuk lihat email dalam storage/logs/laravel.log
|
||||
# Production: tukar ke SMTP
|
||||
MAIL_MAILER=log
|
||||
MAIL_SCHEME=null
|
||||
MAIL_HOST=smtp.mbip.gov.my
|
||||
MAIL_PORT=587
|
||||
MAIL_USERNAME=null
|
||||
MAIL_PASSWORD=null
|
||||
MAIL_ENCRYPTION=tls
|
||||
MAIL_FROM_ADDRESS="ecert@mbip.gov.my"
|
||||
MAIL_FROM_NAME="eCert MBIP"
|
||||
|
||||
# ── Vite ──────────────────────────────────────────────────────────────────────
|
||||
VITE_APP_NAME="${APP_NAME}"
|
||||
Reference in New Issue
Block a user