wireadmin/docker-entrypoint.sh

72 lines
2.2 KiB
Bash
Raw Normal View History

2023-12-10 23:20:54 +00:00
#!/usr/bin/env bash
set -e
2023-12-10 23:20:54 +00:00
TOR_CONFIG="/etc/tor/torrc"
ENV_FILE="/app/.env"
2023-12-11 01:43:05 +00:00
echo " "
echo " _ ___ ___ __ _ "
echo "| | / (_)_______ / | ____/ /___ ___ (_)___ "
echo "| | /| / / / ___/ _ \/ /| |/ __ / __ \`__ \/ / __ \\"
echo "| |/ |/ / / / / __/ ___ / /_/ / / / / / / / / / /"
echo "|__/|__/_/_/ \___/_/ |_\__,_/_/ /_/ /_/_/_/ /_/ "
echo " "
2023-12-11 01:43:05 +00:00
mkdir -p /var/vlogs
2023-12-11 01:43:05 +00:00
touch "${ENV_FILE}"
2023-12-10 23:20:54 +00:00
chmod 400 "${ENV_FILE}"
2023-11-01 16:43:26 +00:00
2023-12-10 23:20:54 +00:00
if ! grep -q "AUTH_SECRET" "${ENV_FILE}"; then
2023-12-11 01:43:05 +00:00
tee -a "${ENV_FILE}" &>/dev/null <<EOF
2023-11-04 05:09:13 +00:00
AUTH_SECRET=$(openssl rand -base64 32)
2023-11-01 16:43:26 +00:00
EOF
fi
# Checking if there is `UI_PASSWORD` environment variable
# if there was, converting it to hex and storing it to
# the .env
if [ -n "$UI_PASSWORD" ]; then
2023-12-11 01:43:05 +00:00
sed -i '/^HASHED_PASSWORD/d' "${ENV_FILE}"
tee -a "${ENV_FILE}" &>/dev/null <<EOF
2023-12-19 09:51:23 +00:00
HASHED_PASSWORD=$(printf "%s" "${UI_PASSWORD}" | od -A n -t x1 | tr -d ' \n')
2023-11-01 16:43:26 +00:00
EOF
unset UI_PASSWORD
2023-12-11 01:43:05 +00:00
else
echo "[error] no password set for the UI"
exit 1
fi
2023-12-11 01:43:05 +00:00
# Remove duplicated envs
awk -F= '!a[$1]++' "${ENV_FILE}" >"/tmp/$(basename "${ENV_FILE}")" &&
mv "/tmp/$(basename "${ENV_FILE}")" "${ENV_FILE}"
2023-12-19 09:51:23 +00:00
# Starting Redis server in detached mode
screen -L -Logfile /var/vlogs/redis -dmS "redis" \
bash -c "redis-server --port 6479 --daemonize no --dir /data --appendonly yes"
# Starting Tor
source /scripts/tord.sh
# Generate Tor configuration
2023-12-19 03:32:10 +00:00
generate_tor_config
# Start Tor on the background
2023-12-19 09:51:23 +00:00
screen -L -Logfile /var/vlogs/tor -dmS "tor" tor -f "${TOR_CONFIG}"
2023-09-25 11:56:34 +00:00
sleep 1
2023-09-27 07:01:52 +00:00
echo -e "\n======================== Versions ========================"
echo -e "Alpine Version: \c" && cat /etc/alpine-release
echo -e "WireGuard Version: \c" && wg -v | head -n 1 | awk '{print $1,$2}'
echo -e "Tor Version: \c" && tor --version | head -n 1
echo -e "Obfs4proxy Version: \c" && obfs4proxy -version
echo -e "\n========================= Torrc ========================="
2023-12-10 23:20:54 +00:00
cat "${TOR_CONFIG}"
2023-09-27 07:01:52 +00:00
echo -e "========================================================\n"
sleep 1
screen -L -Logfile /var/vlogs/warmup -dmS warmup \
bash -c "sleep 10; echo -n '[+] Warming Up...'; curl -s http://127.0.0.1:3000/; echo -e 'Done!'"
2023-09-30 11:43:09 +00:00
exec "$@"