Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
3b927d9
wip: initial draft of arch diagram
jeff-matthews Jun 26, 2026
19e78c4
refactor: created v2 arch diagram
jeff-matthews Jul 2, 2026
bcbbccb
docs: revise intro
jeff-matthews Jul 2, 2026
4099d61
style: remove background color from connector labels
jeff-matthews Jul 2, 2026
578fbbd
style: use light/dark mode colors for connector labels
jeff-matthews Jul 2, 2026
589e63a
fix: light/dark mode colors for connector labels
jeff-matthews Jul 2, 2026
195824a
fix: diagram text
jeff-matthews Jul 2, 2026
d9e3ff8
fix: diagram colors
jeff-matthews Jul 2, 2026
fd4483a
fix: revert to dual mode color
jeff-matthews Jul 2, 2026
1a215c8
fix: send primary containers to back
jeff-matthews Jul 2, 2026
eb84afd
test: disable transparent background on export
jeff-matthews Jul 2, 2026
5359fa6
test: revert non-transparent background
jeff-matthews Jul 2, 2026
6648caa
test: white/black user-defined
jeff-matthews Jul 2, 2026
7d2d3ac
test: one container text white/black user-defined
jeff-matthews Jul 2, 2026
e326a8a
test: move container label to convas
jeff-matthews Jul 2, 2026
39f42c7
revert test
jeff-matthews Jul 2, 2026
51a4534
test: clear formatting on container labels
jeff-matthews Jul 2, 2026
ef40e2b
test: re-export svg
jeff-matthews Jul 2, 2026
b813774
test: re-export svg w/ cleared formatting on container labels
jeff-matthews Jul 2, 2026
dd18b3b
test: white/black background for container label text
jeff-matthews Jul 2, 2026
d2573fb
test: white/black for font
jeff-matthews Jul 2, 2026
1373cab
test: re-export svg
jeff-matthews Jul 2, 2026
5a044e1
test: convert labels to svg
jeff-matthews Jul 2, 2026
0a13618
feat: added v3 diagram
jeff-matthews Jul 2, 2026
6ae2b63
fix: export diagram only; not empty page canvas
jeff-matthews Jul 2, 2026
414c18e
feat: added v4 diagram
jeff-matthews Jul 2, 2026
653ab71
docs: apply suggestions from review
jeff-matthews Jul 2, 2026
f6107a4
fix: remove background from labels
jeff-matthews Jul 2, 2026
14b0222
fix: align containers
jeff-matthews Jul 2, 2026
7882787
feat: add notes to legend
jeff-matthews Jul 2, 2026
4be363f
fix: protocol
jeff-matthews Jul 2, 2026
38234e7
fix: notes
jeff-matthews Jul 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 23 additions & 4 deletions docs/on-premises/architecture.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,37 @@ On-premises deployments of BloodHound Enterprise give you full control over your

## Deployment architecture

On-premises deployments of BloodHound Enterprise consist of two primary parts:
An on-premises deployment of BloodHound Enterprise centers on a dedicated host that runs the application stack and one or more separate collector hosts that gather identity data from your environment.

- **BloodHound Enterprise host** - Runs the BloodHound application, database, and supporting infrastructure
- **Collector hosts** - Run lightweight collector services (SharpHound, AzureHound, or OpenHound) to gather data from your identity infrastructure
<Note>
The following diagram shows where the components run and how collected data moves toward BloodHound Enterprise. The sections that follow the diagram describe the components and data flow in more detail.
</Note>

<img
src="/images/on-premises/on-prem-architecture-diagram.drawio.svg"
alt="A diagram showing the architecture of an on-premises deployment of BloodHound Enterprise"
/>



<AccordionGroup>
<Accordion title="Who initiates the connection?">
Data flows toward BloodHound Enterprise, but the collector initiates every session. The collector pulls data from your environment and then sends the results to BloodHound Enterprise.
</Accordion>
<Accordion title="Does this create inbound risk for domain controllers?">
No. The inbound rules in an on-premises deployment apply to the BloodHound Enterprise host, not to your domain controllers.

Communication with domain controllers is outbound from a collector that you own, using services and ports that your domain controllers already expose. From a firewall perspective, this typically looks like read-only collector traffic to domain services plus a single HTTPS (`443`) egress path to BloodHound Enterprise.
</Accordion>
</AccordionGroup>

### Core components

All on-premises deployments include the following core application components:

| Component | Purpose |
|-----------|---------|
| **BloodHound Enterprise API** | Application server, UI, graph analysis, and collector ingestion |
| **BloodHound Enterprise** | Application server, REST API, user interface (UI), graph analysis, and collector ingestion |
| **PostgreSQL 18.x** | Database server for application data and graph storage |

### Deployment-specific components
Expand Down
Loading