mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-02-27 08:50:46 +01:00
Add deploy script for Docker containers fix to live panel
This commit is contained in:
52
deploy-docker-containers-fix.sh
Executable file
52
deploy-docker-containers-fix.sh
Executable file
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
# Deploy Docker containers fix to live panel (/usr/local/CyberCP).
|
||||
# Run this script ON the server (e.g. 84.247.184.182) as root or with sudo.
|
||||
# Fix: HTTP 500 on /docker/containers - error handling + auto-migrate.
|
||||
|
||||
set -e
|
||||
CYBERCP_ROOT="${CYBERCP_ROOT:-/usr/local/CyberCP}"
|
||||
REPO_URL="${REPO_URL:-https://github.com/master3395/cyberpanel.git}"
|
||||
BRANCH="${BRANCH:-v2.5.5-dev}"
|
||||
WORK_DIR="/tmp/cyberpanel-deploy-docker-$$"
|
||||
|
||||
echo "[$(date -Iseconds)] Deploying Docker containers fix to ${CYBERCP_ROOT}"
|
||||
|
||||
# Clone repo (shallow, branch only)
|
||||
mkdir -p "$WORK_DIR"
|
||||
git clone --depth 1 --branch "$BRANCH" "$REPO_URL" "$WORK_DIR"
|
||||
|
||||
# Backup and copy fixed files
|
||||
for f in dockerManager/container.py dockerManager/views.py; do
|
||||
src="$WORK_DIR/$f"
|
||||
dest="$CYBERCP_ROOT/$f"
|
||||
if [ ! -f "$src" ]; then
|
||||
echo "ERROR: $src not found in repo"
|
||||
exit 1
|
||||
fi
|
||||
if [ -f "$dest" ]; then
|
||||
cp -a "$dest" "${dest}.bak.$(date +%Y%m%d%H%M%S)"
|
||||
fi
|
||||
cp -a "$src" "$dest"
|
||||
echo " -> $dest"
|
||||
done
|
||||
|
||||
# Run migrations for dockerManager (creates table if missing)
|
||||
if [ -x "$CYBERCP_ROOT/bin/python" ] && [ -f "$CYBERCP_ROOT/manage.py" ]; then
|
||||
echo "Running: manage.py migrate dockerManager --noinput"
|
||||
"$CYBERCP_ROOT/bin/python" "$CYBERCP_ROOT/manage.py" migrate dockerManager --noinput || true
|
||||
fi
|
||||
|
||||
# Restart panel service so Django loads new code
|
||||
if systemctl is-active --quiet lscpd 2>/dev/null; then
|
||||
echo "Restarting lscpd..."
|
||||
systemctl restart lscpd
|
||||
elif systemctl is-active --quiet gunicorn 2>/dev/null; then
|
||||
echo "Restarting gunicorn..."
|
||||
systemctl restart gunicorn
|
||||
else
|
||||
echo "Restart lscpd or gunicorn manually so the new code is loaded."
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
rm -rf "$WORK_DIR"
|
||||
echo "[$(date -Iseconds)] Done. Test: https://YOUR_IP:2087/docker/containers"
|
||||
Reference in New Issue
Block a user