mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-07-12 22:23:01 +02:00
Fix init-letsencrypt script
This commit is contained in:
@ -6,10 +6,20 @@ set -o allexport
|
||||
source .env.nginx
|
||||
set +o allexport
|
||||
|
||||
if ! docker compose --version >/dev/null 2>&1; then
|
||||
echo 'Error: docker compose is not installed.' >&2
|
||||
exit 1
|
||||
fi
|
||||
# Function to determine correct docker compose command
|
||||
docker_compose_cmd() {
|
||||
if command -v docker-compose >/dev/null 2>&1; then
|
||||
echo "docker-compose"
|
||||
elif command -v docker compose >/dev/null 2>&1; then
|
||||
echo "docker compose"
|
||||
else
|
||||
echo 'Error: docker-compose or docker compose is not installed.' >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Assign appropriate Docker Compose command
|
||||
COMPOSE_CMD=$(docker_compose_cmd)
|
||||
|
||||
domains=("$DOMAIN" "www.$DOMAIN")
|
||||
rsa_key_size=4096
|
||||
@ -36,7 +46,7 @@ fi
|
||||
echo "### Creating dummy certificate for $domains ..."
|
||||
path="/etc/letsencrypt/live/$domains"
|
||||
mkdir -p "$data_path/conf/live/$domains"
|
||||
docker compose -f docker-compose.prod.yml run --name danswer-stack --rm --entrypoint "\
|
||||
$COMPOSE_CMD -f docker-compose.prod.yml run --name danswer-stack --rm --entrypoint "\
|
||||
openssl req -x509 -nodes -newkey rsa:$rsa_key_size -days 1\
|
||||
-keyout '$path/privkey.pem' \
|
||||
-out '$path/fullchain.pem' \
|
||||
@ -45,11 +55,25 @@ echo
|
||||
|
||||
|
||||
echo "### Starting nginx ..."
|
||||
docker compose -f docker-compose.prod.yml -p danswer-stack up --force-recreate -d nginx
|
||||
$COMPOSE_CMD -f docker-compose.prod.yml -p danswer-stack up --force-recreate -d nginx
|
||||
echo
|
||||
|
||||
echo "Waiting for nginx to be ready, this may take a minute..."
|
||||
while true; do
|
||||
# Use curl to send a request and capture the HTTP status code
|
||||
status_code=$(curl -o /dev/null -s -w "%{http_code}\n" "http://localhost/api/health")
|
||||
|
||||
# Check if the status code is 200
|
||||
if [ "$status_code" -eq 200 ]; then
|
||||
break # Exit the loop
|
||||
else
|
||||
echo "Nginx is not ready yet, retrying in 5 seconds..."
|
||||
sleep 5 # Sleep for 5 seconds before retrying
|
||||
fi
|
||||
done
|
||||
|
||||
echo "### Deleting dummy certificate for $domains ..."
|
||||
docker compose -f docker-compose.prod.yml run --name danswer-stack --rm --entrypoint "\
|
||||
$COMPOSE_CMD -f docker-compose.prod.yml run --name danswer-stack --rm --entrypoint "\
|
||||
rm -Rf /etc/letsencrypt/live/$domains && \
|
||||
rm -Rf /etc/letsencrypt/archive/$domains && \
|
||||
rm -Rf /etc/letsencrypt/renewal/$domains.conf" certbot
|
||||
@ -72,7 +96,7 @@ esac
|
||||
# Enable staging mode if needed
|
||||
if [ $staging != "0" ]; then staging_arg="--staging"; fi
|
||||
|
||||
docker compose -f docker-compose.prod.yml run --name danswer-stack --rm --entrypoint "\
|
||||
$COMPOSE_CMD -f docker-compose.prod.yml run --name danswer-stack --rm --entrypoint "\
|
||||
certbot certonly --webroot -w /var/www/certbot \
|
||||
$staging_arg \
|
||||
$email_arg \
|
||||
@ -83,4 +107,4 @@ docker compose -f docker-compose.prod.yml run --name danswer-stack --rm --entryp
|
||||
echo
|
||||
|
||||
echo "### Reloading nginx ..."
|
||||
docker compose -f docker-compose.prod.yml -p danswer-stack up --force-recreate -d nginx
|
||||
$COMPOSE_CMD -f docker-compose.prod.yml -p danswer-stack up --force-recreate -d nginx
|
||||
|
Reference in New Issue
Block a user