Installing Orchard
There are three ways to install Orchard. Choose whichever suits your setup:
- Standard — built from source.
- Docker — a container built from source.
- Docker — a container from the published image.
Prerequisites
Section titled “Prerequisites”- A host machine — One you control, that is able to reach the services you manage (Bitcoin, Lightning, Cashu Mint).
- For the standard install — Node.js v22, which includes npm.
- For the Docker install — Docker with the Compose plugin.
Get the code
Section titled “Get the code”All install paths start from a checked-out release tag. Clone the repository and check out the latest release.
git clone https://github.com/cashubtc/orchard.gitcd orchardgit fetch --tagsgit checkout v1.9.0 # latest release tagConfigure
Section titled “Configure”Before starting Orchard, create your .env from the example and fill it in:
cp .env.example .envnano .envAt minimum set SETUP_KEY; everything else has a sensible default or is optional.
The Configuration page walks through every option,
including how to point Orchard at your Bitcoin, Lightning, and Cashu Mint services.
Install
Section titled “Install”Install dependencies, build the app, and start it:
npm installnpm run buildnpm run startOrchard now serves on SERVER_HOST:SERVER_PORT (localhost:3321 by default).
Open that address to reach the dashboard.
Build the image from the checked-out source and start it in the background:
docker compose builddocker compose up -dSkip the build and pull the prebuilt image from GitHub Container Registry:
docker compose -f docker-compose.yml -f compose.image.yml up -dThe image defaults to latest. Pin a release by setting VERSION in .env,
or prefix it onto the command:
VERSION=1.9.0 docker compose -f docker-compose.yml -f compose.image.yml up -dUpdating
Section titled “Updating”To update, start by checking out the new release tag. Pick the tab that matches your setup.
Check out the new release tag, then rebuild and restart:
git fetch --tagsgit checkout v1.9.0 # the latest release tagnpm installnpm run buildnpm run startCheck out the new release tag, then rebuild the image and re-up:
git fetch --tagsgit checkout v1.9.0 # the latest release tagdocker compose builddocker compose up -dCheck out the new release tag too — the prebuilt image ships in the registry,
but docker-compose.yml and .env.example still come from the checkout and
can change between releases. Then re-up to pull the matching image:
git fetch --tagsgit checkout v1.9.0 # the latest release tagVERSION=1.9.0 docker compose -f docker-compose.yml -f compose.image.yml up -dOr set VERSION in .env to match the tag and run the plain
docker compose … up -d.
Install Installation
Last updated: