Update setup-docker.sh

This commit is contained in:
Roman Kelesidis 2025-08-21 20:15:19 +03:00
commit 3206fab2c9
No known key found for this signature in database
GPG key ID: D8157C4D4C4C6DB4

View file

@ -1,4 +1,5 @@
#!/bin/bash #!/bin/bash
set -e
echo "🐳 Setting up TorrentPier for Docker..." echo "🐳 Setting up TorrentPier for Docker..."
echo "" echo ""
@ -19,17 +20,17 @@ cp .env .env.backup
echo "💾 Backup created: .env.backup" echo "💾 Backup created: .env.backup"
# Enable server-side cron # Enable server-side cron
if grep -q "APP_CRON_ENABLED=true" .env; then if grep -q "^APP_CRON_ENABLED=true" .env; then
sed -i 's/APP_CRON_ENABLED=true/APP_CRON_ENABLED=false/' .env sed -i 's/^APP_CRON_ENABLED=true/APP_CRON_ENABLED=false/' .env
fi fi
if grep -q "DB_HOST=localhost" .env; then if grep -q "^DB_HOST=localhost" .env; then
sed -i 's/DB_HOST=localhost/DB_HOST=torrentpier-db/' .env sed -i 's/^DB_HOST=localhost/DB_HOST=torrentpier-db/' .env
echo "✅ Updated DB_HOST for Docker" echo "✅ Updated DB_HOST for Docker"
fi fi
if grep -q "DB_USERNAME=root" .env; then if grep -q "^DB_USERNAME=root" .env; then
sed -i 's/DB_USERNAME=root/DB_USERNAME=torrentpier_user/' .env sed -i 's/^DB_USERNAME=root/DB_USERNAME=torrentpier_user/' .env
echo "✅ Updated DB_USERNAME to torrentpier_user" echo "✅ Updated DB_USERNAME to torrentpier_user"
fi fi
@ -42,10 +43,11 @@ if [ -z "$DB_PASSWORD" ]; then
exit 1 exit 1
fi fi
ESCAPED_PASSWORD=$(printf '%s\n' "$DB_PASSWORD" | sed 's/[&/\]/\\&/g') # More robust password escaping for sed
ESCAPED_PASSWORD=$(printf '%s\n' "$DB_PASSWORD" | sed 's/[[\.*^$()+?{|]/\\&/g')
if grep -q "DB_PASSWORD=" .env; then if grep -q "^DB_PASSWORD=" .env; then
sed -i "s|DB_PASSWORD=.*|DB_PASSWORD=$ESCAPED_PASSWORD|" .env sed -i "s/^DB_PASSWORD=.*/DB_PASSWORD=$ESCAPED_PASSWORD/" .env
echo "✅ Updated DB_PASSWORD in .env" echo "✅ Updated DB_PASSWORD in .env"
else else
echo "DB_PASSWORD=$DB_PASSWORD" >> .env echo "DB_PASSWORD=$DB_PASSWORD" >> .env
@ -54,19 +56,25 @@ fi
echo "" echo ""
read -p "🌐 Enter your host (IP or domain, e.g. 192.168.1.100 or example.com): " TP_HOST read -p "🌐 Enter your host (IP or domain, e.g. 192.168.1.100 or example.com): " TP_HOST
echo ""
if [ -z "$TP_HOST" ]; then if [ -z "$TP_HOST" ]; then
echo ""
echo "❌ Error: Host cannot be empty!" echo "❌ Error: Host cannot be empty!"
exit 1 exit 1
fi fi
# Basic validation for host format
if [[ ! "$TP_HOST" =~ ^[a-zA-Z0-9.-]+$ ]]; then
echo "❌ Error: Invalid host format! Use only letters, numbers, dots, and hyphens."
exit 1
fi
TP_HOST=$(echo "$TP_HOST" | sed -E 's|^https?://||') TP_HOST=$(echo "$TP_HOST" | sed -E 's|^https?://||')
TP_HOST=$(echo "$TP_HOST" | sed 's|/||g') TP_HOST=$(echo "$TP_HOST" | sed 's|/||g')
ESCAPED_HOST=$(printf '%s\n' "$TP_HOST" | sed 's/[&/\]/\\&/g') ESCAPED_HOST=$(printf '%s\n' "$TP_HOST" | sed 's/[[\.*^$()+?{|]/\\&/g')
if grep -q "TP_HOST=" .env; then if grep -q "^TP_HOST=" .env; then
sed -i "s|TP_HOST=.*|TP_HOST=$ESCAPED_HOST|" .env sed -i "s/^TP_HOST=.*/TP_HOST=$ESCAPED_HOST/" .env
echo "✅ Updated TP_HOST to $TP_HOST" echo "✅ Updated TP_HOST to $TP_HOST"
else else
echo "TP_HOST=$TP_HOST" >> .env echo "TP_HOST=$TP_HOST" >> .env
@ -85,18 +93,22 @@ ENABLE_SSL=$(echo "$ENABLE_SSL" | tr '[:upper:]' '[:lower:]')
if [ "$ENABLE_SSL" = "y" ] || [ "$ENABLE_SSL" = "yes" ]; then if [ "$ENABLE_SSL" = "y" ] || [ "$ENABLE_SSL" = "yes" ]; then
SSL_ENABLED="on" SSL_ENABLED="on"
if grep -q "TP_PORT" .env; then if grep -q "^TP_PORT=" .env; then
sed -i "s|TP_PORT=.*|TP_PORT=443|" .env sed -i "s/^TP_PORT=.*/TP_PORT=443/" .env
else
echo "TP_PORT=443" >> .env
fi fi
else else
SSL_ENABLED="off" SSL_ENABLED="off"
if grep -q "TP_PORT" .env; then if grep -q "^TP_PORT=" .env; then
sed -i "s|TP_PORT=.*|TP_PORT=80|" .env sed -i "s/^TP_PORT=.*/TP_PORT=80/" .env
else
echo "TP_PORT=80" >> .env
fi fi
fi fi
if grep -q "SSL_ENABLED" .env; then if grep -q "^SSL_ENABLED=" .env; then
sed -i "s|SSL_ENABLED=.*|SSL_ENABLED=$SSL_ENABLED|" .env sed -i "s/^SSL_ENABLED=.*/SSL_ENABLED=$SSL_ENABLED/" .env
echo "✅ Updated SSL_ENABLED to $SSL_ENABLED" echo "✅ Updated SSL_ENABLED to $SSL_ENABLED"
else else
echo "" >> .env echo "" >> .env