This commit is contained in:
2024-02-28 10:33:15 +08:00
commit 492c03bfcf
27 changed files with 813 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
set -ev
docker-compose config
docker-compose pull
docker-compose up -d
docker-compose ps
+30
View File
@@ -0,0 +1,30 @@
#!/bin/bash
set -e
eval $(egrep '^HOST' .env | xargs)
eval $(egrep '^CERT_PATH' .env | xargs)
echo "Domain: ${HOST}"
echo "Cert Path: ${CERT_PATH}"
if [ -f certs/cert.crt ] || [ -f certs/cert.key ] || [ -f certs/cert.pem ]; then
echo -e "cert already exists in certs directory\nDo you want to overwrite the files? [y]es/[n]o"
read -r ANSWER
echo
if [[ "$ANSWER" =~ ^[Yy](es)?$ ]] ; then
echo "Creating Cert"
else
exit 1
fi
fi
./scripts/requests.sh
openssl genrsa -out $CERT_PATH/cert.key
openssl req -new -key $CERT_PATH/cert.key -out $CERT_PATH/cert.csr -config $CERT_PATH/csr.conf
openssl x509 -req -days 365 -in $CERT_PATH/cert.csr -signkey $CERT_PATH/cert.key -out $CERT_PATH/cert.crt -extensions req_ext -extfile $CERT_PATH/csr.conf
sudo cp $CERT_PATH/cert.crt /usr/local/share/ca-certificates/cert.crt
sudo rm -f /usr/local/share/ca-certificates/certificate.crt
# --fresh is needed to remove symlinks to no-longer-present certificates
sudo update-ca-certificates --fresh
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
echo "Cleaning up..."
docker-compose down
printf "Deleting network: "
eval $(egrep '^NETWORK' .env | xargs)
printf "$NETWORK\n"
docker network rm $NETWORK | echo
+10
View File
@@ -0,0 +1,10 @@
#!/bin/bash
# color
RESET=$'\e[1;0m'
RED=$'\e[1;31m'
GREEN=$'\e[1;32m'
YELLOW=$'\e[1;33m'
RED_BACK=$'\e[101m'
GREEN_BACK=$'\e[102m'
YELLOW_BACK=$'\e[103m'
+10
View File
@@ -0,0 +1,10 @@
#!/bin/bash
set -ev
eval $(egrep '^HOST' .env | xargs)
if [ "$HOST" != "localhost" ]; then
grep "127.0.0.1 ${HOST}" /etc/hosts || (echo "127.0.0.1 ${HOST}" | sudo tee -a /etc/hosts)
fi
grep "127.0.0.1 docker.${HOST}" /etc/hosts || (echo "127.0.0.1 docker.${HOST}" | sudo tee -a /etc/hosts)
grep "127.0.0.1 dashboard.${HOST}" /etc/hosts || (echo "127.0.0.1 dashboard.${HOST}" | sudo tee -a /etc/hosts)
+26
View File
@@ -0,0 +1,26 @@
#!/bin/bash
set -e
echo "Copying env file"
# Create env from env.example if it doesn't exist
if [ -f ".env" ]
then
echo -e "env file exists"
else
echo -e "Copying env file"
cp env.example .env
fi
echo "creating acme.json"
touch acme.json
chmod 600 acme.json
echo "creating provider.key"
touch provider.key
echo "supersecretkey" | tee provider.key
chmod 600 provider.key
printf "Creating network: "
eval $(egrep '^NETWORK' .env | xargs)
printf "$NETWORK\n"
docker network create $NETWORK | echo
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
set -ex
if [ -z "$DOCKER_COMPOSE_VERSION" ]; then
DOCKER_COMPOSE_VERSION=1.25.4
fi
echo "Installing docker-compose version: $DOCKER_COMPOSE_VERSION"
if [ -z "`sudo -l 2>/dev/null`" ]; then
rm /usr/local/bin/docker-compose | echo
curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
chmod +x docker-compose
mv docker-compose /usr/local/bin
else
sudo rm /usr/local/bin/docker-compose | echo
curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
sudo chmod +x docker-compose
sudo mv docker-compose /usr/local/bin
fi
+25
View File
@@ -0,0 +1,25 @@
#!/bin/bash
eval $(egrep -v '^#' .env | xargs)
echo "
[req]
default_bits = 2048
distinguished_name = dn
prompt = no
[dn]
C=\"US\"
ST=\"Florida\"
OU=\"Service\"
emailAddress=\"admin@${HOST}\"
CN=\"${HOST}\"
[req_ext]
subjectAltName = @alt_names
[alt_names]
DNS.0 = ${HOST}
DNS.1 = *.${HOST}
DNS.2 = *.docker.${HOST}
" > certs/csr.conf
+37
View File
@@ -0,0 +1,37 @@
#!/bin/bash
set -e
export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
source ./scripts/color.sh
shopt -s expand_aliases
alias curl="curl -ILsS -X GET"
alias grep="grep -C 100 --color=auto"
alias echo="echo -e \${RESET}"
eval $(egrep '^HOST' .env | xargs)
eval $(egrep '^DASHBOARD_HOST' .env | xargs)
echo "\n\n${YELLOW_BACK}${RED}Testing Traefik........................${RESET}\n"
echo "\nHOST=${HOST}"
echo "\nDASHBOARD_HOST=${DASHBOARD_HOST}\n"
echo "\n\n${YELLOW}Rediection test........................${RESET}\n"
echo "\n${GREEN}http://${HOST}${RESET}\n"
curl http://${HOST} | grep 302 || exit 1
echo "\n${GREEN}http://${HOST}${RESET}\n"
curl http://${DASHBOARD_HOST} | grep 302 || exit 1
# echo "\n\nAuthentication test....................\n"
echo "\n\n${YELLOW}Authentication test....................${RESET}\n"
echo "\n${GREEN}https://user:pass@${DASHBOARD_HOST}${RESET}\n"
curl -f --anyauth -u user:pass https://${DASHBOARD_HOST} | grep 200 || exit 1
echo "\n${GREEN}https://user:pass@${DASHBOARD_HOST}/dashboard/${RESET}\n"
curl -f --anyauth -u user:pass https://${DASHBOARD_HOST}/dashboard/ | grep 200 || exit 1
echo "\n\n${GREEN}.......................................${RESET}\n"
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
set -ev
./scripts/init.sh
./scripts/cert.sh
./scripts/host.sh
./scripts/build.sh
./scripts/wait.sh ${WAIT_FOR}
./scripts/test.sh
+13
View File
@@ -0,0 +1,13 @@
#!/bin/bash
x="$1"
[[ -z "$x" ]] && x=5
printf "\n\nWaiting for things to start"
while [ $x -gt 0 ]
do
printf "."
sleep 1
x=$(( $x - 1 ))
done
echo "."