-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: improve install scripts for linux #395
Changes from all commits
ad990db
1fbf5e9
645ec3a
c219235
e26693a
c815c40
f7a8b89
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Example Caddyfile to run Alby Hub behind a Caddy reverse proxy | ||
# Caddy has embedded letsencrypt support and creates HTTPS certificates | ||
# learn more: https://caddyserver.com/docs/getting-started | ||
|
||
# Refer to the Caddy docs for more information: | ||
# https://caddyserver.com/docs/caddyfile | ||
|
||
|
||
:80 { | ||
# optional additional basic authentication | ||
# the password is hashed, see Caddy documentation: https://caddyserver.com/docs/caddyfile/directives/basic_auth | ||
#basicauth { | ||
# Username "Bob", password "hiccup" | ||
# Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG | ||
#} | ||
|
||
# Alby Hub runs on 8080 by default | ||
reverse_proxy :8080 | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# Alby Hub on a Linux server | ||
|
||
## Requirements | ||
|
||
- Linux distribution | ||
- Runs pretty much on any VPS/server with 512MB RAM or more (+some swap space ideally) | ||
|
||
### Installation (non-Docker) | ||
|
||
We have prepared an installation script that installs Alby Hub for you. | ||
We recommend inspecting the install script and if needed adjusting it or taking inspiration from it for your setup. | ||
|
||
As a general good practice we recommend creating a new system user. | ||
|
||
$ adduser albyhub | ||
|
||
Run the installation script on your server: | ||
|
||
$ wget https://raw.githubusercontent.com/getAlby/hub/master/scripts/linux-x86_64/install.sh | ||
$ ./install.sh | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. if we do this, it won't run as the correct user, right? it's not the same as the ssh command below There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. why not? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we mix two different users, if the user runs a different command next time they use a different user. In my opinion this is confusing There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't get why they run next time a differnt user? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. there are 2 commands they can run - if the next time they use a different one based on whether they are ssh'd in or not, it uses a different user. I did this by accident There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. which 2 commands are you talking about and why would the user be different? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this is the current version: https://github.com/getAlby/hub/pull/415/files |
||
|
||
Or directly through SSH: | ||
$ ssh albyhub@[YOUR IP] '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/getAlby/hub/master/scripts/linux-x86_64/install.sh)"' | ||
|
||
|
||
The install script will prompt you for an installation folder and will install Alby Hub. | ||
|
||
Optionally it can also create a systemd service for you. | ||
|
||
Alby Hub will run on localhost:8080 by default (configurable using the `PORT` environment variable) | ||
To run on a public domain we recommend the use of a reverse proxy using [Caddy](https://caddyserver.com/) | ||
|
||
### Running the services | ||
|
||
Either use systemd: | ||
|
||
$ sudo systemctl [start|stop] albyhub.service | ||
|
||
Or use the start scripts: | ||
|
||
$ [your install path]/start.sh | ||
|
||
### Backup ! | ||
|
||
Make sure to backup your data directories: | ||
|
||
- `[your install path]/data` | ||
|
||
### Update | ||
|
||
The install script will add an update.sh script to update Alby Hub. It will download the latest version for you. | ||
|
||
After the update you will have to unlock Alby Hub again. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
#!/bin/bash | ||
|
||
ALBYHUB_URL="https://getalby.com/install/hub/server-linux-x86_64.tar.bz2" | ||
echo "" | ||
echo "" | ||
echo "⚡️ Welcome to Alby Hub" | ||
echo "-----------------------------------------" | ||
echo "Installing Alby Hub" | ||
echo "" | ||
read -p "Absolute install directory path (default: $HOME/albyhub): " USER_INSTALL_DIR | ||
|
||
INSTALL_DIR="${USER_INSTALL_DIR:-$HOME/albyhub}" | ||
|
||
# create installation directory | ||
mkdir -p $INSTALL_DIR | ||
cd $INSTALL_DIR | ||
|
||
# download and extract the Alby Hub executable | ||
wget $ALBYHUB_URL | ||
tar xvf server-linux-x86_64.tar.bz2 | ||
if [[ $? -eq 0 ]]; then | ||
echo "Failed to unpack Alby Hub. Potentially bzip2 is missing" | ||
echo "Install it with sudo apt-get install bzip2" | ||
fi | ||
|
||
rm server-linux-x86_64.tar.bz2 | ||
|
||
# prepare the data directory. this is pesistent and will hold all important data | ||
mkdir -p $INSTALL_DIR/data | ||
|
||
# create a simple start script that sets the default configuration variables | ||
tee -a $INSTALL_DIR/start.sh > /dev/null << EOF | ||
#!/bin/bash | ||
|
||
echo "Starting Alby Hub" | ||
WORK_DIR="$INSTALL_DIR/data" LOG_EVENTS=true LDK_GOSSIP_SOURCE="" $INSTALL_DIR/bin/albyhub | ||
EOF | ||
chmod +x $INSTALL_DIR/start.sh | ||
|
||
# add an update script to keep the Hub up to date | ||
# run this to update the hub | ||
wget https://raw.githubusercontent.com/getAlby/hub/master/scripts/linux-x86_64/update.sh | ||
chmod +x $INSTALL_DIR/update.sh | ||
|
||
echo "" | ||
echo "" | ||
echo "✅ Installation done." | ||
echo "" | ||
|
||
# optionally create a systemd service to start alby hub | ||
read -p "Do you want to setup a systemd service (requires sudo permission)? (y/n): " -n 1 -r | ||
if [[ ! $REPLY =~ ^[Yy]$ ]] | ||
then | ||
echo "" | ||
echo "" | ||
echo "Run $INSTALL_DIR/start.sh to start Alby Hub" | ||
echo "✅ DONE" | ||
exit | ||
fi | ||
|
||
sudo tee -a /etc/systemd/system/albyhub.service > /dev/null << EOF | ||
[Unit] | ||
Description=Alby Hub | ||
After=network-online.target | ||
Wants=network-online.target | ||
|
||
[Service] | ||
Type=simple | ||
Restart=always | ||
RestartSec=1 | ||
User=$USER | ||
rolznz marked this conversation as resolved.
Show resolved
Hide resolved
|
||
ExecStart=$INSTALL_DIR/start.sh | ||
|
||
[Install] | ||
WantedBy=multi-user.target | ||
EOF | ||
|
||
echo "" | ||
echo "" | ||
|
||
sudo systemctl enable albyhub | ||
sudo systemctl start albyhub | ||
|
||
echo "Run 'sudo systemctl start/stop albyhub' to start/stop AlbyHub" | ||
echo "" | ||
echo "" | ||
echo " ✅ DONE. Open Alby Hub to get started" | ||
echo "Alby Hub runs by default on localhost:8080" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
#!/bin/bash | ||
|
||
ALBYHUB_URL="https://getalby.com/install/hub/server-linux-x86_64.tar.bz2" | ||
echo "" | ||
echo "" | ||
echo "⚡️ Updating Alby Hub" | ||
echo "-----------------------------------------" | ||
echo "This will download the latest version of Alby Hub." | ||
echo "You will have to unlock Alby Hub after the update." | ||
echo "" | ||
echo "Make sure you have your unlock password available and a backup of your seed." | ||
|
||
read -p "Do you want continue? (y/n): " -n 1 -r | ||
if [[ ! $REPLY =~ ^[Yy]$ ]] | ||
then | ||
exit | ||
fi | ||
|
||
sudo systemctl list-units --type=service --all | grep -Fq albyhub.service | ||
if [[ $? -eq 0 ]]; then | ||
echo "Stopping Alby Hub" | ||
sudo systemctl stop albyhub | ||
fi | ||
|
||
if pgrep -x "albyhub" > /dev/null | ||
then | ||
echo "Alby Hub process is still running, stopping it now." | ||
pkill -f albyhub | ||
fi | ||
|
||
SCRIPT_DIR=$(dirname "$0") | ||
read -p "Absolute install directory path (default: $SCRIPT_DIR/albyhub): " USER_INSTALL_DIR | ||
|
||
INSTALL_DIR="${USER_INSTALL_DIR:-$SCRIPT_DIR/albyhub}" | ||
|
||
echo "Running in $INSTALL_DIR" | ||
# make sure we run this in the install directory | ||
cd $INSTALL_DIR | ||
|
||
echo "Cleaning up old backup" | ||
rm -rf albyhub-backup | ||
mkdir albyhub-backup | ||
|
||
echo "Creating current backup" | ||
mv bin albyhub-backup | ||
mv lib albyhub-backup | ||
cp -r data albyhub-backup | ||
|
||
|
||
echo "Downloading latest version" | ||
wget $ALBYHUB_URL | ||
tar -xvf server-linux-x86_64.tar.bz2 | ||
rm server-linux-x86_64.tar.bz2 | ||
|
||
sudo systemctl list-units --type=service --all | grep -Fq albyhub.service | ||
if [[ $? -eq 0 ]]; then | ||
echo "Starting Alby Hub" | ||
sudo systemctl start albyhub | ||
fi | ||
|
||
echo "" | ||
echo "" | ||
echo "✅ Update finished! Please unlock your wallet." | ||
echo "" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
### Installation on a Raspberry Pi Zero | ||
|
||
Have a look at our [installation guide](https://guides.getalby.com/user-guide/v/alby-account-and-browser-extension/alby-hub/alby-hub-flavors/raspberry-pi-zero) for more details. | ||
|
||
```shell | ||
$ ssh [email protected] '/bin/bash -c "$(curl -fsSL https://getalby.com/install/hub/pi-zero-install.sh)"' | ||
``` | ||
|
||
or on the Pi directly: | ||
```shell | ||
/bin/bash -c "$(curl -fsSL https://getalby.com/install/hub/pi-zero-install.sh)" | ||
``` | ||
|
||
### Updating a running instance | ||
|
||
```shell | ||
$ ssh [email protected] '/bin/bash -c "$(curl -fsSL https://getalby.com/install/hub/pi-zero-install.sh)"' | ||
``` | ||
|
||
or on the Pi directly: | ||
```shell | ||
/bin/bash -c "$(curl -fsSL https://getalby.com/install/hub/pi-zero-update.sh)" | ||
``` | ||
|
||
And see install.sh and update.sh for details. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sorry. no idea how this got in there. 😱
should be in another branch - but I still want this in.