Initial commit
Basic working code that is capable of establishing the Wireguard tunnel given that there is properly configured `.psk` file for at least one known wifi network (see README.md for more details)
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
.DEFAULT_GOAL:=build
|
||||
|
||||
TEMP_DIR=$(shell ./preflight)
|
||||
DIST_DIR=${TEMP_DIR}/dist
|
||||
DOT_ENV_FILE=${TEMP_DIR}/.env
|
||||
DOT_ENV_PAIRS=$(shell cat ${DOT_ENV_FILE})
|
||||
BUILD_ARGS=$(shell for ARG in ${DOT_ENV_PAIRS}; do echo "--build-arg $$ARG"; done;)
|
||||
|
||||
-include ${DOT_ENV_FILE}
|
||||
|
||||
vault/encrypt:
|
||||
@echo "### Encrypting secrets..."
|
||||
@./vault encrypt
|
||||
@echo "### Encrypting done"
|
||||
|
||||
vault/decrypt:
|
||||
@echo "### Decrypting secrets..."
|
||||
@./vault decrypt
|
||||
@echo "### Decrypting done"
|
||||
|
||||
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
|
||||
|
||||
build: repository
|
||||
@echo "### Assembling..."
|
||||
@rsync -chaz ${CACHE_DIR}/${RELEASE_BASENAME}/ ${DIST_DIR}
|
||||
@mkdir -p ${TEMP_DIR}/overlay_headless/etc/local.d
|
||||
@mkdir -p ${TEMP_DIR}/overlay_headless/etc/runlevels/default
|
||||
@touch ${TEMP_DIR}/overlay_headless/etc/.default_boot_services
|
||||
-@ln -s /etc/init.d/local ${TEMP_DIR}/overlay_headless/etc/runlevels/default/local
|
||||
@./src/esh -o ${TEMP_DIR}/overlay_headless/etc/local.d/headless.start src/headless.start ${DOT_ENV_PAIRS}
|
||||
@chmod +x ${TEMP_DIR}/overlay_headless/etc/local.d/headless.start
|
||||
@tar czf ${DIST_DIR}/headless.apkovl.tar.gz -C ${TEMP_DIR}/overlay_headless/ .
|
||||
@rsync -chaz ${CACHE_DIR}/aport/${RELEASE_VERSION}/main/ ${DIST_DIR}/extras
|
||||
@cp ${CACHE_DIR}/tailspin/tspin ${DIST_DIR}
|
||||
@./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 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 src/repository-builder/${REQUIREMENTS_FILE} ${DIST_DIR}
|
||||
@echo "### Assembling done"
|
||||
@make vault/encrypt
|
||||
|
||||
card: clean build
|
||||
@echo "### Copying to sdcard..."
|
||||
@rsync -chavz --delete ${DIST_DIR}/ /media/$(shell whoami)/entropi
|
||||
@echo "### Copying to sdcard done"
|
||||
-@make clean
|
||||
|
||||
clean:
|
||||
@echo "### Cleaning..."
|
||||
-@rm -rf ${DIST_DIR}
|
||||
-@rm -rf tmp*
|
||||
-@rm -f ${CACHE_DIR}/aport/${RELEASE_VERSION}/main/${ALPINE_ARCH}/APKINDEX.tar.gz
|
||||
-@docker rmi ${BUILDER_DOCKER_IMAGE} 1> /dev/null
|
||||
@echo "### Cleaning done"
|
||||
|
||||
mrproper: clean
|
||||
@echo "### Purging cache..."
|
||||
-@rm -rf ${CACHE_DIR}
|
||||
@echo "### Done"
|
||||
|
||||
repository-builder: init
|
||||
@mkdir -p ${CACHE_DIR}/aport/${RELEASE_VERSION}/main/
|
||||
@rsync -chaz ${CACHE_DIR}/${RELEASE_BASENAME}/apks/ ${CACHE_DIR}/aport/${RELEASE_VERSION}/main/
|
||||
|
||||
@tar \
|
||||
--exclude='.git' \
|
||||
-czh ./src/repository-builder | docker build -f ./src/repository-builder/repository.Dockerfile \
|
||||
--build-arg ALPINE_DOCKER_IMAGE=${ALPINE_DOCKER_IMAGE} \
|
||||
--build-arg REQUIREMENTS_FILE=${REQUIREMENTS_FILE} \
|
||||
--build-arg BUILDER_USER=${BUILDER_USER} \
|
||||
--build-arg BUILDER_UID=${BUILDER_UID} \
|
||||
--build-arg BUILDER_GID=${BUILDER_GID} \
|
||||
-t ${BUILDER_DOCKER_IMAGE} -
|
||||
|
||||
repository: repository-builder
|
||||
@echo "### Repository..."
|
||||
@wget --quiet --spider https://alpinelinux.org/ && \
|
||||
docker run --rm -ti \
|
||||
-e ALPINE_ARCH=${ALPINE_ARCH} \
|
||||
-e RELEASE_VERSION=${RELEASE_VERSION} \
|
||||
-e REQUIREMENTS_FILE=${REQUIREMENTS_FILE} \
|
||||
-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)/src/repository-builder/abuild.conf:/root/.abuild/abuild.conf \
|
||||
-v ${CACHE_DIR}/aport:/mirror \
|
||||
${BUILDER_DOCKER_IMAGE} build-repository \
|
||||
|| echo "No Internet!!! Skipping repository..."
|
||||
@echo "### Repository done"
|
||||
Reference in New Issue
Block a user