| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- ---
- sidebar_position: 3
- title: "🕸️ Network Diagrams"
- ---
- Here, we provide clear and structured diagrams to help you understand how various components of the network interact within different setups. This documentation is designed to assist both macOS/Windows and Linux users. Each scenario is illustrated using Mermaid diagrams to show how the interactions are set up depending on the different system configurations and deployment strategies.
- ## Mac OS/Windows Setup Options 🖥️
- ### Ollama on Host, Open WebUI in Container
- In this scenario, `Ollama` runs directly on the host machine while `Open WebUI` operates within a Docker container.
- ```mermaid
- C4Context
- Boundary(b0, "Hosting Machine - Mac OS/Windows") {
- Person(user, "User")
- Boundary(b1, "Docker Desktop's Linux VM") {
- Component(openwebui, "Open WebUI", "Listening on port 8080")
- }
- Component(ollama, "Ollama", "Listening on port 11434")
- }
- Rel(openwebui, ollama, "Makes API calls via Docker proxy", "http://host.docker.internal:11434")
- Rel(user, openwebui, "Makes requests via exposed port -p 3000:8080", "http://localhost:3000")
- UpdateRelStyle(user, openwebui, $offsetX="-100", $offsetY="-50")
- ```
- ### Ollama and Open WebUI in Compose Stack
- Both `Ollama` and `Open WebUI` are configured within the same Docker Compose stack, simplifying network communications.
- ```mermaid
- C4Context
- Boundary(b0, "Hosting Machine - Mac OS/Windows") {
- Person(user, "User")
- Boundary(b1, "Docker Desktop's Linux VM") {
- Boundary(b2, "Compose Stack") {
- Component(openwebui, "Open WebUI", "Listening on port 8080")
- Component(ollama, "Ollama", "Listening on port 11434")
- }
- }
- }
- Rel(openwebui, ollama, "Makes API calls via inter-container networking", "http://ollama:11434")
- Rel(user, openwebui, "Makes requests via exposed port -p 3000:8080", "http://localhost:3000")
- UpdateRelStyle(user, openwebui, $offsetX="-100", $offsetY="-50")
- ```
- ### Ollama and Open WebUI, Separate Networks
- Here, `Ollama` and `Open WebUI` are deployed in separate Docker networks, potentially leading to connectivity issues.
- ```mermaid
- C4Context
- Boundary(b0, "Hosting Machine - Mac OS/Windows") {
- Person(user, "User")
- Boundary(b1, "Docker Desktop's Linux VM") {
- Boundary(b2, "Network A") {
- Component(openwebui, "Open WebUI", "Listening on port 8080")
- }
- Boundary(b3, "Network B") {
- Component(ollama, "Ollama", "Listening on port 11434")
- }
- }
- }
- Rel(openwebui, ollama, "Unable to connect")
- Rel(user, openwebui, "Makes requests via exposed port -p 3000:8080", "http://localhost:3000")
- UpdateRelStyle(user, openwebui, $offsetX="-100", $offsetY="-50")
- ```
- ### Open WebUI in Host Network
- In this configuration, `Open WebUI` utilizes the host network, which impacts its ability to connect in certain environments.
- ```mermaid
- C4Context
- Boundary(b0, "Hosting Machine - Mac OS/Windows") {
- Person(user, "User")
- Boundary(b1, "Docker Desktop's Linux VM") {
- Component(openwebui, "Open WebUI", "Listening on port 8080")
- }
- }
- Rel(user, openwebui, "Unable to connect, host network is the VM's network")
- UpdateRelStyle(user, openwebui, $offsetX="-100", $offsetY="-50")
- ```
- ## Linux Setup Options 🐧
- ### Ollama on Host, Open WebUI in Container (Linux)
- This diagram is specific to the Linux platform, with `Ollama` running on the host and `Open WebUI` deployed inside a Docker container.
- ```mermaid
- C4Context
- Boundary(b0, "Hosting Machine - Linux") {
- Person(user, "User")
- Boundary(b1, "Container Network") {
- Component(openwebui, "Open WebUI", "Listening on port 8080")
- }
- Component(ollama, "Ollama", "Listening on port 11434")
- }
- Rel(openwebui, ollama, "Makes API calls via Docker proxy", "http://host.docker.internal:11434")
- Rel(user, openwebui, "Makes requests via exposed port -p 3000:8080", "http://localhost:3000")
- UpdateRelStyle(user, openwebui, $offsetX="-100", $offsetY="-50")
- ```
- ### Ollama and Open WebUI in Compose Stack (Linux)
- A set-up where both `Ollama` and `Open WebUI` reside within the same Docker Compose stack, allowing for straightforward networking on Linux.
- ```mermaid
- C4Context
- Boundary(b0, "Hosting Machine - Linux") {
- Person(user, "User")
- Boundary(b1, "Container Network") {
- Boundary(b2, "Compose Stack") {
- Component(openwebui, "Open WebUI", "Listening on port 8080")
- Component(ollama, "Ollama", "Listening on port 11434")
- }
- }
- }
- Rel(openwebui, ollama, "Makes API calls via inter-container networking", "http://ollama:11434")
- Rel(user, openwebui, "Makes requests via exposed port -p 3000:8080", "http://localhost:3000")
- UpdateRelStyle(user, openwebui, $offsetX="-100", $offsetY="-50")
- ```
- ### Ollama and Open WebUI, Separate Networks (Linux)
- A scenario in which `Ollama` and `Open WebUI` are in different Docker networks under a Linux environment, which could hinder connectivity.
- ```mermaid
- C4Context
- Boundary(b0, "Hosting Machine - Linux") {
- Person(user, "User")
- Boundary(b2, "Container Network A") {
- Component(openwebui, "Open WebUI", "Listening on port 8080")
- }
- Boundary(b3, "Container Network B") {
- Component(ollama, "Ollama", "Listening on port 11434")
- }
- }
- Rel(openwebui, ollama, "Unable to connect")
- Rel(user, openwebui, "Makes requests via exposed port -p 3000:8080", "http://localhost:3000")
- UpdateRelStyle(user, openwebui, $offsetX="-100", $offsetY="-50")
- ```
- ### Open WebUI in Host Network, Ollama on Host (Linux)
- An optimal layout where both `Open WebUI` and `Ollama` use the host’s network, facilitating seamless interaction on Linux systems.
- ```mermaid
- C4Context
- Boundary(b0, "Hosting Machine - Linux") {
- Person(user, "User")
- Component(openwebui, "Open WebUI", "Listening on port 8080")
- Component(ollama, "Ollama", "Listening on port 11434")
- }
- Rel(openwebui, ollama, "Makes API calls via localhost", "http://localhost:11434")
- Rel(user, openwebui, "Makes requests via listening port", "http://localhost:8080")
- UpdateRelStyle(user, openwebui, $offsetX="-100", $offsetY="-50")
- ```
- Each setup addresses different deployment strategies and networking configurations to help you choose the best layout for your requirements.
|