- Updated the Development-Workflow documentation to clarify deployment strategy, emphasizing direct deployment to the live system for testing. - Added detailed instructions for the deployment command, including syncing code, building frontend and backend, and restarting services. - Improved SSH key management section to assist with authentication issues. - Expanded the testing workflow to include steps for checking logs and syncing changes back to the ISO build. - Updated the ISO build integration section to ensure system-level changes are captured for future builds. - Refactored various sections for clarity and completeness, including deployment paths and system configuration files.
77 lines
3.2 KiB
Bash
Executable File
77 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Sync configuration files from live server to ISO build
|
|
#
|
|
# Usage: ./sync-from-live.sh [target-host]
|
|
#
|
|
# This script captures system configuration from the live development
|
|
# server and saves it to the image-recipe/configs/ directory for
|
|
# inclusion in future ISO builds.
|
|
|
|
set -e
|
|
|
|
# Configuration
|
|
TARGET_HOST="${1:-archipelago@192.168.1.228}"
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
CONFIG_DIR="$SCRIPT_DIR/configs"
|
|
|
|
echo "╔════════════════════════════════════════════════════════════════╗"
|
|
echo "║ Syncing Configurations from Live Server ║"
|
|
echo "╚════════════════════════════════════════════════════════════════╝"
|
|
echo ""
|
|
echo "Target: $TARGET_HOST"
|
|
echo "Output: $CONFIG_DIR"
|
|
echo ""
|
|
|
|
# Ensure configs directory exists
|
|
mkdir -p "$CONFIG_DIR"
|
|
|
|
# Sync systemd service
|
|
echo "📋 Capturing systemd service..."
|
|
ssh "$TARGET_HOST" 'sudo cat /etc/systemd/system/archipelago.service' > "$CONFIG_DIR/archipelago.service"
|
|
echo " ✅ Saved to configs/archipelago.service"
|
|
|
|
# Sync nginx configuration
|
|
echo "📋 Capturing nginx configuration..."
|
|
ssh "$TARGET_HOST" 'sudo cat /etc/nginx/sites-available/archipelago' > "$CONFIG_DIR/nginx-archipelago.conf"
|
|
echo " ✅ Saved to configs/nginx-archipelago.conf"
|
|
|
|
# Sync logrotate if it exists
|
|
if ssh "$TARGET_HOST" 'sudo test -f /etc/logrotate.d/archipelago'; then
|
|
echo "📋 Capturing logrotate configuration..."
|
|
ssh "$TARGET_HOST" 'sudo cat /etc/logrotate.d/archipelago' > "$CONFIG_DIR/logrotate.conf"
|
|
echo " ✅ Saved to configs/logrotate.conf"
|
|
fi
|
|
|
|
# Check for custom scripts
|
|
echo ""
|
|
echo "📋 Checking for custom scripts..."
|
|
if ssh "$TARGET_HOST" 'sudo test -d /opt/archipelago/scripts'; then
|
|
SCRIPT_COUNT=$(ssh "$TARGET_HOST" 'sudo ls /opt/archipelago/scripts/ 2>/dev/null | wc -l' | tr -d ' ')
|
|
if [ "$SCRIPT_COUNT" -gt 0 ]; then
|
|
echo " ⚠️ Found $SCRIPT_COUNT script(s) in /opt/archipelago/scripts/"
|
|
echo " Review and manually sync if needed"
|
|
ssh "$TARGET_HOST" 'sudo ls -lh /opt/archipelago/scripts/'
|
|
else
|
|
echo " ✅ No custom scripts found"
|
|
fi
|
|
else
|
|
echo " ✅ No custom scripts directory"
|
|
fi
|
|
|
|
# Summary
|
|
echo ""
|
|
echo "╔════════════════════════════════════════════════════════════════╗"
|
|
echo "║ Sync Complete! ║"
|
|
echo "╚════════════════════════════════════════════════════════════════╝"
|
|
echo ""
|
|
echo "Configuration files captured:"
|
|
ls -lh "$CONFIG_DIR"
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo " 1. Review the captured configurations"
|
|
echo " 2. Build backend: ./scripts/build-backend.sh"
|
|
echo " 3. Build frontend: ./scripts/build-frontend.sh"
|
|
echo " 4. Update integration script to use these configs"
|
|
echo " 5. Build ISO: ./build-debian-iso.sh"
|
|
echo ""
|