install.sh raw

   1  #!/bin/sh
   2  
   3  ALBYHUB_URL="https://getalby.com/install/hub/server-linux-x86_64.tar.bz2"
   4  PHOENIX_VERSION="0.1.5"
   5  PHOENIX_URL="https://github.com/ACINQ/phoenixd/releases/download/v$PHOENIX_VERSION/phoenix-$PHOENIX_VERSION-linux-x64.zip"
   6  
   7  echo ""
   8  echo ""
   9  echo "⚡️ Welcome to AlbyHub"
  10  echo "-----------------------------------------"
  11  echo "Installing AlbyHub with phoenixd"
  12  echo ""
  13  printf "Absolute install directory path (default: %s/albyhub-phoenixd): " "$HOME"
  14  read USER_INSTALL_DIR
  15  
  16  INSTALL_DIR="${USER_INSTALL_DIR:-$HOME/albyhub-phoenixd}"
  17  
  18  echo "Installing phoenixd $PHOENIX_VERSION into $INSTALL_DIR"
  19  
  20  mkdir -p "$INSTALL_DIR"
  21  mkdir -p "$INSTALL_DIR/phoenixd"
  22  
  23  cd "$INSTALL_DIR" || exit 1
  24  
  25  wget "$PHOENIX_URL"
  26  unzip -j "phoenix-$PHOENIX_VERSION-linux-x64.zip" -d phoenixd
  27  
  28  mkdir -p "$INSTALL_DIR/albyhub"
  29  wget "$ALBYHUB_URL"
  30  if ! tar xvf server-linux-x86_64.tar.bz2 --directory=albyhub; then
  31    echo "Failed to unpack Alby Hub. Potentially bzip2 is missing"
  32    echo "Install it with sudo apt-get install bzip2"
  33    exit 1
  34  fi
  35  
  36  rm server-linux-x86_64.tar.bz2
  37  rm "phoenix-$PHOENIX_VERSION-linux-x64.zip"
  38  
  39  ### Create start scripts
  40  tee "$INSTALL_DIR/phoenixd/start.sh" > /dev/null << EOF
  41  #!/bin/sh
  42  
  43  echo "Starting phoenixd"
  44  echo "Make sure to backup your phoenixd data in $INSTALL_DIR/phoenixd/data"
  45  PHOENIX_DATADIR="$INSTALL_DIR/phoenixd/data" $INSTALL_DIR/phoenixd/phoenixd --agree-to-terms-of-service --http-bind-ip=0.0.0.0
  46  EOF
  47  
  48  tee "$INSTALL_DIR/albyhub/start.sh" > /dev/null << EOF
  49  #!/bin/sh
  50  
  51  echo "Starting Alby Hub"
  52  phoenix_config_file=$INSTALL_DIR/phoenixd/data/phoenix.conf
  53  PHOENIXD_AUTHORIZATION=\$(awk -F'=' '/^http-password/{print \$2}' "\$phoenix_config_file")
  54  WORK_DIR="$INSTALL_DIR/albyhub/data" LN_BACKEND_TYPE=PHOENIX PHOENIXD_ADDRESS="http://localhost:9740" PHOENIXD_AUTHORIZATION=\$PHOENIXD_AUTHORIZATION LDK_GOSSIP_SOURCE="" $INSTALL_DIR/albyhub/bin/albyhub
  55  EOF
  56  
  57  tee "$INSTALL_DIR/start.sh" > /dev/null << EOF
  58  #!/bin/sh
  59  
  60  $INSTALL_DIR/phoenixd/start.sh &
  61  # wait a bit until phoenixd is started
  62  # especially on the first run to make sure the config is there
  63  sleep 8
  64  $INSTALL_DIR/albyhub/start.sh &
  65  echo "Started..."
  66  EOF
  67  
  68  chmod +x "$INSTALL_DIR/start.sh"
  69  chmod +x "$INSTALL_DIR/phoenixd/start.sh"
  70  chmod +x "$INSTALL_DIR/albyhub/start.sh"
  71  
  72  echo ""
  73  echo ""
  74  echo "Installation done."
  75  echo ""
  76  
  77  printf "Do you want to setup a systemd service? (y/n): "
  78  read REPLY
  79  case "$REPLY" in
  80    [Yy]*) ;;
  81    *)
  82      echo "Run $INSTALL_DIR/start.sh to start phoenixd and Alby Hub"
  83      echo "DONE"
  84      exit
  85      ;;
  86  esac
  87  
  88  sudo tee /etc/systemd/system/albyhub.service > /dev/null << EOF
  89  [Unit]
  90  Description=Alby Hub
  91  After=network-online.target
  92  Wants=network-online.target
  93  
  94  [Service]
  95  Type=simple
  96  Restart=always
  97  RestartSec=1
  98  User=$USER
  99  ExecStart=$INSTALL_DIR/albyhub/start.sh
 100  
 101  [Install]
 102  WantedBy=multi-user.target
 103  EOF
 104  
 105  sudo tee /etc/systemd/system/phoenixd.service > /dev/null << EOF
 106  [Unit]
 107  Description=Phoenixd
 108  After=network-online.target
 109  Wants=network-online.target
 110  
 111  [Service]
 112  Type=simple
 113  Restart=always
 114  RestartSec=1
 115  User=$USER
 116  ExecStart=$INSTALL_DIR/phoenixd/start.sh
 117  
 118  [Install]
 119  WantedBy=multi-user.target
 120  EOF
 121  
 122  echo ""
 123  echo ""
 124  
 125  sudo systemctl enable albyhub
 126  sudo systemctl enable phoenixd
 127  sudo systemctl start phoenixd
 128  sudo systemctl start albyhub
 129  
 130  echo "Run 'sudo systemctl start/stop albyhub' to start/stop AlbyHub"
 131  echo "Run 'sudo systemctl start/stop phoenixd' to start/stop phoenixd"
 132  echo ""
 133  echo "✅ DONE."
 134  echo "Alby Hub runs by default on localhost:8080"
 135