# Bubble Repositories

## [bubble](https://git.bubblev.org/bubblev/bubble)
The primary repository, contains the code for the Bubble API. Building this repository will build everything you need to start a local Bubble Boot Launcher, from which you can fork a proper cloud-based Bubble Launcher, which can then launch individual Bubbles.

This repository contains:
 * `automation`: the ansible roles to setup a new Bubble
 * `bubble-server`: the Bubble API
 * `bin`: scripts for working with Bubbles, including convenience scripts for working with the Bubble API 
 * `bubble-web`: a submodule containing the front-end UI code
 * `utils`: utility code submodules 

### bubble submodules

#### [bubble-web](https://git.bubblev.org/bubblev/bubble-web)
The frontend user interface, built in VueJS. 

#### utils/[abp-parser](https://git.bubblev.org/bubblev/abp-parser)
Parser logic for AdBlockPlus-formatted filter files. Used by the BubbleBlock app.

#### utils/[cobbzilla-parent](https://git.bubblev.org/bubblev/cobbzilla-parent)
Utility code that defines package versions for various dependencies

#### utils/[cobbzilla-utils](https://git.bubblev.org/bubblev/cobbzilla-utils)
General utility code, used throughout bubble, and by other utility code

#### utils/[cobbzilla-wizard](https://git.bubblev.org/bubblev/cobbzilla-wizard)
A long-ago fork of DropWizard, this repository provides a simple framework for building Jersey/JAX-RS APIs

#### utils/[restex](https://git.bubblev.org/bubblev/restex)
A library used in testing to generate API documentation

#### utils/[templated-mail-sender](https://git.bubblev.org/bubblev/templated-mail-sender)
A library used to send emails based on templates

## Supporting Repositories
These repositories contain code that is built separately, and then included in `bubble` ansible roles.

### [dnscrypt-proxy](https://git.bubblev.org/bubblev/dnscrypt-proxy)
A fork of https://github.com/DNSCrypt/dnscrypt-proxy.git

The `bubble` branch contains some minor changes to work with Bubble. The built binary is included in the `algo` repository, which is then packged and included in the ansible `algo` role in the `bubble` repository.

### [algo](https://git.bubblev.org/bubblev/algo)
A fork of https://github.com/trailofbits/algo

The `bubble` branch contains some minor changes to work with Bubble, including the `bubble_zip.sh` script, which packages the repository for inclusion in the ansible `algo` role in the `bubble` repository.

### [mitmproxy](https://git.bubblev.org/bubblev/mitmproxy)
A fork of https://github.com/mitmproxy/mitmproxy/

The `bubble` branch contains some minor changes to work with Bubble, including the `bubble_zip.sh` script, which packages the repository for inclusion in the ansible `mitmproxy` role in the `bubble` repository.

### [bubble-nodemanager](https://git.bubblev.org/bubblev/bubble-nodemanager)
A low-level management system for deployed Bubble nodes. Written in [Rust](https://www.rust-lang.org/) for high-performance and a small memory footprint.
The resulting binary is included in the ansible `bubble_finalizer` role in the `bubble` repository.

## Data Repositories
This repository contains data that is used at runtime by a Bubble.
  
### [bubble-filter-lists](https://git.bubblev.org/bubblev/bubble-filter-lists)
Contains filter lists that are loaded (and periodically reloaded) by the BubbleBlock app.

## Documentation Repositories
Bubble documentation.

## [bubble-docs](https://git.bubblev.org/bubblev/bubble-docs)
Contains various documentation about the Bubble project.

