mirror of
https://github.com/torrentpier/torrentpier
synced 2025-08-22 06:13:58 -07:00
Update setup-docker.sh
This commit is contained in:
parent
2951fbeaef
commit
3206fab2c9
1 changed files with 62 additions and 50 deletions
112
setup-docker.sh
112
setup-docker.sh
|
@ -1,36 +1,37 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
echo "🐳 Setting up TorrentPier for Docker..."
|
echo "🐳 Setting up TorrentPier for Docker..."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
if [ ! -f .env ]; then
|
if [ ! -f .env ]; then
|
||||||
if [ -f .env.example ]; then
|
if [ -f .env.example ]; then
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
echo "✅ Created .env from .env.example"
|
echo "✅ Created .env from .env.example"
|
||||||
else
|
else
|
||||||
echo "❌ Error: .env.example not found!"
|
echo "❌ Error: .env.example not found!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "ℹ️ .env file already exists, updating for Docker..."
|
echo "ℹ️ .env file already exists, updating for Docker..."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cp .env .env.backup
|
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
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -38,39 +39,46 @@ read -s -p "🔐 Enter database password for 'torrentpier_user': " DB_PASSWORD
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
if [ -z "$DB_PASSWORD" ]; then
|
if [ -z "$DB_PASSWORD" ]; then
|
||||||
echo "❌ Error: Database password cannot be empty!"
|
echo "❌ Error: Database password cannot be empty!"
|
||||||
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
|
||||||
echo "✅ Added DB_PASSWORD to .env"
|
echo "✅ Added DB_PASSWORD to .env"
|
||||||
fi
|
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
|
||||||
|
|
||||||
|
# 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
|
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
|
||||||
echo "✅ Added TP_HOST to .env"
|
echo "✅ Added TP_HOST to .env"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -84,25 +92,29 @@ read -p "🔐 Do you want to enable SSL (HTTPS)? [y/N]: " ENABLE_SSL
|
||||||
ENABLE_SSL=$(echo "$ENABLE_SSL" | tr '[:upper:]' '[:lower:]')
|
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
|
||||||
fi
|
else
|
||||||
|
echo "TP_PORT=443" >> .env
|
||||||
|
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
|
||||||
fi
|
else
|
||||||
|
echo "TP_PORT=80" >> .env
|
||||||
|
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
|
||||||
echo "# Docker-specific configuration" >> .env
|
echo "# Docker-specific configuration" >> .env
|
||||||
echo "SSL_ENABLED=$SSL_ENABLED" >> .env
|
echo "SSL_ENABLED=$SSL_ENABLED" >> .env
|
||||||
echo "✅ Added Docker SSL configuration (SSL_ENABLED=$SSL_ENABLED)"
|
echo "✅ Added Docker SSL configuration (SSL_ENABLED=$SSL_ENABLED)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -111,8 +123,8 @@ echo ""
|
||||||
echo "📋 Next steps:"
|
echo "📋 Next steps:"
|
||||||
echo " 1. Run: docker-compose up"
|
echo " 1. Run: docker-compose up"
|
||||||
if [ "$SSL_ENABLED" = "on" ]; then
|
if [ "$SSL_ENABLED" = "on" ]; then
|
||||||
echo " 2. Open: https://$TP_HOST"
|
echo " 2. Open: https://$TP_HOST"
|
||||||
else
|
else
|
||||||
echo " 2. Open: http://$TP_HOST"
|
echo " 2. Open: http://$TP_HOST"
|
||||||
fi
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue