# banterboy/digitaltak architecture

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

- Interactive diagram: https://gitdiagram.com/banterboy/digitaltak
- Repository: https://github.com/banterboy/digitaltak

## Overview

DigitalTAK automates deployment and operations for a Rocky Linux TAK Server, with PowerShell modules, Bash installation scripts, and team-onboarding tools. The primary workflow provisions a Hyper-V deployment, installs and configures TAK Server, then supports certificate and user onboarding that produces per-user ATAK packages. The README also documents server REST management, teardown, Openfire chat, and optional Let's Encrypt TLS. Relationships below are limited to those explicitly described in the README; source excerpts were not provided, so internal call details are not inferred.

Main entry points: [`TAKOnboarding/Public/Invoke-TAKOnboarding.ps1`](https://github.com/banterboy/digitaltak/blob/prod/TAKOnboarding/Public/Invoke-TAKOnboarding.ps1) (Onboarding Orchestrator), [`Deploy-TAKServer.ps1`](https://github.com/banterboy/digitaltak/blob/prod/Deploy-TAKServer.ps1) (Deployment Script), [`InstallShellScripts/RL9_tak5.7r8_install.sh`](https://github.com/banterboy/digitaltak/blob/prod/InstallShellScripts/RL9_tak5.7r8_install.sh) (Bash Installer), [`InstallShellScripts/createTakCerts.sh`](https://github.com/banterboy/digitaltak/blob/prod/InstallShellScripts/createTakCerts.sh) (CA and Cert Creation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_deployment["Deployment"]
  node_deployentry["Deployment Script"]
  node_hyperv["Hyper-V VM"]
  node_deploymodule["VM Deployment Module"]
  node_teardown["CivTAK Teardown<br/>[Remove-CivTAK.ps1]"]
end

subgraph group_serverops["Server Operations"]
  node_bashinstall["Bash Installer"]
  node_takserver["TAK Server"]
  node_certcreation["CA and Cert Creation<br/>[createTakCerts.sh]"]
  node_openfire["Openfire Chat Setup"]
  node_letsencrypt["Let's Encrypt Setup"]
end

subgraph group_onboarding["Team Onboarding"]
  node_onboardingentry["Onboarding Entry"]
  node_onboardingmodule["Onboarding Orchestrator"]
  node_server["Remote TAK Server"]
  node_workstation["Windows Workstation"]
  node_packages["ATAK Data Packages"]
end

subgraph group_api["Server API"]
  node_restmodule["REST API Cmdlets"]
  node_restserver["TAK Server REST API"]
end

node_operator(("Operator"))

node_operator -->|"runs"| node_deployentry
node_deployentry -->|"deploys to"| node_hyperv
node_operator -->|"uses"| node_deploymodule
node_operator -->|"runs"| node_bashinstall
node_bashinstall -->|"installs"| node_takserver
node_operator -->|"runs"| node_certcreation
node_certcreation -->|"configures"| node_takserver
node_operator -.->|"optionally runs"| node_openfire
node_openfire -.->|"integrates"| node_takserver
node_operator -.->|"optionally runs"| node_letsencrypt
node_letsencrypt -.->|"configures TLS"| node_takserver
node_operator -->|"runs"| node_onboardingentry
node_onboardingentry -->|"invokes"| node_onboardingmodule
node_onboardingmodule -->|"generates certs"| node_server
node_onboardingmodule -->|"downloads certificates"| node_workstation
node_onboardingmodule -->|"creates accounts"| node_server
node_onboardingmodule -->|"builds"| node_packages
node_operator -->|"runs"| node_teardown
node_operator -->|"uses"| node_restmodule
node_restmodule -->|"calls"| node_restserver

click node_deployentry "https://github.com/banterboy/digitaltak/blob/prod/Deploy-TAKServer.ps1"
click node_deploymodule "https://github.com/banterboy/digitaltak/tree/prod/TAKDeploy"
click node_bashinstall "https://github.com/banterboy/digitaltak/blob/prod/InstallShellScripts/RL9_tak5.7r8_install.sh"
click node_certcreation "https://github.com/banterboy/digitaltak/blob/prod/InstallShellScripts/createTakCerts.sh"
click node_openfire "https://github.com/banterboy/digitaltak/blob/prod/InstallShellScripts/openfire_takChat_install.sh"
click node_letsencrypt "https://github.com/banterboy/digitaltak/blob/prod/InstallShellScripts/takserver_createLECerts.sh"
click node_onboardingentry "https://github.com/banterboy/digitaltak/blob/prod/Invoke-TAKOnboarding.ps1"
click node_onboardingmodule "https://github.com/banterboy/digitaltak/blob/prod/TAKOnboarding/Public/Invoke-TAKOnboarding.ps1"
click node_packages "https://github.com/banterboy/digitaltak/blob/prod/TAKOnboarding/Public/New-TAKDataPackage.ps1"
click node_teardown "https://github.com/banterboy/digitaltak/blob/prod/Remove-CivTAK.ps1"
click node_restmodule "https://github.com/banterboy/digitaltak/tree/prod/TAKServerPS"

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_deployentry,node_hyperv,node_deploymodule,node_teardown toneBlue
class node_bashinstall,node_takserver,node_certcreation,node_openfire,node_letsencrypt toneAmber
class node_onboardingentry,node_onboardingmodule,node_server,node_workstation,node_packages toneMint
class node_restmodule,node_restserver toneRose
class node_operator toneIndigo
```

## Components

### Deployment

- [Deployment Script](https://github.com/banterboy/digitaltak/blob/prod/Deploy-TAKServer.ps1): `Deploy-TAKServer.ps1`
- **Hyper-V VM**
- [VM Deployment Module](https://github.com/banterboy/digitaltak/tree/prod/TAKDeploy): `TAKDeploy`
- [CivTAK Teardown](https://github.com/banterboy/digitaltak/blob/prod/Remove-CivTAK.ps1): `Remove-CivTAK.ps1`

### Server Operations

- [Bash Installer](https://github.com/banterboy/digitaltak/blob/prod/InstallShellScripts/RL9_tak5.7r8_install.sh): `InstallShellScripts/RL9_tak5.7r8_install.sh`
- **TAK Server**
- [CA and Cert Creation](https://github.com/banterboy/digitaltak/blob/prod/InstallShellScripts/createTakCerts.sh): `InstallShellScripts/createTakCerts.sh`
- [Openfire Chat Setup](https://github.com/banterboy/digitaltak/blob/prod/InstallShellScripts/openfire_takChat_install.sh): `InstallShellScripts/openfire_takChat_install.sh`
- [Let's Encrypt Setup](https://github.com/banterboy/digitaltak/blob/prod/InstallShellScripts/takserver_createLECerts.sh): `InstallShellScripts/takserver_createLECerts.sh`

### Team Onboarding

- [Onboarding Entry](https://github.com/banterboy/digitaltak/blob/prod/Invoke-TAKOnboarding.ps1): `Invoke-TAKOnboarding.ps1`
- [Onboarding Orchestrator](https://github.com/banterboy/digitaltak/blob/prod/TAKOnboarding/Public/Invoke-TAKOnboarding.ps1): `TAKOnboarding/Public/Invoke-TAKOnboarding.ps1`
- **Remote TAK Server**
- **Windows Workstation**
- [ATAK Data Packages](https://github.com/banterboy/digitaltak/blob/prod/TAKOnboarding/Public/New-TAKDataPackage.ps1): `TAKOnboarding/Public/New-TAKDataPackage.ps1`

### Server API

- [REST API Cmdlets](https://github.com/banterboy/digitaltak/tree/prod/TAKServerPS): `TAKServerPS`
- **TAK Server REST API**

### Other components

- **Operator**

## Connections

- Operator → Deployment Script: runs (evidence: `README.md`)
- Deployment Script → Hyper-V VM: deploys to (evidence: `README.md`)
- Operator → VM Deployment Module: uses (evidence: `README.md`)
- Operator → Bash Installer: runs (evidence: `README.md`)
- Bash Installer → TAK Server: installs (evidence: `README.md`)
- Operator → CA and Cert Creation: runs (evidence: `README.md`)
- CA and Cert Creation → TAK Server: configures (evidence: `README.md`)
- Operator → Openfire Chat Setup: optionally runs (evidence: `README.md`)
- Openfire Chat Setup → TAK Server: integrates (evidence: `README.md`)
- Operator → Let's Encrypt Setup: optionally runs (evidence: `README.md`)
- Let's Encrypt Setup → TAK Server: configures TLS (evidence: `README.md`)
- Operator → Onboarding Entry: runs (evidence: `README.md`)
- Onboarding Entry → Onboarding Orchestrator: invokes (evidence: `README.md`)
- Onboarding Orchestrator → Remote TAK Server: generates certs (evidence: `README.md`)
- Onboarding Orchestrator → Windows Workstation: downloads certificates (evidence: `README.md`)
- Onboarding Orchestrator → Remote TAK Server: creates accounts (evidence: `README.md`)
- Onboarding Orchestrator → ATAK Data Packages: builds (evidence: `README.md`)
- Operator → CivTAK Teardown: runs (evidence: `README.md`)
- Operator → REST API Cmdlets: uses (evidence: `README.md`)
- REST API Cmdlets → TAK Server REST API: calls (evidence: `README.md`)
