# razaxq/easytier-manager architecture

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

- Interactive diagram: https://gitdiagram.com/razaxq/easytier-manager
- Repository: https://github.com/razaxq/easytier-manager

## Overview

EasyTier Manager is a single POSIX shell script for installing and operating EasyTier on Linux. Its documented workflow starts with an interactive menu or non-interactive parameters, configures a node, obtains and verifies release artifacts, then installs or updates services; users can also inspect status and control those services. Major branches include TOML and Web-console configuration, uninstall, and optional GUI installation. The README documents these capabilities and integrations, but no source excerpts were available to confirm finer internal call wiring.

Main entry points: [`easytier.sh`](https://github.com/razaxq/easytier-manager/blob/main/easytier.sh) (Manager script)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_configuration["Configuration"]
  node_toml["TOML wizard<br/>[easytier.sh]"]
  node_webconfig["Web configuration<br/>[easytier.sh]"]
  node_tomlfile["TOML config"]
  node_webconsole["Web console"]
end

subgraph group_installation["Installation"]
  node_release["Release selection<br/>[easytier.sh]"]
  node_releaseapi["Release API"]
  node_integrity["SHA-256 verification<br/>[easytier.sh]"]
  node_download["Artifact download<br/>[easytier.sh]"]
  node_mirrors["Download mirrors"]
  node_install["Transactional install<br/>[easytier.sh]"]
end

subgraph group_operations["Operations"]
  node_service["Service lifecycle<br/>[easytier.sh]"]
  node_hostmanager["Host service manager"]
  node_status["Status and overview<br/>[easytier.sh]"]
  node_cli["EasyTier CLI"]
  node_core["EasyTier core"]
  node_uninstall["Uninstall<br/>[easytier.sh]"]
  node_webdaemon["Web daemon"]
  node_webdb[("Web database")]
  node_gui["Optional GUI client"]
end

node_user(("Operator"))
node_manager["Manager script<br/>[easytier.sh]"]

node_user -->|"invokes"| node_manager
node_manager -->|"configures"| node_toml
node_manager -->|"configures"| node_webconfig
node_toml -->|"writes"| node_tomlfile
node_webconfig -->|"joins"| node_webconsole
node_manager -->|"selects"| node_release
node_release -->|"queries"| node_releaseapi
node_manager -->|"verifies"| node_integrity
node_manager -->|"downloads"| node_download
node_download -.->|"tries"| node_mirrors
node_manager -->|"stages and commits"| node_install
node_manager -->|"controls"| node_service
node_service -->|"dispatches"| node_hostmanager
node_manager -->|"reports"| node_status
node_status -->|"queries"| node_cli
node_status -->|"inspects"| node_core
node_manager -->|"removes"| node_uninstall
node_manager -.->|"installs on demand"| node_webdaemon
node_webdaemon -->|"uses"| node_webdb
node_manager -.->|"installs optionally"| node_gui

click node_manager "https://github.com/razaxq/easytier-manager/blob/main/easytier.sh"
click node_toml "https://github.com/razaxq/easytier-manager/blob/main/easytier.sh"
click node_webconfig "https://github.com/razaxq/easytier-manager/blob/main/easytier.sh"
click node_release "https://github.com/razaxq/easytier-manager/blob/main/easytier.sh"
click node_integrity "https://github.com/razaxq/easytier-manager/blob/main/easytier.sh"
click node_download "https://github.com/razaxq/easytier-manager/blob/main/easytier.sh"
click node_install "https://github.com/razaxq/easytier-manager/blob/main/easytier.sh"
click node_service "https://github.com/razaxq/easytier-manager/blob/main/easytier.sh"
click node_status "https://github.com/razaxq/easytier-manager/blob/main/easytier.sh"
click node_uninstall "https://github.com/razaxq/easytier-manager/blob/main/easytier.sh"

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_toml,node_webconfig,node_tomlfile,node_webconsole toneBlue
class node_release,node_releaseapi,node_integrity,node_download,node_mirrors,node_install toneAmber
class node_service,node_hostmanager,node_status,node_cli,node_core,node_uninstall,node_webdaemon,node_webdb,node_gui toneMint
class node_user toneIndigo
class node_manager toneTeal
```

## Components

### Configuration

- [TOML wizard](https://github.com/razaxq/easytier-manager/blob/main/easytier.sh): `easytier.sh`
- [Web configuration](https://github.com/razaxq/easytier-manager/blob/main/easytier.sh): `easytier.sh`
- **TOML config**
- **Web console**

### Installation

- [Release selection](https://github.com/razaxq/easytier-manager/blob/main/easytier.sh): `easytier.sh`
- **Release API**
- [SHA-256 verification](https://github.com/razaxq/easytier-manager/blob/main/easytier.sh): `easytier.sh`
- [Artifact download](https://github.com/razaxq/easytier-manager/blob/main/easytier.sh): `easytier.sh`
- **Download mirrors**
- [Transactional install](https://github.com/razaxq/easytier-manager/blob/main/easytier.sh): `easytier.sh`

### Operations

- [Service lifecycle](https://github.com/razaxq/easytier-manager/blob/main/easytier.sh): `easytier.sh`
- **Host service manager**
- [Status and overview](https://github.com/razaxq/easytier-manager/blob/main/easytier.sh): `easytier.sh`
- **EasyTier CLI**
- **EasyTier core**
- [Uninstall](https://github.com/razaxq/easytier-manager/blob/main/easytier.sh): `easytier.sh`
- **Web daemon**
- **Web database**
- **Optional GUI client**

### Other components

- **Operator**
- [Manager script](https://github.com/razaxq/easytier-manager/blob/main/easytier.sh): `easytier.sh`

## Connections

- Operator → Manager script: invokes
- Manager script → TOML wizard: configures
- Manager script → Web configuration: configures
- TOML wizard → TOML config: writes
- Web configuration → Web console: joins
- Manager script → Release selection: selects
- Release selection → Release API: queries
- Manager script → SHA-256 verification: verifies
- Manager script → Artifact download: downloads
- Artifact download → Download mirrors: tries
- Manager script → Transactional install: stages and commits
- Manager script → Service lifecycle: controls
- Service lifecycle → Host service manager: dispatches
- Manager script → Status and overview: reports
- Status and overview → EasyTier CLI: queries
- Status and overview → EasyTier core: inspects
- Manager script → Uninstall: removes
- Manager script → Web daemon: installs on demand
- Web daemon → Web database: uses
- Manager script → Optional GUI client: installs optionally
