<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-your-browser-reaches-a-docker-container-fjfrcjhui" -->

---
title: How your browser reaches a Docker container | daily.dev
description: A browser request to a self-hosted app passes through a traffic proxy before reaching any containers. Inside a Docker Compose setup sit a React app, a .NET...
canonical: https://daily.dev/posts/how-your-browser-reaches-a-docker-container-fjfrcjhui
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How your browser reaches a Docker container | daily.dev
og:description: A browser request to a self-hosted app passes through a traffic proxy before reaching any containers. Inside a Docker Compose setup sit a React app, a .NET...
og:url: https://daily.dev/posts/how-your-browser-reaches-a-docker-container-fjfrcjhui
og:image: https://api.daily.dev/og/posts/FJfRCJHUI.png
og:image:alt: How your browser reaches a Docker container
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How your browser reaches a Docker container

**[We Are .NET](https://daily.dev/sources/wearedotnet)** · 1 min read · 0 upvotes · 0 comments

## Summary

A browser request to a self-hosted app passes through a traffic proxy before reaching any containers. Inside a Docker Compose setup sit a React app, a .NET backend, Postgres, and Grafana, none exposed directly outside the VPS. The traffic proxy routes incoming requests to the React app, which uses a bundled Nginx proxy to forward calls to the .NET backend. The same traffic proxy also sets up HTTPS and manages the Let's Encrypt certificate.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/shorts/tCTc8GVPlEs>

## Questions this post answers

### How does a reverse proxy route browser traffic to containers in a Docker Compose setup?

A traffic proxy sits in front of the Docker Compose boundary and is the only component reachable from outside the VPS. It receives incoming browser requests and forwards them to the appropriate container, such as a React frontend, while the backend, database, and observability containers stay unexposed directly to the internet.

_Teams designing proxy-based container networking compare real setups like this on daily.dev._

### How can a React app forward API requests to a .NET backend inside the same Docker setup?

The React application can ship with a packaged Nginx proxy that forwards client-server requests to the .NET backend container. This keeps the backend unreachable directly from outside the VPS while still letting the browser talk to it through the React container's own proxy layer.

_Developers wiring frontend-to-backend communication in Docker track patterns like this on daily.dev._

### How do I set up automatic HTTPS with Let's Encrypt for a self-hosted Docker app?

A traffic proxy placed in front of the Docker containers can handle HTTPS termination and manage the Let's Encrypt certificate automatically, so individual services like the React app or .NET backend never need to handle TLS themselves. All external traffic hits the proxy first, which then routes requests internally over the Docker Compose network.

_Anyone self-hosting apps with automated TLS follows setups like this on daily.dev._

## Similar posts on daily.dev

- [The one Docker container that stopped me from exposing every service](https://daily.dev/posts/the-one-docker-container-that-stopped-me-from-exposing-every-service-i8van1j4d) · XDA Developers · 0 upvotes · 0 comments
- [the web server deployment model breaks at hobby scale](https://daily.dev/posts/the-web-server-deployment-model-breaks-at-hobby-scale-f2vq2xvo3) · Lobsters · 4 upvotes · 3 comments

---

Tags: [#infrastructure](https://daily.dev/tags/infrastructure), [#docker](https://daily.dev/tags/docker), [#system-design](https://daily.dev/tags/system-design)

[View this post on daily.dev](https://daily.dev/posts/how-your-browser-reaches-a-docker-container-fjfrcjhui)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How your browser reaches a Docker container","url":"https://daily.dev/posts/how-your-browser-reaches-a-docker-container-fjfrcjhui","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-your-browser-reaches-a-docker-container-fjfrcjhui"},"datePublished":"2026-11-08T09:49:55.382Z","dateModified":"2026-11-08T09:50:18.334Z","description":"A browser request to a self-hosted app passes through a traffic proxy before reaching any containers. Inside a Docker Compose setup sit a React app, a .NET...","image":"https://i.ytimg.com/vi/tCTc8GVPlEs/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/tCTc8GVPlEs/sddefault.jpg","isAccessibleForFree":true,"articleSection":"We Are .NET","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"We Are .NET","logo":"https://media.daily.dev/image/upload/s--BsnVOa3i--/f_auto/v1718347410/logos/wearedotnet","url":"https://daily.dev/sources/wearedotnet"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/how-your-browser-reaches-a-docker-container-fjfrcjhui","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"infrastructure,docker,system-design","timeRequired":"PT1M","video":{"@type":"VideoObject","name":"How your browser reaches a Docker container","description":"A browser request to a self-hosted app passes through a traffic proxy before reaching any containers. Inside a Docker Compose setup sit a React app, a .NET...","thumbnailUrl":"https://i.ytimg.com/vi/tCTc8GVPlEs/sddefault.jpg","uploadDate":"2026-11-08T09:49:55.382Z","duration":"PT1M","url":"https://api.daily.dev/r/FJfRCJHUI","embedUrl":"https://www.youtube.com/embed/tCTc8GVPlEs"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"We Are .NET","item":"https://daily.dev/sources/wearedotnet"},{"@type":"ListItem","position":3,"name":"How your browser reaches a Docker container"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/how-your-browser-reaches-a-docker-container-fjfrcjhui#faq","mainEntity":[{"@type":"Question","name":"How does a reverse proxy route browser traffic to containers in a Docker Compose setup?","acceptedAnswer":{"@type":"Answer","text":"A traffic proxy sits in front of the Docker Compose boundary and is the only component reachable from outside the VPS. It receives incoming browser requests and forwards them to the appropriate container, such as a React frontend, while the backend, database, and observability containers stay unexposed directly to the internet. Teams designing proxy-based container networking compare real setups like this on daily.dev."}},{"@type":"Question","name":"How can a React app forward API requests to a .NET backend inside the same Docker setup?","acceptedAnswer":{"@type":"Answer","text":"The React application can ship with a packaged Nginx proxy that forwards client-server requests to the .NET backend container. This keeps the backend unreachable directly from outside the VPS while still letting the browser talk to it through the React container's own proxy layer. Developers wiring frontend-to-backend communication in Docker track patterns like this on daily.dev."}},{"@type":"Question","name":"How do I set up automatic HTTPS with Let's Encrypt for a self-hosted Docker app?","acceptedAnswer":{"@type":"Answer","text":"A traffic proxy placed in front of the Docker containers can handle HTTPS termination and manage the Let's Encrypt certificate automatically, so individual services like the React app or .NET backend never need to handle TLS themselves. All external traffic hits the proxy first, which then routes requests internally over the Docker Compose network. Anyone self-hosting apps with automated TLS follows setups like this on daily.dev."}}]}
```

