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.
Full setup with just Enter — sensible defaults handle the rest
How It Works
From zero to a running node in four steps.
Install
One command, Docker does the rest.
Press Enter
Just press Enter or customize with the wizard.
Sync
Bitcoin Core downloads the blockchain, Electrs indexes it.
Connect
Link Zeus, Electrum, or use RTL from the browser.
$ 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.
Just Press Enter.
Sensible defaults configure everything. Passwords, networking, security — all handled automatically. Customize later if you need to.
x86_64 or ARM64, no manual selection
Bitcoin Core, LND, Electrs — pulled from GitHub at install time
High-entropy passwords for RPC, Tor, RTL, and LND wallet
All P2P traffic through Tor with v3 hidden services
Dropped capabilities, no-new-privileges, memory limits
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.
# 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.
The Full Stack
Six services, one command. Everything orchestrated through Docker Compose.
Core
Infrastructure
Selectable Service Versions
The stack is assembled through repo-controlled Dockerfiles, so you can pin known-good releases, audit build steps, and keep upgrades predictable with RaspiBolt-inspired defaults.
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 auditable Dockerfiles under MIT license. Verified upstream artifacts, no black-box appliance layer, 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.
Verifiable by Design
Inspect what runs, verify what gets pulled during builds, and rely on hardened defaults inspired by RaspiBolt.
Auditable build pipeline
The stack is assembled through repo-controlled Dockerfiles with explicit versions and verification steps for upstream artifacts where applicable.
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.
Upstream releases are verified before use
Cryptographic verification is part of the build flow for key artifacts, reducing trust in mirrors and making release provenance easier to audit.
Containers run with minimal privileges
Capabilities are dropped, privilege escalation is blocked, and memory and CPU limits are enforced. Log rotation prevents disk exhaustion.
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.
Can I try Awning without downloading the full blockchain first?
git clone https://github.com/giovantenne/awning.gitcd awning./awning.sh --ignore-disk-spaceImportant: 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?
How do I back up my node?
Can I choose which versions of Bitcoin Core, LND, and Electrs to run?
How do I update Awning or the services?
Does Awning follow RaspiBolt practices?
Something is not working — how do I troubleshoot?
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.
Prefer to inspect before running? Read the script first.
Clone
Run
Press Enter to accept sensible defaults, or type w for the advanced wizard.
Done
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