# vojakis/cloudflare-tools architecture

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

- Interactive diagram: https://gitdiagram.com/vojakis/cloudflare-tools
- Repository: https://github.com/vojakis/cloudflare-tools

## Overview

This is a small shell-based Cloudflare DNS updater. Its documented workflow is to check for public-IP changes at a configured interval and update a DNS record through Cloudflare; the README also identifies icanhazip.com as the fastest tested IP provider. The tree and README do not establish which scripts call one another or which provider the runtime uses, so those connections are omitted. Paths below are taken from the tree; source excerpts were unavailable.

## Diagram (Mermaid)

```mermaid
flowchart TD

node_operator(("Operator"))
node_main["Main script<br/>[main.sh]"]
node_ip_getter["IP getter<br/>[get-ip.sh]"]
node_interval["Check interval<br/>[next-check.sh]"]
node_cloudflare_updater["DNS updater"]
node_ip_service["Public IP service"]
node_cloudflare["Cloudflare API"]

click node_main "https://github.com/vojakis/cloudflare-tools/blob/main/main.sh"
click node_ip_getter "https://github.com/vojakis/cloudflare-tools/blob/main/get-ip.sh"
click node_interval "https://github.com/vojakis/cloudflare-tools/blob/main/next-check.sh"
click node_cloudflare_updater "https://github.com/vojakis/cloudflare-tools/blob/main/update-cloudflare.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_operator,node_ip_service toneIndigo
class node_main,node_ip_getter,node_interval,node_cloudflare_updater toneTeal
class node_cloudflare toneMint
```

## Components

### Other components

- **Operator**
- [Main script](https://github.com/vojakis/cloudflare-tools/blob/main/main.sh): `main.sh`
- [IP getter](https://github.com/vojakis/cloudflare-tools/blob/main/get-ip.sh): `get-ip.sh`
- [Check interval](https://github.com/vojakis/cloudflare-tools/blob/main/next-check.sh): `next-check.sh`
- [DNS updater](https://github.com/vojakis/cloudflare-tools/blob/main/update-cloudflare.sh): `update-cloudflare.sh`
- **Public IP service**
- **Cloudflare API**
