mirror of
https://gh.llkk.cc/https://github.com/WeblateOrg/scripts.git
synced 2025-10-03 15:01:00 +08:00
59 lines
1.5 KiB
Text
59 lines
1.5 KiB
Text
|
#!/bin/bash
|
||
|
|
||
|
set -e
|
||
|
|
||
|
# shellcheck disable=SC1091
|
||
|
. /etc/weblate-bootstrap
|
||
|
|
||
|
# Set path to include script directory
|
||
|
PATH="$(dirname "$(readlink -f "$0")"):$PATH"
|
||
|
export PATH
|
||
|
|
||
|
WEBLATE_USERNAME=weblate
|
||
|
USERNAME=weblate
|
||
|
WEBLATE_HOME=$(getent passwd "$USERNAME" | cut -d: -f 6)
|
||
|
WEBLATE_ENV="$WEBLATE_HOME/weblate-env"
|
||
|
|
||
|
# Stop services, wait for empty queue
|
||
|
systemctl stop uwsgi
|
||
|
while sudo -u "$WEBLATE_USERNAME" "$WEBLATE_ENV/bin/weblate" celery_queues | grep ': [^0]' ; do
|
||
|
sleep 1
|
||
|
done
|
||
|
systemctl stop celery-weblate
|
||
|
systemctl stop redis
|
||
|
|
||
|
# Prepare Docker environment
|
||
|
install-weblate-docker --migrate
|
||
|
|
||
|
# Dump PostgreSQL and load it to Docker
|
||
|
# shellcheck disable=SC2024
|
||
|
sudo -u "postgres" pg_dump --no-privileges --no-owner --clean --if-exists weblate > "$WEBLATE_HOME/weblate.sql"
|
||
|
docker compose up -d database --wait
|
||
|
docker compose exec -T database psql --username weblate --dbname postgres < "$WEBLATE_HOME/weblate.sql"
|
||
|
|
||
|
# Move redis data
|
||
|
cp /var/lib/redis/dump.rdb "$WEBLATE_HOME/redis"
|
||
|
chown 999:1000 "$WEBLATE_HOME/redis"
|
||
|
|
||
|
# Filesystem data is already in correct place
|
||
|
|
||
|
# Cleanup system packages
|
||
|
apt-get purge \
|
||
|
redis-server \
|
||
|
uwsgi \
|
||
|
postgresql \
|
||
|
|
||
|
# Start Weblate
|
||
|
sudo -u weblate docker compose up -d --wait
|
||
|
|
||
|
# Show logs
|
||
|
sudo -u weblate docker compose logs
|
||
|
|
||
|
# Track deploy to Sentry
|
||
|
if [ -n "$WEBLATE_SENTRY_TOKEN" ] ; then
|
||
|
sudo -u weblate docker compose exec --user weblate weblate weblate sentry_deploy
|
||
|
fi
|
||
|
|
||
|
# Check
|
||
|
sudo -u weblate docker compose exec --user weblate weblate weblate check --deploy
|