# elcapitanoe/aio-filterlist architecture

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

- Interactive diagram: https://gitdiagram.com/elcapitanoe/aio-filterlist
- Repository: https://github.com/elcapitanoe/aio-filterlist

## Overview

AIO Filter List is a scheduled aggregation and distribution product: it synchronizes community filter subscriptions, publishes standalone mirrors and a deduplicated consolidated list, and reports synchronization telemetry. The README documents the overall pipeline and daily cadence; source excerpts were unavailable, so edges show only those documented relationships rather than assumed script-level calls.

Main entry points: [`filters`](https://github.com/elcapitanoe/aio-filterlist/tree/main/filters) (Standalone lists), [`AIO_Filter_List.txt`](https://github.com/elcapitanoe/aio-filterlist/blob/main/AIO_Filter_List.txt) (Consolidated list), [`scripts/fetch_filters.sh`](https://github.com/elcapitanoe/aio-filterlist/blob/main/scripts/fetch_filters.sh) (Fetch filters), [`scripts/update_readme.sh`](https://github.com/elcapitanoe/aio-filterlist/blob/main/scripts/update_readme.sh) (Update telemetry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_inputs["Filter inputs"]
  node_source_config["Source registry<br/>[sources.txt]"]
  node_standalone["Standalone lists"]
end

subgraph group_pipeline["Aggregation pipeline"]
  node_fetch["Fetch filters<br/>[fetch_filters.sh]"]
  node_merge["Merge and dedupe<br/>[merge_filters.sh]"]
  node_validate["Rule validation<br/>[validate.sh]"]
end

subgraph group_delivery["Published outputs"]
  node_combined["Consolidated list"]
  node_mirrors["CDN mirrors"]
end

subgraph group_telemetry["Build telemetry"]
  node_readme_update["Update telemetry<br/>[update_readme.sh]"]
  node_readme["Source table and stats<br/>[README.md]"]
end

node_scheduler["Daily sync<br/>[sync-filters.yml]"]
node_upstream(("Upstream lists"))
node_subscribers(("Filter subscribers"))

node_scheduler -->|"triggers daily sync"| node_fetch
node_source_config -->|"supplies sources"| node_fetch
node_upstream -->|"provides lists"| node_fetch
node_fetch -->|"saves lists"| node_standalone
node_standalone -->|"supplies rules"| node_merge
node_merge -->|"writes deduplicated list"| node_combined
node_combined -->|"validates output"| node_validate
node_readme_update -->|"publishes telemetry"| node_readme
node_standalone -->|"reports sync data"| node_readme_update
node_combined -->|"reports build metrics"| node_readme_update
node_combined -->|"served by"| node_mirrors
node_standalone -->|"served by"| node_mirrors
node_subscribers -->|"subscribe via"| node_mirrors

click node_scheduler "https://github.com/elcapitanoe/aio-filterlist/blob/main/.github/workflows/sync-filters.yml"
click node_source_config "https://github.com/elcapitanoe/aio-filterlist/blob/main/config/sources.txt"
click node_fetch "https://github.com/elcapitanoe/aio-filterlist/blob/main/scripts/fetch_filters.sh"
click node_standalone "https://github.com/elcapitanoe/aio-filterlist/tree/main/filters"
click node_merge "https://github.com/elcapitanoe/aio-filterlist/blob/main/scripts/merge_filters.sh"
click node_validate "https://github.com/elcapitanoe/aio-filterlist/blob/main/scripts/validate.sh"
click node_combined "https://github.com/elcapitanoe/aio-filterlist/blob/main/AIO_Filter_List.txt"
click node_readme_update "https://github.com/elcapitanoe/aio-filterlist/blob/main/scripts/update_readme.sh"
click node_readme "https://github.com/elcapitanoe/aio-filterlist/blob/main/README.md"

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_source_config,node_standalone toneBlue
class node_fetch,node_merge,node_validate toneAmber
class node_combined,node_mirrors toneMint
class node_readme_update,node_readme toneRose
class node_scheduler toneTeal
class node_upstream,node_subscribers toneIndigo
```

## Components

### Filter inputs

- [Source registry](https://github.com/elcapitanoe/aio-filterlist/blob/main/config/sources.txt): `config/sources.txt`
- [Standalone lists](https://github.com/elcapitanoe/aio-filterlist/tree/main/filters): `filters`

### Aggregation pipeline

- [Fetch filters](https://github.com/elcapitanoe/aio-filterlist/blob/main/scripts/fetch_filters.sh): `scripts/fetch_filters.sh`
- [Merge and dedupe](https://github.com/elcapitanoe/aio-filterlist/blob/main/scripts/merge_filters.sh): `scripts/merge_filters.sh`
- [Rule validation](https://github.com/elcapitanoe/aio-filterlist/blob/main/scripts/validate.sh): `scripts/validate.sh`

### Published outputs

- [Consolidated list](https://github.com/elcapitanoe/aio-filterlist/blob/main/AIO_Filter_List.txt): `AIO_Filter_List.txt`
- **CDN mirrors**

### Build telemetry

- [Update telemetry](https://github.com/elcapitanoe/aio-filterlist/blob/main/scripts/update_readme.sh): `scripts/update_readme.sh`
- [Source table and stats](https://github.com/elcapitanoe/aio-filterlist/blob/main/README.md): `README.md`

### Other components

- [Daily sync](https://github.com/elcapitanoe/aio-filterlist/blob/main/.github/workflows/sync-filters.yml): `.github/workflows/sync-filters.yml`
- **Upstream lists**
- **Filter subscribers**

## Connections

- Daily sync → Fetch filters: triggers daily sync
- Source registry → Fetch filters: supplies sources
- Upstream lists → Fetch filters: provides lists
- Fetch filters → Standalone lists: saves lists
- Standalone lists → Merge and dedupe: supplies rules
- Merge and dedupe → Consolidated list: writes deduplicated list
- Consolidated list → Rule validation: validates output
- Update telemetry → Source table and stats: publishes telemetry
- Standalone lists → Update telemetry: reports sync data
- Consolidated list → Update telemetry: reports build metrics
- Consolidated list → CDN mirrors: served by
- Standalone lists → CDN mirrors: served by
- Filter subscribers → CDN mirrors: subscribe via
