wg: new package
This commit is contained in:
parent
b7ac4d7684
commit
23ed756287
19
pkg/wg/Dockerfile
Normal file
19
pkg/wg/Dockerfile
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
FROM linuxkit/alpine:518c2ed0f398c5508969ac5e033607201fb419ed AS mirror
|
||||||
|
|
||||||
|
RUN mkdir -p /out/etc/apk /out/usr/bin && cp -r /etc/apk/* /out/etc/apk/
|
||||||
|
RUN apk add --no-cache --initdb -p /out \
|
||||||
|
alpine-baselayout \
|
||||||
|
busybox \
|
||||||
|
curl \
|
||||||
|
iproute2 \
|
||||||
|
wireguard-tools
|
||||||
|
|
||||||
|
# Remove apk residuals
|
||||||
|
RUN rm -rf /out/etc/apk /out/lib/apk /out/var/cache
|
||||||
|
|
||||||
|
FROM scratch
|
||||||
|
ENTRYPOINT []
|
||||||
|
CMD []
|
||||||
|
WORKDIR /
|
||||||
|
COPY --from=mirror /out/ /
|
||||||
|
COPY ask.sh /usr/bin/
|
32
pkg/wg/ask.sh
Executable file
32
pkg/wg/ask.sh
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# /proc/cmdline parser (from Gentoo Wiki)
|
||||||
|
cmdline() {
|
||||||
|
local value
|
||||||
|
value=" $(cat /proc/cmdline) "
|
||||||
|
value="${value#* $1=}"
|
||||||
|
value="${value%% *}"
|
||||||
|
[ "$value" != "" ] && echo "$value"
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir -p /etc/wireguard/
|
||||||
|
WGTOKEN=$(cmdline adlin.token)
|
||||||
|
[ -z "${WGTOKEN}" ] && [ -f "/etc/wireguard/adlin.token" ] && WGTOKEN=$(cat /etc/wireguard/adlin.token)
|
||||||
|
[ -z "${WGTOKEN}" ] && {
|
||||||
|
echo -n "You didn't define your token to connect the network. Please copy it here now: "
|
||||||
|
read WGTOKEN
|
||||||
|
}
|
||||||
|
[ -f "/etc/wireguard/adlin.conf" ] && WGPRVKEY=$(sed 's/^.*PrivateKey *= *//p;d' /etc/wireguard/adlin.conf)
|
||||||
|
[ -z "${WGPRVKEY}" ] && WGPRVKEY=$(/usr/bin/wg genkey)
|
||||||
|
WGPUBKEY=$(echo $WGPRVKEY | /usr/bin/wg pubkey)
|
||||||
|
while ! { echo -e "[Interface]\nPrivateKey = ${WGPRVKEY}"; /usr/bin/curl -f -d '{"pubkey": "'$WGPUBKEY'"}' https://adlin.nemunai.re/api/wg/$(echo -n "$WGTOKEN" | /usr/bin/sha512sum | /usr/bin/cut -d ' ' -f 1); } > /etc/wireguard/adlin.conf
|
||||||
|
do
|
||||||
|
exit 1
|
||||||
|
done
|
||||||
|
echo -n "${WGTOKEN}" > /etc/wireguard/adlin.token
|
||||||
|
/sbin/ip link add dev wg0 type wireguard
|
||||||
|
/usr/bin/wg setconf wg0 /etc/wireguard/adlin.conf
|
||||||
|
/sbin/ip address add dev wg0 $(sed 's/^.*MyIPv6=//p;d' /etc/wireguard/adlin.conf)
|
||||||
|
/sbin/ip link set up dev wg0
|
||||||
|
/sbin/ip -6 route del default
|
||||||
|
/sbin/ip -6 route add default via $(sed 's/^.*GWIPv6=//p;d' /etc/wireguard/adlin.conf) pref high
|
6
pkg/wg/build.yml
Normal file
6
pkg/wg/build.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
image: wg
|
||||||
|
network: true
|
||||||
|
config:
|
||||||
|
capabilities:
|
||||||
|
- CAP_NET_ADMIN
|
||||||
|
- CAP_NET_RAW
|
Reference in New Issue
Block a user