docker-mirror/run

77 lines
2.2 KiB
Plaintext
Raw Normal View History

2022-01-22 20:17:36 +00:00
#!/bin/bash
set -e
2022-02-27 19:46:48 +00:00
if [[ $EUID -ne 0 ]]; then
echo Run as root!
exit 1
fi
2022-01-22 20:17:36 +00:00
if [ ! -e ./.env ]; then
read -p 'Domain that will serve the mirror: ' domain
echo "DOMAIN_NAME=$domain" > ./.env
2022-02-27 19:46:48 +00:00
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
2022-01-22 20:17:36 +00:00
fi
source .env
2022-02-27 19:46:48 +00:00
if [ "$USE_TUNNELS" != "true" ]; then
if [ ! -e ./data/letsencrypt/etc/renewal/chaotic.conf ]; then
2022-07-23 02:54:50 +00:00
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"
2022-02-27 19:46:48 +00:00
fi
elif [ ! -e "./data/cloudflared/home/.cloudflared/cert.pem" ]; then
2023-01-15 07:15:43 +00:00
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
2022-01-22 20:17:36 +00:00
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
2022-01-22 20:17:36 +00:00
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
2022-02-27 19:46:48 +00:00
if [ "$USE_TUNNELS" != "true" ]; then
2023-01-15 07:15:43 +00:00
docker compose -f docker-compose.yml up ${COMPOSEFLAGS-"-d"}
2022-02-27 19:46:48 +00:00
else
2023-01-15 07:15:43 +00:00
docker compose -f docker-compose-tunnels.yml up ${COMPOSEFLAGS-"-d"}
2022-02-27 19:46:48 +00:00
fi