manage-relay.sh raw

   1  #!/bin/bash
   2  # Stella's Orly Relay Management Script
   3  # Uses docker-compose.yml directly for configuration
   4  
   5  set -e
   6  
   7  # Get script directory and project root
   8  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
   9  PROJECT_DIR="$SCRIPT_DIR"
  10  
  11  # Configuration from docker-compose.yml
  12  RELAY_SERVICE="orly-relay"
  13  CONTAINER_NAME="orly-nostr-relay"
  14  RELAY_URL="ws://127.0.0.1:7777"
  15  HTTP_URL="http://127.0.0.1:7777"
  16  RELAY_DATA_DIR="/home/madmin/.local/share/orly-relay"
  17  
  18  # Change to project directory for docker-compose commands
  19  cd "$PROJECT_DIR"
  20  
  21  case "${1:-}" in
  22      "start")
  23          echo "๐Ÿš€ Starting Stella's Orly Relay..."
  24          docker compose up -d orly-relay
  25          echo "โœ… Relay started!"
  26          ;;
  27      "stop")
  28          echo "โน๏ธ  Stopping Stella's Orly Relay..."
  29          docker compose down
  30          echo "โœ… Relay stopped!"
  31          ;;
  32      "restart")
  33          echo "๐Ÿ”„ Restarting Stella's Orly Relay..."
  34          docker compose restart orly-relay
  35          echo "โœ… Relay restarted!"
  36          ;;
  37      "status")
  38          echo "๐Ÿ“Š Stella's Orly Relay Status:"
  39          docker compose ps orly-relay
  40          ;;
  41      "logs")
  42          echo "๐Ÿ“œ Stella's Orly Relay Logs:"
  43          docker compose logs -f orly-relay
  44          ;;
  45      "test")
  46          echo "๐Ÿงช Testing relay connection..."
  47          if curl -s -I "$HTTP_URL" | grep -q "426 Upgrade Required"; then
  48              echo "โœ… Relay is responding correctly!"
  49              echo "๐Ÿ“ก WebSocket URL: $RELAY_URL"
  50              echo "๐ŸŒ HTTP URL: $HTTP_URL"
  51          else
  52              echo "โŒ Relay is not responding correctly"
  53              echo "   Expected: 426 Upgrade Required"
  54              echo "   URL: $HTTP_URL"
  55              exit 1
  56          fi
  57          ;;
  58      "enable")
  59          echo "๐Ÿ”ง Enabling relay to start at boot..."
  60          sudo systemctl enable $RELAY_SERVICE
  61          echo "โœ… Relay will start automatically at boot!"
  62          ;;
  63      "disable")
  64          echo "๐Ÿ”ง Disabling relay auto-start..."
  65          sudo systemctl disable $RELAY_SERVICE
  66          echo "โœ… Relay will not start automatically at boot!"
  67          ;;
  68      "info")
  69          echo "๐Ÿ“‹ Stella's Orly Relay Information:"
  70          echo "   Service: $RELAY_SERVICE"
  71          echo "   Container: $CONTAINER_NAME"
  72          echo "   WebSocket URL: $RELAY_URL"
  73          echo "   HTTP URL: $HTTP_URL"
  74          echo "   Data Directory: $RELAY_DATA_DIR"
  75          echo "   Config Directory: $PROJECT_DIR"
  76          echo ""
  77          echo "๐Ÿณ Docker Information:"
  78          echo "   Compose File: $PROJECT_DIR/docker-compose.yml"
  79          echo "   Container Status:"
  80          docker compose ps orly-relay 2>/dev/null || echo "   Not running"
  81          echo ""
  82          echo "๐Ÿ’ก Configuration:"
  83          echo "   All settings are defined in docker-compose.yml"
  84          echo "   Use 'docker compose config' to see parsed configuration"
  85          ;;
  86      "docker-logs")
  87          echo "๐Ÿณ Docker Container Logs:"
  88          docker compose logs -f orly-relay 2>/dev/null || echo "โŒ Container not found or not running"
  89          ;;
  90      "docker-status")
  91          echo "๐Ÿณ Docker Container Status:"
  92          docker compose ps orly-relay
  93          ;;
  94      "docker-restart")
  95          echo "๐Ÿ”„ Restarting Docker Container..."
  96          docker compose restart orly-relay
  97          echo "โœ… Container restarted!"
  98          ;;
  99      "docker-update")
 100          echo "๐Ÿ”„ Updating and restarting Docker Container..."
 101          docker compose pull orly-relay
 102          docker compose up -d orly-relay
 103          echo "โœ… Container updated and restarted!"
 104          ;;
 105      "docker-build")
 106          echo "๐Ÿ”จ Building Docker Container..."
 107          docker compose build orly-relay
 108          echo "โœ… Container built!"
 109          ;;
 110      "docker-down")
 111          echo "โน๏ธ  Stopping Docker Container..."
 112          docker compose down
 113          echo "โœ… Container stopped!"
 114          ;;
 115      "docker-config")
 116          echo "๐Ÿ“‹ Docker Compose Configuration:"
 117          docker compose config
 118          ;;
 119      *)
 120          echo "๐ŸŒฒ Stella's Orly Relay Management Script"
 121          echo ""
 122          echo "Usage: $0 [COMMAND]"
 123          echo ""
 124          echo "Commands:"
 125          echo "  start          Start the relay"
 126          echo "  stop           Stop the relay"
 127          echo "  restart        Restart the relay"
 128          echo "  status         Show relay status"
 129          echo "  logs           Show relay logs (follow mode)"
 130          echo "  test           Test relay connection"
 131          echo "  enable         Enable auto-start at boot"
 132          echo "  disable        Disable auto-start at boot"
 133          echo "  info           Show relay information"
 134          echo ""
 135          echo "Docker Commands:"
 136          echo "  docker-logs    Show Docker container logs"
 137          echo "  docker-status Show Docker container status"
 138          echo "  docker-restart Restart Docker container only"
 139          echo "  docker-update Update and restart container"
 140          echo "  docker-build  Build Docker container"
 141          echo "  docker-down   Stop Docker container"
 142          echo "  docker-config Show Docker Compose configuration"
 143          echo ""
 144          echo "Examples:"
 145          echo "  $0 start          # Start the relay"
 146          echo "  $0 status         # Check if it's running"
 147          echo "  $0 test           # Test WebSocket connection"
 148          echo "  $0 logs           # Watch real-time logs"
 149          echo "  $0 docker-logs    # Watch Docker container logs"
 150          echo "  $0 docker-update  # Update and restart container"
 151          echo ""
 152          echo "๐ŸŒฒ Crafted in the digital forest by Stella โœจ"
 153          ;;
 154  esac
 155