Run Alby Hub with Lionode

Run your own Alby Hub on Linode using an Ubuntu server, Docker Compose, and persistent storage on your cloud instance.

Prerequisites

Linode is a good option if you want to run Alby Hub on a Linux cloud server with full control over the instance, firewall rules, storage, and updates.

Before you begin, make sure you have:

02

Basic familiarity with running terminal commands

Linode may require billing details before you can create an instance. Depending on Linode's current pricing, your selected instance plan, region, storage, backups, and usage, charges may apply. See their pricing page for more details.

Deploy Alby Hub on Linode

01

Create a Linode instance

Open the Linode Cloud Manager and sign in with your Linode account.

At the top of the console, click + Create then click Linode under Compute.

You will be taken to the Linode creation page. Use the following options:

  • Region: Choose the region closest to you

  • OS: Ubuntu 24.04 LTS

  • Plan type: Shared CPU

  • Recommended size: 2 GB RAM, 1 CPU, 50 GB storage

Under Details, enter a Linode Label that helps you recognize this server later, for example: AlbyHub.

02

Configure SSH access

Create a folder for your Alby Hub

In the SSH Keys section, add your SSH key if you already have one.

This is the recommended option because it is more secure and makes terminal access easier.

If you do not want to set up SSH keys right now, you can use a root password instead.

In the Root Password section, set a strong root password and save it somewhere safe. You will need this password if you connect through LISH or SSH without a key.

03

Enable disk encryption

If Linode shows the option to enable disk encryption, enable it before creating the instance.

This helps protect the data stored on your Linode disk.

04

Configure networking

In the Networking section, use the recommended public networking settings:

  • Network Connection: Public Internet

  • Interface Type: Linode Interfaces

This gives your server a public IP address so you can access Alby Hub later from your browser.

05

Create a firewall

In the Public Interface Firewall section, create a new firewall.

Use the following options:

  • Create: Custom firewall

  • Label: albyhub-firewall

  • Default Inbound Policy: Drop

  • Default Outbound Policy: Accept

Then click Create Firewall.

After that, create the Linode instance.

06

Add firewall rules

While the Linode instance is being created, open Networking > Firewalls from the sidebar.

Click the firewall you just created and add the following inbound rules:

SSH access

Use the SSH preset:

  • Preset: SSH

  • Label: accept-inbound-SSH

  • Protocol: TCP

  • Ports: 22

  • Sources: My IP, if available, or your IP address as /32

  • Action: Accept

Alby Hub web access

Use the HTTP preset, but change the port to 8080:

  • Preset: HTTP

  • Label: accept-inbound-albyhub-8080

  • Protocol: TCP

  • Ports: Custom

  • Custom Port Range: 8080

  • Sources: Your IP for better security, or All IPv4 / All IPv6 for easier access

  • Action: Accept

Port 8080 is where Alby Hub runs.

Open the Lightning port for LDK

If you plan to use LDK as your Lightning backend, you must also open port 9735 so your node can accept Lightning peer connections.

Use the HTTP preset again, but change the port to 9735:

  • Preset: HTTP

  • Label: accept-inbound-albyhub-8080

  • Protocol: TCP

  • Ports: Custom

  • Custom Port Range: 9735

  • Sources: All IPv4 / All IPv6

  • Action: Accept

Port 9735 is used for Lightning peer communication.

You do not need to open port 443 for the basic setup unless you configure HTTPS separately with a reverse proxy or custom domain.

After adding all the above rules, it should look something like this:

07

Connect to your Linode

Go back to Linodes in the Linode Cloud Manager.

Open your Linode instance. You can connect in either of these ways:

Option A: Use the LISH console

Open the three-dot menu for your Linode and click Launch LISH Console.

When the console asks for a localhost login, enter: root

Then for password, enter the root password you set during creation.

Option B: Use SSH from your terminal

If you added an SSH key or enabled password login, you can connect from your terminal:

ssh
ssh

Replace YOUR_LINODE_IP with the public IP address of your Linode.

08

Update the server

In the SSH terminal, update the package list and upgrade installed packages:

sudo apt update
sudo apt upgrade -y
sudo apt update
sudo apt upgrade -y

09

Install Docker and Docker Compose

Install Docker and Docker Compose:

sudo apt install -y
sudo apt install -y

Enable and start Docker:

sudo systemctl enable docker
sudo systemctl start

sudo systemctl enable docker
sudo systemctl start

10

Create a working folder for Alby Hub

Create a folder for your Alby Hub deployment:

mkdir albyhub
cd albyhub
mkdir

mkdir albyhub
cd albyhub
mkdir

The albyhub-data folder stores your Hub data on the server.

11

Add the Docker Compose file

You can either download the official Docker Compose file or create it manually.

Option A: Download the Docker Compose file

Run:

wget
wget

Option B: Create the Docker Compose file manually

Create a new file:

Paste the following content:

services:
  albyhub:
    container_name: albyhub
    image: ghcr.io/getalby/hub:latest
    volumes:
      - ./albyhub-data:/data
    ports:
      - "8080:8080"
    environment:
      - WORK_DIR=/data/albyhub
    stop_grace_period: 300s
    # Optional: restart Alby Hub automatically when the instance reboots.
    # restart: unless-stopped
services:
  albyhub:
    container_name: albyhub
    image: ghcr.io/getalby/hub:latest
    volumes:
      - ./albyhub-data:/data
    ports:
      - "8080:8080"
    environment:
      - WORK_DIR=/data/albyhub
    stop_grace_period: 300s
    # Optional: restart Alby Hub automatically when the instance reboots.
    # restart: unless-stopped

You can add restart: unless-stopped to restart Alby Hub automatically when the instance reboots. You will still need to unlock your Hub manually unless auto-unlock is enabled in Alby Hub settings.

Save the file and exit.

In nano, press Ctrl + O, then Enter, then Ctrl + X.

12

Start Alby Hub

Start Alby Hub in the background:

sudo docker compose up -d
sudo docker compose up -d

Check that the container is running:

sudo docker compose ps
sudo docker compose ps

You can also view the logs:

sudo docker compose logs -f
sudo docker compose logs -f

If the logs are running without repeated errors, Alby Hub has started successfully!

Press Ctrl + C to stop following the logs. This does not stop Alby Hub.

13

Open Alby Hub in your browser

Copy the public IPv4 address of your Linode.

Open the following URL in your browser:

For example:

You should see the Alby Hub welcome screen.

14

Set up Alby Hub

Click Get Started and follow the setup flow in Alby Hub.

During setup, save any important recovery or backup information shown by Alby Hub. Your Hub data is stored on your Linode instance, but you should still keep your own backup so you can recover or migrate your Hub later.

How to update Alby Hub on Linode

Alby Hub will show an update banner inside the app when a new version is available.

When you see the update banner, connect to your Linode again and update your deployment.

Go to your Alby Hub folder:

cd
cd

Pull the newest image:

sudo
sudo

Recreate the container with the new image:

sudo docker compose up -d
sudo docker compose up -d

Check that Alby Hub started cleanly:

sudo docker compose ps
sudo docker compose logs -f
sudo docker compose ps
sudo docker compose logs -f

If there is no new Alby Hub version available, docker compose pull may pull the same image again. You only need to update when Alby Hub shows an update banner or when you know a new release is available.