Practical overview
When it fits
Use Nanopos when you need a self-hosted counter-style web checkout for Bitcoin Lightning payments and can provide a separately running Lightning Charge server.
Who it is for
- Small shops, food stalls and service businesses that want a focused Lightning checkout for listed products.
- Operators who can configure and maintain a web service alongside Lightning Charge.
- Developers looking for a compact starting point for a Lightning Charge payment interface.
Documented uses
- Define a menu or product list with prices in a YAML file.
- Present a web interface for customers to select a fixed-price item.
- Offer a custom-amount field for variable bills.
- Pass item metadata into invoice metadata.
Requirements & limits
- Lightning Charge is a separate required payment component; Nanopos connects to it using a URL and access token.
- Prices are defined in an items YAML file, and the selected currency is configurable.
- Operators can use a Node/npm command-line setup or the provided Dockerfile.
- The custom-amount field can be disabled, and BOLT11 can optionally be shown as text and a button.
- The repository identifies the project as MIT-licensed.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Configure and start Nanopos from the command line
Create an item list and start the Nanopos web server with a Lightning Charge token.
Before you start
- Node/npm for installing Nanopos globally.
- A YAML file defining items and prices.
- A Lightning Charge server and its access token.
Steps
Install Nanopos globally with npm.
Create or edit an items YAML file with product names and prices.
Start Nanopos with the items-file path, Charge token and desired currency.
Expected outcome
The README's example starts the web server on localhost; the CLI also supports setting the Charge URL, title, theme, custom-amount field, BOLT11 display, host and port.
Guide limitations
- The payment dependency, Lightning Charge, must be configured separately.
- The items file is required; the Charge token is required.
Build and run Nanopos with Docker
Build the provided Docker image and start the Nanopos web service connected to Lightning Charge.
Before you start
- Docker.
- A Lightning Charge server, its URL and an access token.
Steps
Set up Lightning Charge.
Build the image from the Nanopos repository using the documented Docker build command.
Run the image with port 9116 exposed and set the Charge URL and token environment variables.
Expected outcome
The documented container command starts the web server on port 9116, ready to accept payments through the configured Charge service.
Guide limitations
- Lightning Charge must be set up separately before running the container.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 14 October 2026
- Original website title
- ElementsProject/nanopos · Official homepage title · retained in its source language

