Manga reader platform — Laravel 13, Blade, Tailwind CSS v3.
Live at mangava.rf.gd .
Backend: Laravel 13.x, PHP 8.3
Frontend: Blade + Tailwind CSS v3 (Poppins / Righteous)
Assets: Vite
Database: MySQL (InfinityFree), SQLite (:memory: for tests)
Queue / Session / Cache: Database driver (local), File driver (production)
Auth: Breeze (Blade) — email/password only
All manga data comes from EnKomik API (api.enreader.web.id).
Data is fetched live on each page visit — no local import needed.
Only UUID-format manga IDs (source: shngm) are supported.
cp .env.example .env
composer install
npm install
php artisan key:generate
php artisan migrate
php artisan storage:link
npm run build
Command
Purpose
npm run dev
Vite dev server
npm run build
Build production assets
php artisan serve
Start dev server
php artisan migrate
Run migrations
composer run dev
Dev server + queue + logs + Vite concurrently
composer run test
config:clear then php artisan test
Variable
Description
ENKOMIK_API_URL
EnKomik API base URL (default: https://api.enreader.web.id/api/manga)
APP_URL
App URL (set empty for relative asset URLs)
Deployment (InfinityFree)
npm run build
Run deploy/prepare.ps1 for production env + caching
Upload all files via FTP (exclude node_modules/, .git/, deploy/, tests/, .env.example, README.md)
Set document root to mangava/public
Visit /setup/run/mangava-deploy-2026 for migrations + cache clear
Set cron: php /path/to/mangava/artisan schedule:run every minute
URL
Description
/mangava
Browse, search, genre shelves
/mangava/manga/{id}
Manga detail + chapter list
/mangava/tm/read/{slug}/{chapter}
Reader with image proxy
/mangava/md-img?url=
Image proxy (whitelist: cdn hosts)
/login / /register
Auth (email only)
/history / /favorites
Reading history & favorites (auth)
/about / /support
Static info pages
Favorites — toggle favorite from detail page, view list with reading progress
Reading History — auto-tracked on each chapter view
Image Proxy — /md-img?url= for CORS-safe image serving
PDF Download — single-file chapter download via jsPDF
PWA — installable via service worker + manifest
Genre Shelves — curated genre-based sections on homepage
Search — with sort by rating / popular / latest
Always use route(..., false) for media URLs to avoid http://localhost in production.
Image proxy only allows whitelisted CDN hosts; others return placeholder SVG.
Session/Cache use file driver on InfinityFree (not database).