Compare commits
6
Commits
2de55efcdb
...
56915017ac
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
56915017ac | ||
|
|
38a752a245 | ||
|
|
d10184cd47 | ||
|
|
95f487fa2a | ||
|
|
64ec3e48b4 | ||
|
|
5e4722d0d9 |
@@ -22,9 +22,8 @@ init:
|
||||
@echo "### Init..."
|
||||
@./require ${DOT_ENV_FILE} alpine_source
|
||||
@./require ${DOT_ENV_FILE} tailspin_bin
|
||||
@./require ${DOT_ENV_FILE} age_bin
|
||||
@echo "### Init done"
|
||||
-@make vault/decrypt
|
||||
@make vault/decrypt
|
||||
|
||||
build: repository
|
||||
@echo "### Assembling..."
|
||||
@@ -41,17 +40,16 @@ build: repository
|
||||
@./src/esh -o ${DIST_DIR}/hotspot.conf src/hotspot.conf ${DOT_ENV_PAIRS}
|
||||
@./src/esh -o ${DIST_DIR}/wg0.conf src/wg0.conf ${DOT_ENV_PAIRS}
|
||||
@cp secrets/*.psk ${DIST_DIR}
|
||||
@cp src/authorized_keys ${DIST_DIR}
|
||||
@cp secrets/authorized_keys ${DIST_DIR}
|
||||
@cp src/config.toml ${DIST_DIR}
|
||||
@cp src/logpattern.conf ${DIST_DIR}
|
||||
@cp src/main.conf ${DIST_DIR}
|
||||
@cp src/rsyslog.conf ${DIST_DIR}
|
||||
@cp src/usercfg.txt ${DIST_DIR}
|
||||
@cp src/watchdog.sh ${DIST_DIR}
|
||||
@cp src/repository-builder/packager.rsa.pub ${DIST_DIR}
|
||||
@cp secrets/packager.rsa.pub ${DIST_DIR}
|
||||
@cp src/repository-builder/${REQUIREMENTS_FILE} ${DIST_DIR}
|
||||
@echo "### Assembling done"
|
||||
@make vault/encrypt
|
||||
|
||||
card: clean build
|
||||
@echo "### Copying to sdcard..."
|
||||
@@ -96,8 +94,8 @@ repository: repository-builder
|
||||
-e BUILDER_KEY_BASENAME=${BUILDER_KEY_BASENAME} \
|
||||
-e BUILDER_UID=${BUILDER_UID} \
|
||||
-e BUILDER_GID=${BUILDER_GID} \
|
||||
-v $(PWD)/src/repository-builder/packager.rsa:/root/.abuild/packager.rsa \
|
||||
-v $(PWD)/src/repository-builder/packager.rsa.pub:/root/.abuild/packager.rsa.pub \
|
||||
-v $(PWD)/secrets/packager.rsa:/root/.abuild/packager.rsa \
|
||||
-v $(PWD)/secrets/packager.rsa.pub:/root/.abuild/packager.rsa.pub \
|
||||
-v $(PWD)/src/repository-builder/abuild.conf:/root/.abuild/abuild.conf \
|
||||
-v ${CACHE_DIR}/aport:/mirror \
|
||||
${BUILDER_DOCKER_IMAGE} build-repository \
|
||||
|
||||
@@ -1,41 +1,59 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# First argument is preprocessed .env file supposed to be in tmp.build.XXXXXXXXXX directory
|
||||
# Let's load it up
|
||||
. $1
|
||||
# If number of arguments not equal to two
|
||||
if [ $# -ne 2 ] ; then
|
||||
echo "invalid argument"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DOT_ENV_FILE="$1"
|
||||
FUNCTION_TO_CALL="$2"
|
||||
|
||||
alpine_source() {
|
||||
find ${CACHE_DIR} -type f -name ${RELEASE_BASENAME}.tar.gz | grep -q ${RELEASE_BASENAME} || \
|
||||
curl -sSL ${ALPINE_MIRROR}/${RELEASE_VERSION}/releases/${ALPINE_ARCH}/${RELEASE_BASENAME}.tar.gz -o ${CACHE_DIR}/${RELEASE_BASENAME}.tar.gz
|
||||
find "$CACHE_DIR" -name "$RELEASE_BASENAME.tar.gz" -type f | grep -q . || \
|
||||
wget "$ALPINE_MIRROR/$RELEASE_VERSION/releases/$ALPINE_ARCH/$RELEASE_BASENAME.tar.gz" -O "$CACHE_DIR/$RELEASE_BASENAME.tar.gz"
|
||||
|
||||
mkdir -p ${CACHE_DIR}/${RELEASE_BASENAME}
|
||||
mkdir -p "$CACHE_DIR/$RELEASE_BASENAME"
|
||||
|
||||
find ${CACHE_DIR}/${RELEASE_BASENAME} -type d -empty -exec tar xfz ${CACHE_DIR}/${RELEASE_BASENAME}.tar.gz -C ${CACHE_DIR}/${RELEASE_BASENAME} \;
|
||||
find "$CACHE_DIR" -name "$RELEASE_BASENAME" -type d -empty -exec \
|
||||
tar --directory "$CACHE_DIR/$RELEASE_BASENAME" --extract --gzip --same-permissions --strip 1 --file="$CACHE_DIR/$RELEASE_BASENAME.tar.gz" \;
|
||||
}
|
||||
|
||||
tailspin_bin() {
|
||||
find ${CACHE_DIR} -type f -name tailspin.tar.gz | grep -q tailspin || \
|
||||
curl -sSL https://github.com/bensadeh/tailspin/releases/download/4.0.0/tailspin-x86_64-unknown-linux-musl.tar.gz -o ${CACHE_DIR}/tailspin.tar.gz
|
||||
find "$CACHE_DIR" -name tailspin.tar.gz -type f | grep -q . || \
|
||||
wget https://github.com/bensadeh/tailspin/releases/download/4.0.0/tailspin-x86_64-unknown-linux-musl.tar.gz -O "$CACHE_DIR/tailspin.tar.gz"
|
||||
|
||||
mkdir -p ${CACHE_DIR}/tailspin
|
||||
mkdir -p "$CACHE_DIR/tailspin"
|
||||
|
||||
find ${CACHE_DIR}/tailspin -type d -empty -exec tar xfz ${CACHE_DIR}/tailspin.tar.gz -C ${CACHE_DIR}/tailspin \;
|
||||
find "$CACHE_DIR/tailspin" -type d -empty -exec tar xz -f "$CACHE_DIR/tailspin.tar.gz" -C "$CACHE_DIR/tailspin" \;
|
||||
}
|
||||
|
||||
age_bin() {
|
||||
find ${CACHE_DIR} -type d -name age-src | grep -q age-src || \
|
||||
git clone https://github.com/wj/age.git ${CACHE_DIR}/age-src
|
||||
# Private function names start with underscore
|
||||
_init() {
|
||||
. "$DOT_ENV_FILE"
|
||||
|
||||
mkdir -p ${CACHE_DIR}/age
|
||||
|
||||
find ${CACHE_DIR}/age -type d -empty -exec docker run --rm -v ${CACHE_DIR}/age:/usr/local/bin -e GOBIN=/usr/local/bin/ -v ${CACHE_DIR}/age-src:/usr/src/age -w /usr/src/age golang:1.22-alpine go install ./cmd/age \;
|
||||
mkdir -p "$CACHE_DIR/aport"
|
||||
mkdir -p "$CACHE_DIR/extras"
|
||||
mkdir -p secrets
|
||||
}
|
||||
|
||||
mkdir -p secrets
|
||||
mkdir -p ${CACHE_DIR}/aport
|
||||
mkdir -p ${CACHE_DIR}/extras
|
||||
# Second argument is supposed to be name of one of the functions declared above
|
||||
# functions starting with underscore are ignored (considered private)
|
||||
FUNCTIONS=$(cat "$0" | awk '/\(\) {/ {print $1}' | rev | cut -c3- | rev | grep "^[^_]")
|
||||
FOUND_FN=0
|
||||
for FN in $FUNCTIONS; do
|
||||
if [ "$FN" = "$FUNCTION_TO_CALL" ]; then
|
||||
FOUND_FN=1
|
||||
fi
|
||||
done
|
||||
|
||||
# Second argument is supposed to be name of the functions decalred above
|
||||
# Let's call it
|
||||
$2
|
||||
if [ $FOUND_FN -eq 1 ]; then
|
||||
_init
|
||||
|
||||
echo "Calling $FUNCTION_TO_CALL"
|
||||
$FUNCTION_TO_CALL
|
||||
else
|
||||
echo "invalid argument"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
DisableHT=true
|
||||
|
||||
[Security]
|
||||
Passphrase=<% cat src/wifi-password.txt %>
|
||||
Passphrase=<% cat secrets/wifi-password.txt %>
|
||||
|
||||
[IPv4]
|
||||
Address=<%= $wlan0_address %>
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# syntax = docker/dockerfile:1
|
||||
ARG ALPINE_DOCKER_IMAGE
|
||||
FROM $ALPINE_DOCKER_IMAGE
|
||||
|
||||
|
||||
+2
-2
@@ -1,12 +1,12 @@
|
||||
[Interface]
|
||||
ListenPort = <%= $wg_port %>
|
||||
PrivateKey = <%= $(cat src/wireguard.private.key) %>
|
||||
PrivateKey = <%= $(cat secrets/wireguard.private.key) %>
|
||||
Address = <%= $wg0_address %>
|
||||
DNS = <%= $wg0_gateway %>
|
||||
MTU = 1280
|
||||
|
||||
[Peer]
|
||||
PublicKey = <%= $(cat src/wireguard.public.key) %>
|
||||
PublicKey = <%= $(cat secrets/wireguard.public.key) %>
|
||||
Endpoint = <%= $wg_server %>:<%= $wg_port %>
|
||||
AllowedIPs = 0.0.0.0/0
|
||||
PersistentKeepalive = 25
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
FILES_IN_VAULT='./src/wifi-password.txt
|
||||
./src/repository-builder/packager.rsa
|
||||
./src/repository-builder/packager.rsa.pub
|
||||
./src/wireguard.private.key
|
||||
./src/wireguard.public.key
|
||||
./src/authorized_keys'
|
||||
FILES_IN_VAULT=$(find . -name *.age)
|
||||
|
||||
age_encrypt() {
|
||||
local input="$1"
|
||||
local output="$1.tmp"
|
||||
local AGE_PASSPHRASE=`cat ./.vault_password_file`
|
||||
if [ $# -ne 1 ] ; then
|
||||
echo "invalid argument"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
./cache/age/age --encrypt --passphrase --armor --output $output $input && rm $input && mv $output $input
|
||||
AGE_PASSPHRASE=$(cat ./.vault_password_file) age --encrypt --passphrase --armor --output "$2" "$1"
|
||||
}
|
||||
|
||||
age_decrypt() {
|
||||
local input="$1"
|
||||
local output="$1.tmp"
|
||||
local AGE_PASSPHRASE=`cat ./.vault_password_file`
|
||||
if [ $# -ne 1 ] ; then
|
||||
echo "invalid argument"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
./cache/age/age --decrypt --output $output $input && rm $input && mv $output $input
|
||||
BASENAME=$(basename $1 .age)
|
||||
|
||||
AGE_PASSPHRASE=$(cat ./.vault_password_file) age --decrypt --output "secrets/$BASENAME" "$1"
|
||||
}
|
||||
|
||||
|
||||
encrypt() {
|
||||
for FILE in $FILES_IN_VAULT; do
|
||||
age_encrypt $FILE
|
||||
age_encrypt "$FILE"
|
||||
done
|
||||
}
|
||||
|
||||
decrypt() {
|
||||
for FILE in $FILES_IN_VAULT; do
|
||||
age_decrypt $FILE
|
||||
age_decrypt "$FILE"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user