# Codebase Structure

These are the folders and some key files used to generate and store various unified hosts files.

## Data folders

There are two facets of the hosts files generated by
[/updateHostsFile.py](https://github.com/StevenBlack/hosts/blob/master/updateHostsFile.py):

### Basic hosts

Basic hosts are domains that purvey advertising, malware, tracking, coin
mining and other abominable behavior. These hosts are included in all our products.

The [/data](https://github.com/StevenBlack/hosts/tree/master/data) folder holds the
metadata and latest hosts for all our basic hosts sources. The hosts are updated
automatically by `/updateHostsFile.py` which iterates all the subfolders within `./data`.

### Optional hosts extensions

Hosts extensions include domains that push potentially addictive content like `porn`, `fake news`,
`gambling`, and `social` media.

The [/extensions](https://github.com/StevenBlack/hosts/tree/master/extensions) folder holds
metadata and latest hosts for all our basic hosts sources. The hosts are updated
automatically by `/updateHostsFile.py` which iterates all the subfolders within `./extensions`.

## Product folders

### Basic hosts

The [basic hosts file](https://github.com/StevenBlack/hosts/blob/master/hosts), containing
just adware, malware, etc, is stored in the root folder of this repository.

The [/hosts/alternates](https://github.com/StevenBlack/hosts/tree/master/alternates) this folder
contains the products of `updateHostsFile.py`, one subfolder for each permutation of
`fakenews`, `gambling`, `porn`, and `social` media hosts, all of which include the base extensions
containing hosts that block adware, malware, tracking, etc.

## Other notable files

+ [./readme_template.md](https://github.com/StevenBlack/hosts/blob/master/readme_template.md):
This file is used to generate all the various readme files in this repository.  Therefore,
if you wish to change the readme, you need to change only this file.
