8 containers to 2

October 2025. Full configuration:

  • MySQL
  • Redis
  • Backend
  • Frontend (dev server)
  • Dispatcher
  • Worker
  • Nginx
  • HTML Cache Generator

8 containers. Builds in 10 minutes. Crashes regularly.

Problem

For a demo site this is overkill. Client wants to see - wait 10 minutes for it to come up.

Redis needed for session cache. But can do it in memory.

Dispatcher needed for queues. But can run in the same process.

LITE profile

Two containers: Backend + Nginx.

  • SQLite instead of MySQL (optional)
  • In-memory cache instead of Redis
  • Dispatcher embedded in backend
  • Frontend built statically

Result

Before: 10 minutes startup, 500MB RAM After: 260ms startup, 23MB RAM

When LITE

  • Demo
  • Development
  • Small sites
  • Testing

When full

  • Production with load
  • When Redis is needed (pub/sub, distributed cache)
  • When many background tasks

Switching - one variable in .env. PROFILE=lite or PROFILE=full.

← Back to blog