# Intro [Yggdrasil](https://yggdrasil-network.github.io/about.html) is a new experimental compact routing scheme. It is designed to be a future-proof and decentralised alternative to the structured routing protocols commonly used today on the Internet, as well as an enabling technology for future large-scale mesh networks. The current implementation of Yggdrasil is a lightweight userspace software router which is easy to configure. # Usage The container generates new Yggdrasil config if empty. And automatically update available public peers in the Yggdrasil configuration file with [peers_updater](https://github.com/ygguser/peers_updater) at every start. Here are some example snippets to help you get started creating a container. ## docker-compose ```yaml services: yggdrasil: build: context: https://git.bitdeals.org/private/yggdrasil.git dockerfile: ./docker/Dockerfile image: registry.bitdeals.org/yggdrasil cap_add: - NET_ADMIN devices: - /dev/net/tun volumes: - "./yggdrasil:/etc/yggdrasil" sysctls: - "net.ipv6.conf.all.disable_ipv6=0" environment: - BIND_PORT=80 - BIND_ADDRESS=nginx ``` ## docker cli ```sh docker run \ --rm \ --cap-add "NET_ADMIN" \ --device "/dev/net/tun" \ --volume "./yggdrasil.conf:/etc/yggdrasil/yggdrasil.conf" \ --sysctl "net.ipv6.conf.all.disable_ipv6=0" \ --mac-address "52:2a:ed:47:e9:25" \ registry.bitdeals.org/yggdrasil ``` # Parameters Container images are configured using parameters passed at runtime. |Parameter|Function| |:--------|:-------| |-e BIND_PORT|Port to forward.| |-e BIND_ADDRESS|Address of another docker service to forward to.|