docker-mirror/run

77 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
set -e
if [[ $EUID -ne 0 ]]; then
echo Run as root!
exit 1
fi
if [ ! -e ./.env ]; then
read -p 'Domain that will serve the mirror: ' domain
echo "DOMAIN_NAME=$domain" > ./.env
read -p "Use cloudflare tunnels y/N " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
USE_TUNNELS=true
echo "USE_TUNNELS=true" >> ./.env
echo "SSL_FILE=/dev/null" >> ./.env
else
read -p 'Your email address: ' email
echo "EMAIL=$email" >> ./.env
fi
fi
source .env
if [ "$USE_TUNNELS" != "true" ]; then
if [ ! -e ./data/letsencrypt/etc/renewal/chaotic.conf ]; then
docker run -p 80:80 -p 443:443 --rm -v "$PWD/data/letsencrypt/etc:/etc/letsencrypt" -v "$PWD/data/letsencrypt/var:/var/lib/letsencrypt" certbot/certbot:${LETSENCRYPT_TAG:-latest} certonly --standalone --non-interactive --agree-tos --cert-name chaotic -n -m "$EMAIL" -d "$DOMAIN_NAME"
fi
elif [ ! -e "./data/cloudflared/home/.cloudflared/cert.pem" ]; then
docker compose -f docker-compose-tunnels.yml run --rm cloudflared login
docker compose -f docker-compose-tunnels.yml run --rm cloudflared --origincert /root/.cloudflared/cert.pem tunnel create $DOMAIN_NAME
docker compose -f docker-compose-tunnels.yml run --rm cloudflared --origincert /root/.cloudflared/cert.pem tunnel route dns $DOMAIN_NAME $DOMAIN_NAME
fi
if [ ! -e ./http-root/chaotic-aur ]; then
# Convert legacy
if [ -d ./repo ]; then
./stop
mkdir ./http-root
mv ./repo ./http-root/chaotic-aur
else
mkdir -p ./http-root/chaotic-aur/.stfolder
chown -R 1000:1000 ./http-root/chaotic-aur/
fi
fi
if [ ! -e ./data/syncthing/config.xml ]; then
mkdir -p ./data/syncthing
cp ./preset/syncthing-config.xml ./data/syncthing/config.xml
chown -R 1000:1000 ./data/syncthing
fi
gawk -i inplace '/<folder id="jhcrt-m2dra"/ {
begin = 1
}
/<minDiskFree unit="">0<\/minDiskFree>/ {
if (begin) {
print " <minDiskFree unit=\"%\">1</minDiskFree>"
next
} else {
print
}
}
/<\/folder>/ {
begin = 0
}
1' ./data/syncthing/config.xml
if [ "$USE_TUNNELS" != "true" ]; then
docker compose -f docker-compose.yml up ${COMPOSEFLAGS-"-d"}
else
docker compose -f docker-compose-tunnels.yml up ${COMPOSEFLAGS-"-d"}
fi