vnxme/amneziawg-go

By vnxme

Updated about 1 month ago

An implementation of Amnezia WireGuard in Go

Image
Networking
0

4.0K

vnxme/amneziawg-go repository overview

Summary

A set of container images of AmneziaWG-Go. Source Code.

Registries

The container images are published in the following registries:

Description

AmneziaWG-Go is an implementation of Amnezia WireGuard in Go. It inherits the architectural simplicity and high performance of the original WireGuard implementation, but eliminates the identifiable network signatures that make WireGuard easily detectable by Deep Packet Inspection (DPI) systems.

Software

The container images include the following key software packages:

The following extra software packages are included as well:

Platforms

The container images are based on Alpine. The repository uses Golang for multi-stage build and the XX helpers for AMD64-based cross-compilation. Below is a summary of the platforms supported by this repository and its dependencies.

OS/ArchAlpineGolangXX HelpersAmneziaWG-Go
linux/386YesYesYesYes
linux/amd64YesYesYesYes
linux/arm/v5NoNoYesNo
linux/arm/v6YesYesYesYes
linux/arm/v7YesYesYesYes
linux/arm64YesYesYesYes
linux/loong64NoNoYesNo
linux/mipsNoNoYesNo
linux/mips64NoNoYesNo
linux/mips64leNoNoYesNo
linux/mipsleNoNoYesNo
linux/ppc64leYesYesYesYes
linux/riscv64YesYesYesYes
linux/s390xYesYesYesYes

Hooks

Entrypoint Hooks

The entrypoint script (/app/entrypoint.sh) supports four predefined lifecycle hooks:

  • pre-up: Executed before tunnels are enabled
  • post-up: Executed after tunnels are enabled
  • pre-down: Executed before tunnels are disabled
  • post-down: Executed after tunnels are disabled
Hook Script Locations

Hook scripts must be shell scripts (*.sh) and are executed from the following directories by default:

  • /app/hooks/pre-up
  • /app/hooks/post-up
  • /app/hooks/pre-down
  • /app/hooks/post-down

These directories are created automatically if they do not exist.

Customizing Hook Paths

The base working directory (/app) can be overridden using the -w or --workdir option of the docker run command.

The intermediate hooks directory can be customized by setting the HOOK_DIR environment variable via the -e or --env option of the docker run command. If HOOK_DIR is not set, it defaults to ./hooks.

Logs

Entrypoing Logging

The entrypoint supports the following log levels:

  • fatal
  • error
  • warn
  • info
  • debug
  • trace

The default log level is info. The log level can be configured by setting the LOG_LEVEL environment variable.

When LOG_LEVEL is set to fatal, no log messages are expected to be produced, and the container will be almost completely silent.

When LOG_LEVEL is set to trace, the entrypoint outputs additional diagnostic information, including the standard output and exit codes of various subcommands, in addition to its own log messages.

All entrypoint log messages are written to standard output (stdout).

Executable Output Redirection

The awg, awg-quick, and amneziawg-go executables are typically verbose. Any output produced by these executables is redirected to per-interface log files located at: ${LOG_DIR}/${INTERFACE}.log. If the LOG_DIR environment variable is not set or is empty, logs are written to the default directory: /var/log/amneziawg.

Tag summary

Content type

Image

Digest

sha256:3fe582283

Size

11.2 MB

Last updated

about 1 month ago

docker pull vnxme/amneziawg-go