auth/authelia/run.sh

130 lines
2.4 KiB
Bash

#! /bin/bash
main() {
set -e
set -o pipefail
set -u
trap cleanup SIGINT ERR EXIT
cd "$(dirname "$BASH_SOURCE")"
mkdir -p "$PWD/tmp"
build_authelia
echo cp $GOPATH/src/github.com/authelia/authelia/compose/lite/authelia/* ./
start_sidecars
}
build_authelia_docker() {
build_authelia
rm -rf ./authelia
cp -r $GOPATH/src/github.com/authelia/authelia ./authelia
pushd authelia
export GOFLAGS=""
export GO111MODULE=""
go mod vendor
export GOFLAGS="-mod=vendor"
export GO111MODULE="off"
popd
docker build -t bel/authelia:v0.0 .
}
build_authelia() {
if which authelia &> /dev/null; then
return
fi
export INLINE_RUNTIME_CHUNK=false
export CGO_ENABLED=1
export GOFLAGS=""
export GO111MODULE=""
repo=github.com/authelia/authelia
pushd $GOPATH/src/$repo
if ! cat internal/server/public_html/index.html | grep -q .; then
pushd web
yarn install
yarn build
popd
rm -rf ./internal/server/public_html
mv web/build ./internal/server/public_html
cp -r api ./internal/server/public_html/
fi
rm -rf web/node_modules
git_commit=$(
(
git rev-list -1 HEAD
if git diff | grep . > /dev/null; then
echo "-dirty"
fi
) 2> /dev/null | tr -d '\n'
)
common=("-a" "-installsuffix" "cgo" "-ldflags" "-s -w -X main.GitCommit=$git_commit")
pushd cmd/authelia
go build -o $GOPATH/bin/authelia "${common[@]}"
popd
popd
export GOFLAGS="-mod=vendor"
export GO111MODULE="off"
}
start_sidecars() {
start_cleanup
start_rproxy3 &
start_pretend &
start_echo &
start_authelia &
wait -n 1
}
start_cleanup() {
trap cleanup SIGINT ERR EXIT
}
start_rproxy3() {
rproxy3 \
-p 9500 \
-proxy authelia,http://localhost:9491$(
start_port=9500
for i in {x..z}; do
((start_port+=1))
printf ",,%s,http://localhost:%d" $i $start_port
done
) \
-crt ./*.crt \
-key ./*.key \
-authelia https://authelia.bel.lan:9500 \
}
start_pretend() {
pretend -config ./pretend.yaml
}
start_echo() {
start_cleanup
for p in {9502..9503}; do
echo-server -p $p &
done
wait -n 1
}
start_authelia() {
#export ENVIRONMENT=dev
authelia --config ./configuration.yml
}
cleanup() {
jobs -p
kill -9 $(jobs -p)
jobs
trap - SIGINT ERR EXIT
}
if [ "$0" == "$BASH_SOURCE" ]; then
main "$@"
fi