Bitcoin Core LND Electrs Tor RTL SCB

Your Bitcoin Stack,
One Command Away.

Deploy a full Bitcoin and Lightning node with a single command. No OS to install, no dependencies to manage. Your keys, your node, your sovereignty.

$ curl -sSL https://awning-node.pages.dev/install.sh | bash
./awning.sh — initial setup

Full setup with just Enter — sensible defaults handle the rest

How It Works

From zero to a running node in four steps.

Step 1

Install

One command, Docker does the rest.

Step 2

Press Enter

Just press Enter or customize with the wizard.

Step 3

Sync

Bitcoin Core downloads the blockchain, Electrs indexes it.

Step 4

Connect

Link Zeus, Electrum, or use RTL from the browser.

setup

$ curl -sSL .../install.sh | bash

Cloning awning...

Checking prerequisites... OK

Detecting architecture... x86_64

Fetching latest versions... done

Press Enter for defaults, or w for wizard:

↵ Enter

Generating credentials... done

Writing config... done

Building images... done

Starting services... done

Creating wallet... done

Your node is running.

Zero configuration required

Just Press Enter.

Sensible defaults configure everything. Passwords, networking, security — all handled automatically. Customize later if you need to.

Architecture auto-detected

x86_64 or ARM64, no manual selection

Latest versions fetched

Bitcoin Core, LND, Electrs — pulled from GitHub at install time

Credentials auto-generated

High-entropy passwords for RPC, Tor, RTL, and LND wallet

Tor routing enabled

All P2P traffic through Tor with v3 hidden services

Containers hardened

Dropped capabilities, no-new-privileges, memory limits

Wallet created automatically

24-word seed generated and displayed — write it down

Truly Portable

Your entire node lives in one directory. Move it anywhere Docker runs.

One Directory

All state — blockchain data, wallet, configs, Tor keys, channel backups — lives under the awning/ directory. Nothing is scattered across your filesystem.

Copy and Go

Copy the directory to an external drive or to another Linux machine. No reinstallation, no migration scripts — just run the setup to auto-detect the new architecture, and you’re good to go.

Docker is the Only Requirement

The target machine only needs Docker installed. No Python, Node.js, Go, or other runtimes. Works on x86_64 and ARM64, including Raspberry Pi.

Move your node

# Stop the node on the source machine

$ ./awning.sh stop

# Copy to an external drive

$ cp -a awning/ /mnt/external/awning/

# Setup on the new machine — only Docker needed

$ cd /mnt/external/awning && ./awning.sh setup

Blockchain data, wallet, channels, Tor hidden services — everything moves together.

Why Awning?

A complete Bitcoin + Lightning stack with the simplicity of a single script.

Single Dependency

Only Docker is required. No dedicated OS to install, no Python, Node.js, or Go runtimes. Runs on your existing Linux.

Portable

Entire stack lives in one directory. Copy it to an external drive or another machine — no reinstallation needed.

Secure by Default

All traffic through Tor, auto-generated credentials, GPG-verified binaries, hardened containers with dropped capabilities.

Transparent

Readable shell scripts and Docker Compose under MIT license. No compiled binaries, no proprietary code, no hidden abstractions.

TUI-First

Interactive terminal interface with keyboard navigation, status dashboard, and guided setup wizard. Smaller attack surface.

Lightning-Ready

Full LND node with Zeus wallet connection, Electrum server, RTL web UI, and optional automated channel backups to GitHub.

Who is Awning for?

Whether you're a first-time node runner or a seasoned sysadmin, Awning fits your workflow.

Bitcoiner

Using someone else's node? With Awning you get your own verified full node.

Ex-Umbrel / myNode User

Want to understand what runs on your node? Awning is 100% readable shell scripts, no hidden binaries.

Sysadmin / Developer

Docker, Compose, no magic. Fork it, customize it, contribute.

Secure by Default

Defense in depth. Every layer is locked down out of the box — no configuration required.

All traffic routed through Tor

Services on isolated Docker bridge networks. Bitcoin and LND P2P traffic goes through Tor. LND and Electrs bind to localhost; RTL binds to LAN for local access.

Passwords are never reused or predictable

RPC, Tor, and RTL passwords auto-generated with high entropy. Sensitive files restricted to owner-only access.

Every binary is cryptographically verified

Bitcoin Core and LND binaries GPG-verified during Docker build. lndconnect SHA256-verified. No trust in download mirrors.

Containers run with minimal privileges

