Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jvoss/zerotier-bird-router
A ZeroTier client and BIRD Router in Docker
https://github.com/jvoss/zerotier-bird-router
Last synced: about 1 month ago
JSON representation
A ZeroTier client and BIRD Router in Docker
- Host: GitHub
- URL: https://github.com/jvoss/zerotier-bird-router
- Owner: jvoss
- Created: 2021-02-28T21:41:10.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-11-09T01:42:08.000Z (about 1 year ago)
- Last Synced: 2024-08-02T06:14:29.727Z (4 months ago)
- Language: Dockerfile
- Homepage:
- Size: 15.6 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
ZeroTier BIRD Router in Docker
==============================![Docker image](https://github.com/jvoss/zerotier-bird-router/actions/workflows/docker-image.yml/badge.svg)
This docker container runs the [ZeroTier](https://www.zerotier.com/) client and
[BIRD 2.0](https://bird.network.cz/) routing daemon. This is useful for running
a BGP router attached to ZeroTier network.The image is built on Alpine Linux to keep deployment size minimal.
For a Zerotier only client in docker see
[zerotier-docker](https://github.com/zyclonite/zerotier-docker) which served as
the inspriation for the included ZeroTier client.## Installation
### Option 1: From Github Container Registry
1) Pull image the image
`docker pull ghcr.io/jvoss/zerotier-bird-router/zerotier-bird-router`
### Option 2: Build an image
1) Clone to local machine
`git clone https://github.com/jvoss/zerotier-bird-router.git`
2) Build the image
* Option A: Included versions of ZeroTier and BIRD2
`docker build -t zerotier-bird-router .`
* Option B: Specific versions of ZeroTier and/or BIRD2
`docker build -t zerotier-bird-router . --build-arg BIRD_VERSION=2.0.7 ZEROTIER_VERSION=1.6.4`
### Docker Compose
See example [docker-compose.yml](docker-compose.yml) for details.
## Configuration
### ZeroTier
ZeroTier configuration can be accessed via CLI interactively with the container
or by issuing commands to to the container:Interactive shell:
```
docker exec -it /bin/sh
zerotier-cli listpeers
```From Host:
```
docker exec zerotier-cli listpeers
```Configuration persistence across restart is maintained by mounting a volume to:
`/var/lib/zerotier-one` (See [Running](#running))### BIRD2
BIRD2 is installed in `/opt/bird` and configuration should be mounted to
`/opt/bird/etc` prior to starting the container.See the [BIRD](https://bird.network.cz/?get_doc&f=bird.html&v=20) project
documentation for more details.Interactive shell:
```
docker exec -it birdc
```Commands from Host:
```
docker exec birdc show protocols
```## Running
Special permissions (`NET_ADMIN`) and access to `/dev/nut/tun` are required
to allow Zerotier to create tunnel interfaces:Docker >1.2.0:
```
docker run --device=/dev/net/tun --cap-add=NET_ADMIN \
-v :/var/lib/zerotier-one \
-v :/opt/bird/etc \
jvoss/zerotier-route-server
```