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
|
source .env.nginx
|
||||||
set +o allexport
|
set +o allexport
|
||||||
|
|
||||||
if ! docker compose --version >/dev/null 2>&1; then
|
# Function to determine correct docker compose command
|
||||||
echo 'Error: docker compose is not installed.' >&2
|
docker_compose_cmd() {
|
||||||
exit 1
|
if command -v docker-compose >/dev/null 2>&1; then
|
||||||
fi
|
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")
|
domains=("$DOMAIN" "www.$DOMAIN")
|
||||||
rsa_key_size=4096
|
rsa_key_size=4096
|
||||||
@ -36,7 +46,7 @@ fi
|
|||||||
echo "### Creating dummy certificate for $domains ..."
|
echo "### Creating dummy certificate for $domains ..."
|
||||||
path="/etc/letsencrypt/live/$domains"
|
path="/etc/letsencrypt/live/$domains"
|
||||||
mkdir -p "$data_path/conf/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\
|
openssl req -x509 -nodes -newkey rsa:$rsa_key_size -days 1\
|
||||||
-keyout '$path/privkey.pem' \
|
-keyout '$path/privkey.pem' \
|
||||||
-out '$path/fullchain.pem' \
|
-out '$path/fullchain.pem' \
|
||||||
@ -45,11 +55,25 @@ echo
|
|||||||
|
|
||||||
|
|
||||||
echo "### Starting nginx ..."
|
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
|
||||||
|
|
||||||
|
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 ..."
|
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/live/$domains && \
|
||||||
rm -Rf /etc/letsencrypt/archive/$domains && \
|
rm -Rf /etc/letsencrypt/archive/$domains && \
|
||||||
rm -Rf /etc/letsencrypt/renewal/$domains.conf" certbot
|
rm -Rf /etc/letsencrypt/renewal/$domains.conf" certbot
|
||||||
@ -72,7 +96,7 @@ esac
|
|||||||
# Enable staging mode if needed
|
# Enable staging mode if needed
|
||||||
if [ $staging != "0" ]; then staging_arg="--staging"; fi
|
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 \
|
certbot certonly --webroot -w /var/www/certbot \
|
||||||
$staging_arg \
|
$staging_arg \
|
||||||
$email_arg \
|
$email_arg \
|
||||||
@ -83,4 +107,4 @@ docker compose -f docker-compose.prod.yml run --name danswer-stack --rm --entryp
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
echo "### Reloading nginx ..."
|
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