# bobbysprakoso-upnvj/opencode-9router-docker architecture

> Architecture diagram of the GitHub repository bobbysprakoso-upnvj/opencode-9router-docker, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bobbysprakoso-upnvj/opencode-9router-docker
- Repository: https://github.com/bobbysprakoso-upnvj/opencode-9router-docker

## Overview

This repository is a Docker deployment template for running an isolated OpenCode agent per project behind a shared, persistent 9Router gateway. The documented workflow is: a developer starts the project’s OpenCode container, it sends model requests over the shared Docker network to 9Router, and the gateway routes them through a configured model combo to a cloud provider. The README also documents local dashboard configuration and workspace isolation. Runtime wiring is based on README diagrams and examples; source excerpts were not available to verify the Compose details.

Main entry points: [`examples/opencode/compose.yml`](https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/blob/main/examples/opencode/compose.yml) (OpenCode container), [`examples/9router/compose.yml`](https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/blob/main/examples/9router/compose.yml) (9Router gateway), [`examples/9router`](https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/tree/main/examples/9router) (Model combos), [`examples/opencode/opencode.json`](https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/blob/main/examples/opencode/opencode.json) (OpenCode config)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_agent["Project agents"]
  node_opencode["OpenCode container<br/>[compose.yml]"]
  node_opencode_config["OpenCode config<br/>[opencode.json]"]
end

subgraph group_gateway["Gateway and routing"]
  node_router["9Router gateway<br/>[compose.yml]"]
  node_router_config["Gateway settings"]
  node_combos["Model combos"]
end

subgraph group_infra["Docker infrastructure"]
  node_network["ai-network"]
end

node_developer(("Developer"))
node_browser(("Browser / IDE"))
node_workspace["Project workspace"]
node_providers["Cloud AI providers"]

node_developer -->|"starts per project"| node_opencode
node_developer -->|"opens dashboard"| node_browser
node_browser -->|"configures providers"| node_router
node_opencode_config -->|"configures models"| node_opencode
node_workspace -->|"mounts project"| node_opencode
node_opencode -->|"sends requests"| node_network
node_network -->|"routes requests"| node_router
node_router_config -->|"configures gateway"| node_router
node_router -->|"dispatches model"| node_combos
node_combos -->|"calls provider"| node_providers

click node_opencode "https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/blob/main/examples/opencode/compose.yml"
click node_opencode_config "https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/blob/main/examples/opencode/opencode.json"
click node_router "https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/blob/main/examples/9router/compose.yml"
click node_router_config "https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/tree/main/examples/9router"
click node_combos "https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/tree/main/examples/9router"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_opencode,node_opencode_config,node_browser toneBlue
class node_router,node_router_config,node_combos toneAmber
class node_network toneMint
class node_developer,node_workspace,node_providers toneIndigo
```

## Components

### Project agents

- [OpenCode container](https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/blob/main/examples/opencode/compose.yml): `examples/opencode/compose.yml`
- [OpenCode config](https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/blob/main/examples/opencode/opencode.json): `examples/opencode/opencode.json`

### Gateway and routing

- [9Router gateway](https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/blob/main/examples/9router/compose.yml): `examples/9router/compose.yml`
- [Gateway settings](https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/tree/main/examples/9router): `examples/9router`
- [Model combos](https://github.com/bobbysprakoso-upnvj/opencode-9router-docker/tree/main/examples/9router): `examples/9router`

### Docker infrastructure

- **ai-network**

### Other components

- **Developer**
- **Browser / IDE**
- **Project workspace**
- **Cloud AI providers**

## Connections

- Developer → OpenCode container: starts per project
- Developer → Browser / IDE: opens dashboard
- Browser / IDE → 9Router gateway: configures providers
- OpenCode config → OpenCode container: configures models
- Project workspace → OpenCode container: mounts project
- OpenCode container → ai-network: sends requests
- ai-network → 9Router gateway: routes requests
- Gateway settings → 9Router gateway: configures gateway
- 9Router gateway → Model combos: dispatches model
- Model combos → Cloud AI providers: calls provider
