53 lines
1.5 KiB
Bash
53 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# Production deployment script
|
|
# Usage: ./deploy.sh [git_repo_url] [branch] [commit_hash]
|
|
|
|
set -e
|
|
|
|
# Default values
|
|
GIT_REPO_URL=${1:-""}
|
|
GIT_BRANCH=${2:-"ui-fix"}
|
|
GIT_COMMIT=${3:-""}
|
|
|
|
# Check if .env.production exists and source it
|
|
if [ -f .env.production ]; then
|
|
echo "Loading production environment variables..."
|
|
export $(grep -v '^#' .env.production | xargs)
|
|
else
|
|
echo "Warning: .env.production not found. Make sure environment variables are set!"
|
|
fi
|
|
|
|
# Validate critical environment variables
|
|
# if [ -z "$NEXTAUTH_SECRET" ] || [ "$NEXTAUTH_SECRET" = "YOUR_SUPER_SECURE_SECRET_KEY_HERE_AT_LEAST_32_CHARACTERS_LONG" ]; then
|
|
# echo "ERROR: NEXTAUTH_SECRET must be set to a secure random string!"
|
|
# echo "Generate one with: openssl rand -base64 32"
|
|
# exit 1
|
|
# fi
|
|
|
|
if [ -z "$NEXTAUTH_URL" ]; then
|
|
echo "ERROR: NEXTAUTH_URL must be set to your production URL!"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$GIT_REPO_URL" ]; then
|
|
echo "Building from local files..."
|
|
docker-compose -f docker-compose.prod.yml build
|
|
else
|
|
echo "Building from git repository: $GIT_REPO_URL"
|
|
echo "Branch: $GIT_BRANCH"
|
|
if [ -n "$GIT_COMMIT" ]; then
|
|
echo "Commit: $GIT_COMMIT"
|
|
fi
|
|
|
|
GIT_REPO_URL=$GIT_REPO_URL GIT_BRANCH=$GIT_BRANCH GIT_COMMIT=$GIT_COMMIT \
|
|
docker-compose -f docker-compose.prod.yml build
|
|
fi
|
|
|
|
echo "Starting production deployment..."
|
|
docker-compose -f docker-compose.prod.yml down
|
|
docker-compose -f docker-compose.prod.yml up -d
|
|
|
|
echo "Deployment completed successfully!"
|
|
echo "Application is running at http://localhost:3001"
|