Skip to content


The application consists of four interconnected services:

  • A static website
  • A MongoDB database
  • A Caddy web server

These services communicate via internal networks defined in docker-compose.yaml. The Caddy web server acts as the entry point, exposing HTTP (port 80) and HTTPS (port 443) to the host machine. API requests (/api/*) are forwarded to the api container, while other requests are proxied to the web container. The web container serves built static files, if available, or the single-page app otherwise.