yggdrasil-go Docker & Self-Hosted Deployment

GitHub

An experiment in scalable routing as an encrypted IPv6 overlay network

1. Pull Image (DOCKERHUB) docker pull yggdrasil-network/yggdrasil-go:latest
2. Docker Run (1-Click Launch) docker run -d --name yggdrasil-go --restart always yggdrasil-network/yggdrasil-go:latest
3. Podman Run podman run -d --name yggdrasil-go --restart always yggdrasil-network/yggdrasil-go:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/yggdrasil-network/yggdrasil-go:latest
5. ORAS Pull (OCI Artifact) oras pull yggdrasil-network/yggdrasil-go:latest
contrib/docker/Dockerfile
FROM docker.io/golang:alpine as builder

COPY . /src
WORKDIR /src

ENV CGO_ENABLED=0

RUN apk add git && ./build && go build -o /src/genkeys cmd/genkeys/main.go

FROM docker.io/alpine

COPY --from=builder /src/yggdrasil /usr/bin/yggdrasil
COPY --from=builder /src/yggdrasilctl /usr/bin/yggdrasilctl
COPY --from=builder /src/genkeys /usr/bin/genkeys
COPY contrib/docker/entrypoint.sh /usr/bin/entrypoint.sh

# RUN addgroup -g 1000 -S yggdrasil-network \
#  && adduser -u 1000 -S -g 1000 --home /etc/yggdrasil-network yggdrasil-network
#
# USER yggdrasil-network
# TODO: Make running unprivileged work

VOLUME [ "/etc/yggdrasil-network" ]

ENTRYPOINT [ "/usr/bin/entrypoint.sh" ]