The Banano Node Docker Bash script automates the setup process for running a Banano node using Docker. It pulls the necessary Docker images, sets up the required configuration, and initializes the Banano node. This makes the process of setting up and configuring a Banano node more efficient and secure.
Docker and Docker Compose are required, if either of these are missing, the script will attempt to install them automatically for you.
To download or clone the latest release, open a bash terminal and launch the installation script:
curl -sL "https://raw.github.com/amamel/banano-node-docker/master/install.sh" | sh
Note: If using SSL, skip to manual install, and read more about SSL / HTTPS with Let's Encrypt below.
Option | Description |
---|---|
-s |
Display the seed for the generated wallet. |
-d <domain> |
Specify a domain name for the Banano node. Enables SSL using Let's Encrypt. |
-e <email> |
Specify an email address for Let's Encrypt SSL certificate notifications. |
-q |
Run the script in quiet mode, suppressing most of the output. |
-f |
Enable fast-syncing by downloading the latest ledger files. |
cd ~
git clone https://github.com/amamel/banano-node-docker.git
cd ~/banano-node-docker
sudo ./banano.sh -d yourdomain.com -e youremail@yourdomain.com -s
If a domain name is available for your host, Banano Node Docker can also serve your node monitor securely using HTTPS. This feature is enabled (using the -d
argument with the installer), the stack will also include the following containers:
Container name | Description |
---|---|
nginx-proxy | An instance of the popular Nginx web server running in a reverse proxy setup. Serves as a gateway to the host. |
nginx-proxy-letsencrypt | A lightweight companion container for the nginx-proxy. Enables automatic creation/renewal of Let's Encrypt certificates. |
To set up SSL for your Banano node, update the docker-compose.letsencrypt.yml
file with your domain name and email address. This ensures the SSL certificates are configured correctly for your domain. If you use Cloudflare, clear the cache in Cloudflare and your browser. Also, update your Cloudflare account to reflect the new SSL certificates.
Let's Encrypt has rate limits to prevent abuse on the number of certificates issued for a specific set of domains within a certain time period. If you've reached the rate limit for your domain, you'll need to wait until it is lifted or consider using a different domain for your node.
Banano Node Docker stack can also bootstrap any newly created node (or an existing one) with the latest ledger files using either LMDB or RocksDB. This implies that you are willing to trust third-party sources for your node history. The latest ledger files are obtained from the Banano community: cutecat and moonano, while the script handles the extraction and file placement.
Just add the -f
flag to your installer command:
sudo ./banano.sh -t V25.1 -f
This feature is experimental and may result in loss of data. You are strongly adviced to BACKUP your wallet seed before trying to fast-sync an existing node.
For optimal performance when running a Banano node, consider the following hardware recommendations:
OS:
- Ubuntu 20.04
Minimum Hardware:
Hardware | Recommendation |
---|---|
Processor | 2 CPU 2.5GHz |
4 CPU for Voting/Principal Nodes | |
RAM | 4 GB+ depending on network load and transaction volume |
Storage | 50GB SSD/NVMe (Current Ledger ~25GB LMDB) |
Network Connection | 1TB Bandwidth, 24/7 Connectivity |
- The script supports easy SSL setup using Let's Encrypt if a domain name is provided.
- To expedite the synchronization process, you can enable fast-syncing by using the
-f
option. This allows you to download the latest ledger files for quicker synchronization. - The script automatically updates the Banano Node Monitor configuration file, including essential information such as the node's RPC IP, account address, node name, and other relevant settings.
Banano node runs inside the banano-node container. In order to execute commands from its Command Line Interface you'll have to enter the container or execute them from the Banano node's Command Line Interface (CLI), you have two options:
Option 1: Enter the Banano node container and execute commands directly:
docker exec -it banano-node /usr/bin/bananode <command>
Option 2: Use the shorthand alias provided by the installer for executing Banano node and wallet commands:
benis <command>
These options provide convenient ways to execute Banano node and wallet commands, giving you flexibility in accessing the Banano node's CLI.
Alias | Description |
---|---|
benis |
Banano Node CLI: Shorthand access to Banano Node CLI. Benis. (CLI benis, ok) |
banano-node |
Banano Node CLI: Banano Node |
banano-rpc |
Banano Node CLI: Banano RPC |
banano-wallet |
Banano Node CLI: Banano Wallet |
banano-status |
Banano Node CLI: Banano Node Status |
banano-restart |
Banano Node CLI: Restart Banano Node |
banano-update |
Banano Node CLI: Update Banano Node |
banano-logs |
Banano Node CLI: View Banano Node Logs |
banano-account-create |
Create a Banano account |
banano-account-list |
List Banano accounts |
banano-account-remove |
Remove a Banano account |
banano-account-rename |
Rename a Banano account |
banano-account-history |
Get account history |
banano-account-info |
Get account information |
banano-account-move |
Move an account |
banano-account-key |
Get the account's public key |
banano-account-get |
Get the account for a given public key |
banano-account-forks |
Get account forks |
banano-account-balance-total |
Get the total account balance |
banano-account-representative |
Get the account representative |
banano-account-weight |
Get the account weight |
banano-account-weights |
Get the account weights |
banano-account-confirmations |
Get the account confirmations |
banano-account-create-work |
Create work for an account |
banano-balance |
Get the wallet balance |
banano-accounts |
List wallet accounts |
banano-send |
Send Banano from the wallet |
banano-import |
Import a Banano wallet |
banano-export |
Export a Banano wallet |
banano-history |
Get wallet transaction history |
banano-receive |
Receive Banano in the wallet |
banano-representatives |
List wallet representatives |
banano-delegators |
List wallet delegators |
banano-account-info |
Get account information from the wallet |
banano-block-info |
Get block information from the wallet |
banano-block-count |
Get the block count from the wallet |
banano-work-generate |
Generate work using the wallet |
Please check the wiki for more detailed instructions on how to manually self-configure Banano Node Docker.
The developers behind the other tools used in this project deserve sincere appreciation for their valuable contributions. If you find these tools useful, consider donating to or contributing to their projects. Your contributions, such as reporting bugs or creating pull requests, can greatly support the continued development and improvement of these tools.
- Banano
- JrCs/docker-letsencrypt-nginx-proxy-companion
- jwilder/nginx-proxy
- lephleg/nano-node-docker
- Moonano Fast Sync RocksDB Ledger
- Nanocurrency
- Nano Node Monitor
- v2tec/watchtower
- Banano.trade LMBD Ledger
If you encounter any issues or have suggestions for improvements, you are encouraged to utilize the "Issues" tab on the GitHub repository. Your feedback is valuable in making this project better. Additionally, you can join the Banano Discord server and navigate to the #frankensteins-lab Banano development channel. It is a great place to engage in conversations, offer suggestions, and receive support from other Banano developers.
If you find this tool helpful and valuable, I kindly ask you to show your support by giving this project a star ⭐️. Your support will help Banano reach more people and make a positive impact. Thank you, and cheers!
This script is released under the MIT License.