Compose is a framework for orchestration of all containerized services running on Umbrel OS.
It is platform and architecture-agnostic, thus can be used to directly spin up instances of Umbrel without installing the Umbrel OS since all orchestrated services use multi-architecture images.
We run it on Raspbery Pis (ARMv7) as a part of Umbrel OS, Ubuntu (x64) for testnet.getumbrel.com and macOS (x64) for local development.
If you are looking to run Umbrel on your hardware, you do not need to use this framework on it's own. Just download Umbrel OS and you're good to go.
Architecture
+ -------------------- +
| umbrel-dashboard |
+ -------------------- +
|
|
+ ------------- +
| nginx |
+ ------------- +
|
|
+ - - - - - - - - - - - + - - - - - - - - - - - +
| |
| |
+ ------------------ + + --------------------- +
| umbrel-manager | < - - - jwt auth - - - | umbrel-middleware |
+ ------------------ + + --------------------- +
|
|
+ - - - - - - - - + - - - - - - - - +
| |
| |
+ ------------- + + ------------- +
| bitcoind | < - - - - - - - - | lnd |
+ ------------- + + ------------- +
- Docker
- Python 3.0+
- Docker Compose (installed via python3 pip)
- Tor (using default system paths)
Ensure that your account is correctly permissioned to use docker.
It will clone this repo while preserving home directory's existing structure.
# Ideally you should run this in $HOME as the docker-compose presets are in home
# This will not overwrite any other files but you should segment this in its
# own account
curl "https://raw.githubusercontent.com/getumbrel/umbrel-compose/master/install-box.sh" | sh
# OR wget (if this works better)
wget -qO- "https://raw.githubusercontent.com/getumbrel/umbrel-compose/master/install-box.sh" | sh
# If you want to use testnet, otherwise it will use mainnet by default and be #reckless
export TESTNET=true
# (testnet mode not fully supported)
# Run this in the $HOME directory
./configure-box.sh
docker-compose up -d
# Verify the services
docker ps -a
Umbrel is still in early development and things are expected to break every now and then. We DO NOT recommend running it on the mainnet with real money just yet, unless you want to be really #reckless.
We welcome and appreciate new contributions.
If you're a developer looking to help but not sure where to begin, check out these issues that have specifically been marked as being friendly to new contributors.
If you're looking for a bigger challenge, before opening a pull request please create an issue or join our community chat to get feedback, discuss the best way to tackle the challenge, and to ensure that there's no duplication of work.