All capabilities dropped, privilege escalation blocked, memory and CPU limits enforced. Log rotation prevents disk exhaustion.

Safe against concurrent execution

A lock file prevents multiple instances from running simultaneously, protecting against config corruption.

Bad configuration never reaches Docker

All settings validated at startup — invalid ports, architectures, or UIDs are caught before any container starts.

FAQ

Quick answers to common questions.

Is Awning suitable for beginners?

Yes. The first run launches a guided TUI wizard that walks you through configuration step by step. Defaults are safe and sane — you can press Enter to accept all of them and refine later.

What hardware do I need?

Any Linux machine (x86_64 or ARM64) with at least 8 GB of RAM and 1+ TB of storage. A Raspberry Pi 5 with an external SSD works well. The default resource limits are tuned for that configuration.

Can I connect my existing wallet?

Yes. Electrs exposes an Electrum-compatible server on port 50002 (SSL) so any Electrum-compatible wallet can verify transactions against your own node. For Lightning, Zeus wallet connects via the REST API — run ./awning.sh zeus-connect to generate a QR code.

More questions
Can I try Awning without downloading the full blockchain first?
Yes. You can start with a low-disk check override:

git clone https://github.com/giovantenne/awning.git
cd awning
./awning.sh --ignore-disk-space

Important: stop the node before the disk fills up, otherwise services may fail or data can become inconsistent. Also note that services like LND and Electrum cannot be enabled until the blockchain is fully downloaded on a sufficiently large disk.
How long does the initial sync take?
Expect several days. Bitcoin Core needs to download and verify the full blockchain (~700 GB+), and then Electrs builds its transaction index on top. On ARM hardware, Electrs also compiles from source which can take up to an hour. Sync runs in the background — your node starts routing Lightning traffic as soon as LND is fully synced.
How do I back up my node?
Your seed phrase is shown once during first setup — write it down immediately, it cannot be recovered from the software. For channel state, Static Channel Backups (SCB) are disabled by default to keep the initial setup simple, but enabling them is strongly recommended: go to Tools → Setup wizard to configure automatic encrypted backups to a private GitHub repository. For a full backup, copy the entire awning/data/ directory while services are stopped.
Can I choose which versions of Bitcoin Core, LND, and Electrs to run?
Yes. All service versions are defined as variables in the .env file. Pin them for stability or bump them to upgrade on your own schedule. To apply a version change, re-run the setup wizard from Tools in the TUI menu — your blockchain and wallet data are preserved.
How do I update Awning or the services?
Open the TUI menu and go to Tools → Update Awning. It pulls the latest changes from GitHub and optionally rebuilds the containers. To update service versions, edit .env or re-run the setup wizard from Tools. Your blockchain data, wallet, and channel state are preserved across rebuilds.
Something is not working — how do I troubleshoot?
Run ./awning.sh to open the TUI, then navigate to Logs to inspect individual service output. You can also use ./awning.sh bitcoin-cli or ./awning.sh lncli to interact with services directly. For deeper debugging, check Docker container status with docker compose ps from the awning directory. If the issue persists, open an issue on GitHub with the relevant log output.

Get Started

Three steps. One dependency: Docker.

Quick install

Clone and start your node with a single command. The script checks for Docker, clones the repository, and runs the setup — just press Enter to accept the sensible defaults. Passwords, Tor routing, and container security are configured automatically.

$ curl -sSL https://awning-node.pages.dev/install.sh | bash

Prefer to inspect before running? Read the script first.

or manually
1

Clone

$ git clone https://github.com/giovantenne/awning && cd awning
2

Run

$ ./awning.sh

Press Enter to accept sensible defaults, or type w for the advanced wizard.

3

Done

$ ./awning.sh status

Monitor sync progress and manage your node from the TUI.

Requirements

  • Docker — the only runtime dependency
  • x86_64 or ARM64 — including Raspberry Pi 5
  • 1+ TB storage — for the full blockchain
  • 8 GB RAM — recommended minimum

CLI Commands

./awning.sh Interactive menu (or auto-setup on first run)
./awning.sh start|stop Start or stop all services
./awning.sh restart Recreate all containers with updated config
./awning.sh status Dashboard with sync progress
./awning.sh logs [service] Follow service logs (all or specific)
./awning.sh connections Tor addresses, LND connect URIs
./awning.sh zeus-connect Generate Zeus wallet QR code
./awning.sh bitcoin-cli ... Run bitcoin-cli commands
./awning.sh lncli ... Run lncli commands