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