feat: Add presence heartbeat for Matrix online status
- matrix-gateway: POST /internal/matrix/presence/online endpoint - usePresenceHeartbeat hook with activity tracking - Auto away after 5 min inactivity - Offline on page close/visibility change - Integrated in MatrixChatRoom component
This commit is contained in:
96
scripts/stop-prod.sh
Normal file
96
scripts/stop-prod.sh
Normal file
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# DAARION Production Stop Script
|
||||
# Usage: ./scripts/stop-prod.sh [--force]
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Configuration
|
||||
COMPOSE_FILE="docker-compose.all.yml"
|
||||
CADDY_COMPOSE_FILE="docker-compose.caddy.yml"
|
||||
BACKUP_DIR="/opt/daarion/backups"
|
||||
|
||||
log_info() {
|
||||
echo -e "ℹ️ $1"
|
||||
}
|
||||
|
||||
log_success() {
|
||||
echo -e "${GREEN}✅ $1${NC}"
|
||||
}
|
||||
|
||||
log_warning() {
|
||||
echo -e "${YELLOW}⚠️ $1${NC}"
|
||||
}
|
||||
|
||||
# Banner
|
||||
echo "╔══════════════════════════════════════╗"
|
||||
echo "║ DAARION Production Stop ║"
|
||||
echo "╚══════════════════════════════════════╝"
|
||||
echo ""
|
||||
|
||||
# Check for force flag
|
||||
FORCE=false
|
||||
if [ "$1" == "--force" ]; then
|
||||
FORCE=true
|
||||
log_warning "Force stop mode enabled"
|
||||
fi
|
||||
|
||||
# Confirmation
|
||||
if [ "$FORCE" == false ]; then
|
||||
read -p "⚠️ Are you sure you want to stop DAARION production? (yes/no): " confirmation
|
||||
if [ "$confirmation" != "yes" ]; then
|
||||
echo "Cancelled."
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Create backup before stopping
|
||||
log_info "Creating database backup..."
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
BACKUP_FILE="$BACKUP_DIR/backup_before_stop_$(date +%Y%m%d_%H%M%S).sql"
|
||||
|
||||
if docker ps --filter "name=daarion-postgres" --format "{{.Names}}" | grep -q postgres; then
|
||||
docker compose -f "$COMPOSE_FILE" exec -T postgres \
|
||||
pg_dump -U daarion_user daarion > "$BACKUP_FILE" 2>/dev/null && \
|
||||
gzip "$BACKUP_FILE" && \
|
||||
log_success "Backup created: ${BACKUP_FILE}.gz"
|
||||
else
|
||||
log_warning "PostgreSQL not running, skipping backup"
|
||||
fi
|
||||
|
||||
# Stop Caddy first
|
||||
if [ -f "$CADDY_COMPOSE_FILE" ]; then
|
||||
log_info "Stopping Caddy..."
|
||||
docker compose -f "$CADDY_COMPOSE_FILE" down
|
||||
log_success "Caddy stopped"
|
||||
fi
|
||||
|
||||
# Stop all services
|
||||
log_info "Stopping all services..."
|
||||
docker compose -f "$COMPOSE_FILE" down
|
||||
|
||||
log_success "All services stopped"
|
||||
|
||||
# Optional: Clean volumes
|
||||
if [ "$FORCE" == true ]; then
|
||||
read -p "⚠️ Remove all volumes (data will be lost)? (yes/no): " remove_volumes
|
||||
if [ "$remove_volumes" == "yes" ]; then
|
||||
log_warning "Removing volumes..."
|
||||
docker compose -f "$COMPOSE_FILE" down -v
|
||||
log_success "Volumes removed"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
log_success "🛑 DAARION production stopped"
|
||||
echo ""
|
||||
echo " To start again: ./scripts/deploy-prod.sh"
|
||||
echo " Backups location: $BACKUP_DIR"
|
||||
|
||||
Reference in New Issue
Block a user