Files
yggdrasil/README.md
2025-03-19 13:51:46 +03:00

1.6 KiB

Intro

Yggdrasil 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 at every start.

Here are some example snippets to help you get started creating a container.

docker-compose

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

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.