Compare commits
4 Commits
de56b564c5
...
fix/deploy
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
229c0f8b48
|
||
|
|
ec3e1ee1bf
|
||
|
|
c9dab3e93b
|
||
|
|
349f1db721
|
@@ -6,6 +6,8 @@ set -euo pipefail
|
|||||||
SITE_DIR=/srv/sum/nohype
|
SITE_DIR=/srv/sum/nohype
|
||||||
APP_DIR=${SITE_DIR}/app
|
APP_DIR=${SITE_DIR}/app
|
||||||
|
|
||||||
|
cd "${SITE_DIR}"
|
||||||
|
|
||||||
echo "==> Pulling latest code"
|
echo "==> Pulling latest code"
|
||||||
git -C "${APP_DIR}" pull origin main
|
git -C "${APP_DIR}" pull origin main
|
||||||
|
|
||||||
@@ -15,20 +17,17 @@ cp "${APP_DIR}/docker-compose.prod.yml" "${SITE_DIR}/docker-compose.prod.yml"
|
|||||||
echo "==> Ensuring static/media directories exist"
|
echo "==> Ensuring static/media directories exist"
|
||||||
mkdir -p "${SITE_DIR}/static" "${SITE_DIR}/media"
|
mkdir -p "${SITE_DIR}/static" "${SITE_DIR}/media"
|
||||||
|
|
||||||
echo "==> Building image"
|
echo "==> Rebuilding and recreating web container"
|
||||||
docker compose -f "${SITE_DIR}/docker-compose.prod.yml" build --no-cache
|
docker compose -f "${SITE_DIR}/docker-compose.prod.yml" up -d --no-deps --build --force-recreate web
|
||||||
|
|
||||||
echo "==> Restarting service"
|
|
||||||
sudo systemctl restart sum-nohype
|
|
||||||
|
|
||||||
echo "==> Waiting for health check"
|
echo "==> Waiting for health check"
|
||||||
for i in $(seq 1 30); do
|
for i in $(seq 1 30); do
|
||||||
if curl -fsS http://localhost:8001/ >/dev/null 2>&1; then
|
if curl -fsS -H "Host: nohypeai.net" http://localhost:8001/ >/dev/null 2>&1; then
|
||||||
echo "==> Site is up"
|
echo "==> Site is up"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
sleep 3
|
sleep 3
|
||||||
done
|
done
|
||||||
echo "ERROR: site did not come up after 90s" >&2
|
echo "ERROR: site did not come up after 90s" >&2
|
||||||
sudo journalctl -u sum-nohype --no-pager -n 50
|
docker compose -f "${SITE_DIR}/docker-compose.prod.yml" logs --tail=50 web
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
@@ -6,6 +6,14 @@ python manage.py tailwind build
|
|||||||
python manage.py migrate --noinput
|
python manage.py migrate --noinput
|
||||||
python manage.py collectstatic --noinput
|
python manage.py collectstatic --noinput
|
||||||
|
|
||||||
|
# Set Wagtail site hostname from first entry in ALLOWED_HOSTS
|
||||||
|
python manage.py shell -c "
|
||||||
|
from wagtail.models import Site
|
||||||
|
import os
|
||||||
|
hostname = os.environ.get('ALLOWED_HOSTS', 'localhost').split(',')[0].strip()
|
||||||
|
Site.objects.update(hostname=hostname, port=443, site_name='No Hype AI')
|
||||||
|
"
|
||||||
|
|
||||||
exec gunicorn config.wsgi:application \
|
exec gunicorn config.wsgi:application \
|
||||||
--workers 3 \
|
--workers 3 \
|
||||||
--bind 0.0.0.0:8000 \
|
--bind 0.0.0.0:8000 \
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ ExecStartPre=docker compose -f docker-compose.prod.yml pull --ignore-pull-failur
|
|||||||
ExecStart=docker compose -f docker-compose.prod.yml up --build
|
ExecStart=docker compose -f docker-compose.prod.yml up --build
|
||||||
ExecStop=docker compose -f docker-compose.prod.yml down
|
ExecStop=docker compose -f docker-compose.prod.yml down
|
||||||
|
|
||||||
Restart=on-failure
|
Restart=always
|
||||||
RestartSec=10
|
RestartSec=10
|
||||||
TimeoutStartSec=300
|
TimeoutStartSec=300
|
||||||
TimeoutStopSec=30
|
TimeoutStopSec=30
|
||||||
|
|||||||
Reference in New Issue
Block a user