# morketh/ci-tools-install architecture

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

- Interactive diagram: https://gitdiagram.com/morketh/ci-tools-install
- Repository: https://github.com/morketh/ci-tools-install

## Overview

CI-Tools is a collection of system-administration and quality-of-life utilities, not one integrated service. Its sampled Python application presents an interactive installer/package-management flow with user login, program install/removal, and a confirmation menu; the README also describes networking and maintenance utilities. Other scripts are distinct tools for SMART diagnostics, Ollama model pulls, Zabbix onboarding, Git text replacement, recovery, and battery monitoring. Several script capabilities are evident only from their paths, so their internal behavior and connections are not inferred.

Main entry points: [`CIToolsInstall.py`](https://github.com/morketh/ci-tools-install/blob/master/CIToolsInstall.py) (Installer entrypoint), [`progs.py`](https://github.com/morketh/ci-tools-install/blob/master/progs.py) (Program manager), [`scripts/Ollama/pull_ollama_models.py`](https://github.com/morketh/ci-tools-install/blob/master/scripts/Ollama/pull_ollama_models.py) (Model puller), [`users.py`](https://github.com/morketh/ci-tools-install/blob/master/users.py) (User login)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interactive["Interactive installer"]
  node_installer["Installer entrypoint<br/>[CIToolsInstall.py]"]
  node_programs["Program manager<br/>[progs.py]"]
  node_textmenu["Confirmation menu<br/>[menu.py]"]
  node_account["User login<br/>[users.py]"]
end

subgraph group_system["System configuration"]
  node_network["IP configuration<br/>[progs.py]"]
end

subgraph group_diagnostics["Diagnostics and recovery"]
  node_smart["SMART diagnostics<br/>[SMART_stats.py]"]
  node_recovery["Chroot recovery<br/>[auto-chroot.sh]"]
  node_battery["Battery monitor"]
end

subgraph group_integrations["Tool integrations"]
  node_ollama["Model puller"]
  node_model_list["Model list<br/>[LLM_List.conf]"]
  node_zabbix["Zabbix onboarding<br/>[onboarding.sh]"]
  node_git_replace["Git import replacement<br/>[import-replace.sh]"]
end

node_operator(("Operator"))
node_ollama_service["Ollama CLI"]

node_operator -->|"runs"| node_installer
node_operator -->|"enters choices"| node_installer
node_installer -->|"dispatches actions"| node_programs
node_installer -->|"prompts login"| node_account
node_programs -->|"confirms removal"| node_textmenu
node_programs -->|"uses password"| node_account
node_ollama -->|"reads models"| node_model_list
node_ollama -->|"runs pulls"| node_ollama_service

click node_installer "https://github.com/morketh/ci-tools-install/blob/master/CIToolsInstall.py"
click node_programs "https://github.com/morketh/ci-tools-install/blob/master/progs.py"
click node_textmenu "https://github.com/morketh/ci-tools-install/blob/master/menu.py"
click node_account "https://github.com/morketh/ci-tools-install/blob/master/users.py"
click node_network "https://github.com/morketh/ci-tools-install/blob/master/progs.py"
click node_smart "https://github.com/morketh/ci-tools-install/blob/master/scripts/hdd_diags/SMART_stats.py"
click node_recovery "https://github.com/morketh/ci-tools-install/blob/master/scripts/recovery/auto-chroot.sh"
click node_battery "https://github.com/morketh/ci-tools-install/blob/master/scripts/system_tools/batmon"
click node_ollama "https://github.com/morketh/ci-tools-install/blob/master/scripts/Ollama/pull_ollama_models.py"
click node_model_list "https://github.com/morketh/ci-tools-install/blob/master/scripts/Ollama/LLM_List.conf"
click node_zabbix "https://github.com/morketh/ci-tools-install/blob/master/scripts/Zabbix/onboarding.sh"
click node_git_replace "https://github.com/morketh/ci-tools-install/blob/master/scripts/git_tools/import-replace.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_installer,node_programs,node_textmenu,node_account toneBlue
class node_network toneAmber
class node_smart,node_recovery,node_battery toneMint
class node_ollama,node_model_list,node_zabbix,node_git_replace toneRose
class node_operator,node_ollama_service toneIndigo
```

## Components

### Interactive installer

- [Installer entrypoint](https://github.com/morketh/ci-tools-install/blob/master/CIToolsInstall.py): `CIToolsInstall.py`
- [Program manager](https://github.com/morketh/ci-tools-install/blob/master/progs.py): `progs.py`
- [Confirmation menu](https://github.com/morketh/ci-tools-install/blob/master/menu.py): `menu.py`
- [User login](https://github.com/morketh/ci-tools-install/blob/master/users.py): `users.py`

### System configuration

- [IP configuration](https://github.com/morketh/ci-tools-install/blob/master/progs.py): `progs.py`

### Diagnostics and recovery

- [SMART diagnostics](https://github.com/morketh/ci-tools-install/blob/master/scripts/hdd_diags/SMART_stats.py): `scripts/hdd_diags/SMART_stats.py`
- [Chroot recovery](https://github.com/morketh/ci-tools-install/blob/master/scripts/recovery/auto-chroot.sh): `scripts/recovery/auto-chroot.sh`
- [Battery monitor](https://github.com/morketh/ci-tools-install/blob/master/scripts/system_tools/batmon): `scripts/system_tools/batmon`

### Tool integrations

- [Model puller](https://github.com/morketh/ci-tools-install/blob/master/scripts/Ollama/pull_ollama_models.py): `scripts/Ollama/pull_ollama_models.py`
- [Model list](https://github.com/morketh/ci-tools-install/blob/master/scripts/Ollama/LLM_List.conf): `scripts/Ollama/LLM_List.conf`
- [Zabbix onboarding](https://github.com/morketh/ci-tools-install/blob/master/scripts/Zabbix/onboarding.sh): `scripts/Zabbix/onboarding.sh`
- [Git import replacement](https://github.com/morketh/ci-tools-install/blob/master/scripts/git_tools/import-replace.sh): `scripts/git_tools/import-replace.sh`

### Other components

- **Operator**
- **Ollama CLI**

## Connections

- Operator → Installer entrypoint: runs (evidence: `CIToolsInstall.py`)
- Operator → Installer entrypoint: enters choices (evidence: `CIToolsInstall.py`)
- Installer entrypoint → Program manager: dispatches actions (evidence: `CIToolsInstall.py`)
- Installer entrypoint → User login: prompts login (evidence: `CIToolsInstall.py`)
- Program manager → Confirmation menu: confirms removal (evidence: `progs.py`)
- Program manager → User login: uses password (evidence: `progs.py`)
- Model puller → Model list: reads models (evidence: `scripts/Ollama/pull_ollama_models.py`)
- Model puller → Ollama CLI: runs pulls (evidence: `scripts/Ollama/pull_ollama_models.py`)
