Files
appfactory-tools/scripts/delete-app.sh
T
2026-05-28 08:45:14 +02:00

76 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
CONFIG_FILE="/opt/appfactory/config/appfactory.env"
source "$CONFIG_FILE"
APP_ID="${1:-}"
DB_FILE="/opt/appfactory/data/appfactory/appfactory.db"
TOOLS_DIR="$WORKSPACE_DIR/appfactory-tools"
if [ -z "$APP_ID" ]; then
echo "Usage: ./delete-app.sh <app-id>"
exit 1
fi
echo "Deleting app: $APP_ID"
echo "Deleting Gitea repository..."
curl -sS -X DELETE \
"$GITEA_URL/api/v1/repos/$GITEA_ORG/$APP_ID" \
-H "Authorization: token $GITEA_TOKEN" || true
echo "Stopping container..."
docker rm -f "$APP_ID" || true
echo "Removing image..."
docker image rm "$APP_ID:latest" || true
echo "Removing workspace..."
rm -rf "$WORKSPACE_DIR/$APP_ID"
echo "Removing app from database..."
python3 - "$DB_FILE" "$APP_ID" <<'PY'
import sqlite3
import sys
db_file = sys.argv[1]
app_id = sys.argv[2]
con = sqlite3.connect(db_file)
con.execute(
"DELETE FROM deployments WHERE app_id = ?",
(app_id,)
)
con.execute(
"DELETE FROM apps WHERE id = ?",
(app_id,)
)
con.commit()
con.close()
PY
echo "Regenerating generated files..."
"$TOOLS_DIR/scripts/generate-catalog.sh"
"$TOOLS_DIR/scripts/generate-apps-compose.sh"
"$TOOLS_DIR/scripts/generate-caddyfile.sh"
"$TOOLS_DIR/scripts/generate-apps-page.sh"
echo "Reloading Caddy..."
docker exec appfactory-caddy caddy validate \
--config /etc/caddy/Caddyfile
docker exec appfactory-caddy caddy reload \
--config /etc/caddy/Caddyfile
echo ""
echo "DONE"