BloomFeed Addons v0.22
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Resets a BloomFeed instance to a fresh, empty state: wipes the database and
|
||||
# application storage, then restarts the stack so the first user to register
|
||||
# becomes the new owner. Source code, .env and Docker images are untouched —
|
||||
# use uninstall.sh instead if you want to remove those too.
|
||||
|
||||
APP_DIR="/opt/bloomfeed"
|
||||
PROJECT_NAME="bloomfeed"
|
||||
|
||||
ASSUME_YES=false
|
||||
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--yes|-y) ASSUME_YES=true ;;
|
||||
--help|-h)
|
||||
echo "Usage: bash reset.sh [--yes]"
|
||||
echo " --yes Skip the interactive confirmation"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $arg (use --help)"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ ! -d "${APP_DIR}" ]]; then
|
||||
echo "ERROR: ${APP_DIR} not found — nothing to reset."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "${APP_DIR}"
|
||||
|
||||
echo "WARNING: this will PERMANENTLY delete all data on this instance:"
|
||||
echo " - the MariaDB database (all accounts, feeds, articles, notifiers)"
|
||||
echo " - the application storage files"
|
||||
echo "The source code, .env and Docker images are kept."
|
||||
|
||||
if [[ "${ASSUME_YES}" != true ]]; then
|
||||
read -r -p "Type RESET to confirm: " CONFIRM
|
||||
if [[ "${CONFIRM}" != "RESET" ]]; then
|
||||
echo "Cancelled. Nothing was changed."
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "==> Stopping the stack"
|
||||
sudo docker compose down --remove-orphans
|
||||
|
||||
echo "==> Removing data volumes"
|
||||
sudo docker volume rm \
|
||||
"${PROJECT_NAME}_db_data" \
|
||||
"${PROJECT_NAME}_app_storage" \
|
||||
"${PROJECT_NAME}_scheduler_storage" \
|
||||
2>/dev/null || true
|
||||
|
||||
echo "==> Starting a fresh stack"
|
||||
sudo docker compose up -d
|
||||
|
||||
echo "==> Waiting for the database to be ready"
|
||||
for i in $(seq 1 30); do
|
||||
if sudo docker compose exec -T db healthcheck.sh --connect --innodb_initialized >/dev/null 2>&1; then
|
||||
echo "==> Database ready"
|
||||
break
|
||||
fi
|
||||
echo "==> Database not ready yet, retrying ($i/30)"
|
||||
sleep 3
|
||||
done
|
||||
|
||||
echo "==> Waiting for the entrypoint migrations to finish"
|
||||
for i in $(seq 1 30); do
|
||||
if curl -sf -o /dev/null "http://localhost:7081/up"; then
|
||||
echo "==> Application up"
|
||||
break
|
||||
fi
|
||||
echo "==> Application not ready yet, retrying ($i/30)"
|
||||
sleep 3
|
||||
done
|
||||
|
||||
echo
|
||||
echo "==> Reset finished. Visit the instance and create the new owner account."
|
||||
Reference in New Issue
Block a user