Daily Sacheton Barta newspaper runtime architecture

Daily Sacheton Barta newspaper runtime architecture An architecture diagram generated by Archify. Reader · Browser · Architecture component Reader Browser Newsroom staff · Filament admin · Architecture component Newsroom staff Filament admin Next.js 15 (App Router) · static export / SSG · Docker Compose network: laravel (bridge) · React 19 Next.js 15 (App Router) static export / SSG React 19 Nginx · edge :80 → php-fpm · Docker Compose network: laravel (bridge) › Public trust boundary Nginx edge :80 → php-fpm Laravel 12 API · PHP 8.3 + Filament · Docker Compose network: laravel (bridge) › Internal trust boundary · routes/api/v1.php Laravel 12 API PHP 8.3 + Filament routes/api/v1.php MySQL 8 · laravel_boilerplate · Docker Compose network: laravel (bridge) › Internal trust boundary MySQL 8 laravel_boilerplate Redis 7 · cache / queue / session · Docker Compose network: laravel (bridge) › Internal trust boundary Redis 7 cache / queue / session Mailpit · SMTP :1025 / UI :8025 · Docker Compose network: laravel (bridge) › Public trust boundary Mailpit SMTP :1025 / UI :8025 phpMyAdmin · DB UI :8080 · Docker Compose network: laravel (bridge) › Public trust boundary phpMyAdmin DB UI :8080 AI providers · OpenAI · Gemini · Cohere · Docker Compose network: laravel (bridge) · config/ai.php AI providers OpenAI · Gemini · Cohere config/ai.php HTTPS (static HTML) HTTPS admin + API /api/v1/* fetch FastCGI Eloquent / SQL cache + sessions + queue SMTP :1025 HTTPS to provider SDK MySQL protocol Docker Compose network: laravel (bridge) Public trust boundary Internal trust boundary Legend Frontend Backend Database Cloud External

Public site (Next.js SSG)

  • • Reader hits statically-exported HTML/JS at :8000
  • • Build-time and client fetches both hit /api/v1 (SSG at build, ticker/ads/view counts at runtime)
  • • Locale routing ([bn]/[en]), article/video/archive/search
  • • Tracking + AdSense scripts injected per layout

Backend runtime (Laravel 12 / PHP 8.3)

  • • routes/api/v1.php: 18 controllers (Article, Home, Site, Ad, Poll, Search, Tag, Geo, Feed, Weather, Video, BreakingNews, Language, Translation, Page, Archive, Campaign)
  • • Filament admin for newsroom CRUD on every model
  • • Sanctum auth for /api/v1/user; throttling on poll votes
  • • Queue worker via Redis for ProcessUploadedVideo job

Data layer

  • • MySQL 8 primary store seeded from laravel_boilerplate.sql on first boot
  • • db-init sidecar creates the *_test database used by PHPUnit
  • • Redis 7 backs cache, sessions, and the queue
  • • Persistent volumes: mysql-data, redis-data

Local ops surface

  • • Nginx fronts PHP-FPM and the public Laravel site
  • • phpMyAdmin at :8080 for manual SQL inspection
  • • Mailpit at :8025 captures every outbound email
  • • AUTO_MIGRATE runs on container boot for fresh clones

External dependencies

  • • AI providers: OpenAI (default), Gemini (image), Cohere (rerank), Anthropic, Mistral, Groq, xAI, DeepSeek, OpenRouter
  • • laravel/ai SDK configured in config/ai.php
  • • Provider keys read from .env (never committed)

Trust boundaries

  • • Public edge: host browser → host port 8000/8080/8025
  • • Internal Docker network 'laravel' isolates services
  • • Cross-boundary traffic terminates at Nginx or the SDK client
  • • Filament admin auth is the only authenticated entry point