Automate DNS record creation for reverse proxies.
3.2K
Bingo automates the creation of DNS records for services served by a reverse proxy.
The original idea (and currently only supported scenario) was to run alongside Fabio (hence the name).

docker run -d \
-e FABIO_HOSTS="host1.local host2.local" \
-e PIHOLE_URL=http://pihole.local:80 \
-e PIHOLE_PASSWORD=abc123 \
-e SERVICE_DOMAIN=svc.local \
-e TARGETS="host1.local host2.local" \
n6g7/bingo
version: "3"
services:
bingo:
image: n6g7/bingo
environment:
FABIO_HOSTS: host1.local host2.local
PIHOLE_URL: http://pihole.local:80
PIHOLE_PASSWORD: "abc123"
SERVICE_DOMAIN: svc.local
TARGETS: host1.local host2.local
restart: unless-stopped
job "bingo" {
datacenters = ["dc1"]
type = "service"
group "bingo" {
service {
name = "bingo"
}
task "bingo" {
driver = "docker"
config {
image = "n6g7/bingo"
}
template {
destination = "secrets/bingo.env"
env = true
data = <<EOH
FABIO_HOSTS="{{ range service "fabio" }}{{ .Address }} {{ end }}"
PIHOLE_URL=http://pihole.local:80
PIHOLE_PASSWORD="abc123"
SERVICE_DOMAIN=svc.local
TARGETS="host1.local host2.local"
EOH
}
resources {
cpu = 50
memory = 32
}
}
}
}
Bingo aims to require the least configuration possible, however we're not quite there yet.
All configuration is passed as environment variables.
| Variable name | Example | Description |
|---|---|---|
FABIO_HOSTS | host1.local host2.local | Hosts where Fabio is running. |
PIHOLE_URL | http://pihole.local:80 | Address of the Pi-hole instance. |
PIHOLE_PASSWORD | abc123 | Pi-hole admin password. |
SERVICE_DOMAIN | svc.local | Domain under which service subdomains should be created. |
TARGETS | host1.local host2.local | Space-separated list of target domains. |
| Variable name | Default | Description |
|---|---|---|
PROXY_TYPE | fabio | The type of proxy to fetch services from. Currently only supports "fabio". |
FABIO_HOSTS | List of space-separated hosts where Fabio is running. | |
FABIO_ADMIN_PORT | 9998 | Fabio's admin UI port. |
FABIO_SCHEME | http | URI scheme for Fabio |
NAMESERVER_TYPE | pihole | The type of nameserver to managed records in. Currently only supports "pihole". |
PIHOLE_URL | Address of the Pi-hole instance. | |
PIHOLE_PASSWORD | Pi-hole admin password. | |
SERVICE_DOMAIN | Domain under which service subdomains should be created. Any service with a declared domain that does not match "*.$SERVICE_DOMAIN" will be ignored. Bingo only ever creates or deletes subdomains of SERVICE_DOMAIN. | |
TARGETS | Space-separated list of target domains to point to in managed CNAME records. When creating a new service domain, Bingo will pick a target at random in this list. | |
LOG_LEVEL | INFO | Logging verbosity. Supports "TRACE", "DEBUG", "INFO", "WARN", "ERROR" and "FATAL". |
| Name | Status |
|---|---|
| Fabio | ✅ Supported |
| Træfik | ⏳ Issue opened |
| Name | Status |
|---|---|
| Pi-hole | ✅ Supported |
| Route 53 | ⏳ Issue opened |
| pfSense | ⏳ Issue opened |
Content type
Image
Digest
sha256:56db157d2…
Size
8.8 MB
Last updated
about 1 year ago
docker pull n6g7/bingo