Sanitized mirror from private repository - 2026-04-20 01:10:52 UTC
This commit is contained in:
96
hosts/vms/matrix-ubuntu-vm/scripts/update.sh
Executable file
96
hosts/vms/matrix-ubuntu-vm/scripts/update.sh
Executable file
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Homelab Update Script
|
||||
# Updates Mastodon, Mattermost, Matrix Synapse, and system packages
|
||||
|
||||
echo "=== Homelab Update Script ==="
|
||||
echo "Started at: $(date)"
|
||||
echo ""
|
||||
|
||||
# Update Mastodon
|
||||
echo "[1/5] Updating Mastodon..."
|
||||
cd /opt/mastodon
|
||||
docker compose pull
|
||||
docker compose down
|
||||
docker compose run --rm web bundle exec rails db:migrate
|
||||
docker compose up -d
|
||||
echo "✅ Mastodon updated!"
|
||||
echo ""
|
||||
|
||||
# Update Mattermost
|
||||
echo "[2/5] Updating Mattermost..."
|
||||
cd /opt/mattermost
|
||||
docker compose pull
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
echo "✅ Mattermost updated!"
|
||||
echo ""
|
||||
|
||||
# Update Matrix Synapse
|
||||
echo "[3/5] Updating Matrix Synapse..."
|
||||
cd /opt/synapse
|
||||
source venv/bin/activate
|
||||
|
||||
# Get current version
|
||||
CURRENT_VERSION=$(python -m synapse.app.homeserver --version 2>&1 | head -1)
|
||||
echo "Current version: $CURRENT_VERSION"
|
||||
|
||||
# Upgrade
|
||||
pip install --upgrade matrix-synapse
|
||||
|
||||
# Get new version
|
||||
NEW_VERSION=$(python -m synapse.app.homeserver --version 2>&1 | head -1)
|
||||
echo "New version: $NEW_VERSION"
|
||||
|
||||
# Restart both Synapse instances
|
||||
echo "Restarting Synapse instances..."
|
||||
pkill -f 'synapse.app.homeserver' || true
|
||||
sleep 2
|
||||
|
||||
# Start mx.vish.gg (primary)
|
||||
sudo -u synapse /opt/synapse/venv/bin/python -m synapse.app.homeserver \
|
||||
--config-path=/opt/synapse-mx/homeserver.yaml --daemonize
|
||||
echo " - mx.vish.gg started on port 8018"
|
||||
|
||||
# Start legacy vish
|
||||
sudo -u synapse /opt/synapse/venv/bin/python -m synapse.app.homeserver \
|
||||
--config-path=/opt/synapse/homeserver.yaml --daemonize
|
||||
echo " - vish (legacy) started on port 8008"
|
||||
|
||||
deactivate
|
||||
echo "✅ Matrix Synapse updated!"
|
||||
echo ""
|
||||
|
||||
# Update TURN server
|
||||
echo "[4/5] Updating TURN server (coturn)..."
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -y coturn 2>/dev/null && echo "✅ Coturn updated!" || echo "⚠️ Coturn update skipped"
|
||||
sudo systemctl restart coturn 2>/dev/null || true
|
||||
echo ""
|
||||
|
||||
# Update system packages
|
||||
echo "[5/5] Updating system packages..."
|
||||
sudo apt-get update
|
||||
sudo apt-get upgrade -y
|
||||
sudo apt-get autoremove -y
|
||||
echo "✅ System packages updated!"
|
||||
echo ""
|
||||
|
||||
# Verification
|
||||
echo "=== Verification ==="
|
||||
echo ""
|
||||
echo "Mastodon:"
|
||||
docker compose -f /opt/mastodon/docker-compose.yml ps --format "table {{.Name}}\t{{.Status}}" 2>/dev/null | head -5
|
||||
|
||||
echo ""
|
||||
echo "Mattermost:"
|
||||
docker ps --filter "name=mattermost" --format "table {{.Names}}\t{{.Status}}"
|
||||
|
||||
echo ""
|
||||
echo "Matrix Synapse:"
|
||||
curl -s http://localhost:8018/_matrix/federation/v1/version 2>/dev/null && echo " (mx.vish.gg)" || echo "❌ mx.vish.gg not responding"
|
||||
curl -s http://localhost:8008/_matrix/federation/v1/version 2>/dev/null && echo " (vish legacy)" || echo "❌ vish not responding"
|
||||
|
||||
echo ""
|
||||
echo "=== Update Complete ==="
|
||||
echo "Finished at: $(date)"
|
||||
Reference in New Issue
Block a user