Compare commits

..

57 Commits

Author SHA1 Message Date
/rootzoll
771a03f9c9 patch code (#5183) 2025-11-11 16:39:32 +01:00
Marin Atanasov Nikolov
254d982e91 config.scripts: bump bitcoin core to v29.2 (#5163) 2025-11-11 16:20:02 +01:00
/rootzoll
36d0f39e7d fix #5164 (#5182) 2025-11-11 13:17:17 +01:00
/rootzoll
f270960279 fix APi install (#5181)
* fix pip install
2025-11-11 11:17:16 +01:00
/rootzoll
2696f59075 fix API install problem (#5179)
edit /etc/pip.conf
2025-11-11 11:13:38 +01:00
steepdawn974
fdbb3b8119 feat: add script to manage cln-nip47 plugin installation and configuration (#5178) 2025-11-10 22:11:36 +01:00
rootzoll
3500186968 #5129 electrs v0.10.10 2025-11-10 20:28:38 +01:00
Marin Atanasov Nikolov
678ec7a4e9 config.scripts: bump electrs to v0.10.10 (#5175) 2025-11-10 20:22:32 +01:00
Marin Atanasov Nikolov
34a12b7768 config.scripts: install man pages (#5173) 2025-11-10 16:13:21 +01:00
Marin Atanasov Nikolov
76a94e3b37 config.scripts: use stable toolchain by default when installing/updating electrs (#5174) 2025-11-10 16:10:46 +01:00
steepdawn974
463ce18643 chore: update Elements version from 23.2.7 to 23.3.0 (#5177) 2025-11-10 16:06:21 +01:00
Léo Haf
f7d5c29c22 update knots to v29.2.knots20251110 (#5176) 2025-11-10 15:58:43 +01:00
Aaron McDaid
2f3610f531 clear error message if 'bitcoin-update.sh tested' fails (#5125) 2025-11-10 11:24:07 +01:00
/rootzoll
1ada4ac6f2 change port info (#5155) 2025-11-09 23:03:03 +01:00
rootzoll
548ce434b6 knots abort not when lightning = none 2025-11-09 23:00:46 +01:00
Marin Atanasov Nikolov
ef2fa4e942 config.scripts: fix parsing of installed version (#5162) 2025-11-09 22:58:34 +01:00
rootzoll
374d6e2410 Bitcoin Knots 29.2 Info 2025-11-09 20:46:39 +01:00
Léo Haf
d0c81b8942 update knots to v29.2 (#5149) 2025-11-09 20:42:40 +01:00
René Aaron
6af0211741 feat: update alby hub to latest version (#5159) 2025-11-09 20:39:43 +01:00
/rootzoll
dee2569212 fix PR file sync (#5172) 2025-11-09 19:02:51 +01:00
Copilot
d4303e8682 Update AlbyHub to v1.20.0 (#5171)
feat(albyhub): bump install script to v1.20.0 and update CHANGES.md for RaspiBlitz 1.12.1
2025-11-09 18:08:46 +01:00
openoms
cffda2d39c ci: amd64 image update to Debian 13.1.0 (#5087)
* ci: amd64 image update to Debian 13.0.0

* build: remove policykit-1 package not in trixie packages

* use python 3.13

* amd64 image update to Debian 13.1.0
2025-10-25 15:20:34 +02:00
/rootzoll
fb311f8c26 rm and ln app-storage/debug.log (#5156)
the debug.log now is under/mnt/hdd/app-data/bitcoin/debug.log ... some apps search for it under /mnt/hdd/app-storage/bitcoin/debug.log so a static link is created on bitcoind startup to prevent errors.
2025-10-23 01:31:48 +02:00
geco91
2fc5782fe2 #5131 fix public pool RPC parsing (#5133)
* #5131 fix RPC PASS parsing
2025-10-02 10:10:40 +02:00
openoms
7fd56861bc docs: deprecate dietpi guide (#5119) 2025-09-28 21:31:25 +02:00
rootzoll
278cc88442 v1.12.0 torrent files 2025-09-27 11:45:39 +02:00
rootzoll
bd15ac259a Updated CHANGES.md 2025-09-27 11:44:21 +02:00
/rootzoll
fd065ed9d6 5029 clean (#5126) 2025-09-20 22:15:56 +02:00
/rootzoll
2e2433252c #5122 add patch (#5124) 2025-09-18 02:35:02 +02:00
/rootzoll
6496a009ab #5118 MBR to GPT to support >2TB nvmes (#5121) 2025-09-15 01:46:40 +02:00
openoms
8ca5f6192b use whitebind for electrs and btcpay (#5120) 2025-09-15 01:41:52 +02:00
openoms
b63775d0a2 fix the use of the new bitcoin paths 2025-09-14 21:21:46 +02:00
/rootzoll
94b0ca8d7b expand fatpack on first start (#5108) 2025-08-27 15:31:34 +02:00
/rootzoll
3ba6617133 Fix Fatpack (#5106) 2025-08-27 00:42:20 +02:00
/rootzoll
a15cacf84e 5102 error (#5104)
* remove IP2Tor from LnBits & BTCPay install scrips - fixes #5102
2025-08-25 20:30:44 +02:00
rootzoll
89ecbcaeda rasie fatpack limit 2025-08-25 00:28:52 +02:00
/rootzoll
9a9add886e fix missing expand (#5103)
* raise minum sd card limit
* fix fatpack expand
2025-08-24 23:47:18 +02:00
/rootzoll
55c315f797 #5100 Update LND and fix missing groups for RTL (#5101)
* Updating LND to 0.19.3 #5100
* run sync & install on update
2025-08-24 01:31:23 +02:00
/rootzoll
809ef03f5a #5098 set 'none' values (#5099) 2025-08-23 17:47:56 +02:00
/rootzoll
92dff6566f #5094 protect against partition loss (#5097) 2025-08-14 11:49:10 +02:00
/rootzoll
6ccfe78b33 createSystemPartion more restrictive (#5096) 2025-08-14 01:46:36 +02:00
/rootzoll
33e7ad4fd2 #5094 fix loss of partition (#5095)
* #5094 add debug info
* format isntead of kill partions
2025-08-14 00:20:05 +02:00
/rootzoll
2b048da0c8 #5091 update btc-explorer 3.5.1 (#5093) 2025-08-12 17:02:37 +02:00
/rootzoll
fbaa8ccb3c #5089 repair RESET-ALL & deactivate RESET-HDD (#5090)
* repair RESET-ALL & deactivate RESET-HDD
2025-08-12 14:29:53 +02:00
rootzoll
8a99aa89cd #5053 add more waiting for USB hdd 2025-08-10 19:36:43 +02:00
rootzoll
dbd28cef29 #5053 add wait before migration 2025-08-10 19:22:19 +02:00
rootzoll
e1ab2dd004 #5053 make sure drives are visible 2025-08-10 17:04:13 +02:00
/rootzoll
8059255736 #5053 fall back to settings delete (#5085)
* #5053 fall back to settings delete
2025-08-09 11:28:16 +02:00
/rootzoll
5f3122e493 #4845 correct group for user bitcoin (#5083)
* move group to correct place
2025-08-03 00:48:35 +02:00
/rootzoll
e81064ee87 4845 prepare v1.12.0rc5
* correct bitcoin log dir
* add user admin to group bitcoin by default
* prepare v1.12 - for rc5
2025-08-02 22:52:36 +02:00
Glen Cooper
06f386718a Update README.md - fix typo (#5081)
"rite the" -> "write the"
2025-08-01 10:22:19 +02:00
/rootzoll
1c90b2deb4 #4967 Update Core Lightning v25.5 (#5068)
#4967 update to cln v25.05
2025-07-31 09:38:17 +02:00
rootzoll
a4e128625b add lnbits user to bitcoin group 2025-07-31 01:04:49 +02:00
/rootzoll
8b57e364cd #5079 LND & LNbits update (#5080)
* #5079 lnd 0.19.2
* #5079 lnbits 1.2.1
2025-07-31 00:23:04 +02:00
openoms
00e0cee851 fulcrum: don't exit menu on error (#5072)
* fulcrum: don't exit menu on error
* fix: wait for keypress where needed
2025-07-29 18:56:38 +02:00
openoms
eb7e38170e fix: txindex status needs sudo (#5070) 2025-07-29 18:55:49 +02:00
/rootzoll
00f34e1c08 #5076 Adding SSD full Warning (#5077)
* #5076 remove datadir & correct log path
* #5076 add disk full warnings
2025-07-27 15:06:52 +02:00
66 changed files with 1196 additions and 1187 deletions

View File

@@ -1,6 +1,11 @@
## What's new in Version 1.12.0 of RaspiBlitz?
## What's new in Version 1.12.1 of RaspiBlitz?
Work In Progress - Still Release Candidates
- Update: Bitcoin Core v29.2 [details](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-29.2.md)
- Update: Electrum Server in Rust (electrs) v0.10.10 [details](https://github.com/romanz/electrs/blob/master/RELEASE-NOTES.md#01010-jul-19-2025)
- Update: AlbyHub v1.20.0 [details](https://github.com/getAlby/hub/releases/tag/v1.20.0)
- Update: Bitcoin Knots 29.2 (optional) [details](https://github.com/bitcoinknots/bitcoin/releases/tag/v29.2.knots20251010)
## What's new in Version 1.12.0 of RaspiBlitz?
Introducing a new drive layout, now allowing to even boot and running the system from NVMe.
@@ -13,8 +18,9 @@ Features:
- Update: RaspberryOS arm64 base image 2025-05-13 (Debian 12 Bookworm) [details](https://downloads.raspberrypi.com/raspios_full_arm64/release_notes.txt)
- Update: amd64 base image: debian-12.8.0-amd64-netinst.iso [details](https://www.debian.org/releases/stable/amd64/release-notes/ch-whats-new.en.html)
- Update: Bitcoin Core v29.0 [details](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-29.0.md)
- Update: LND v0.19.1-beta [details](https://github.com/lightningnetwork/lnd/releases/tag/v0.19.1-beta)
- Update: LNbits 1.1.0 [details](https://github.com/lnbits/lnbits/releases/tag/v1.1.0)
- Update: Core Lightning v25.05 [details](https://github.com/ElementsProject/lightning/releases/tag/v25.05)
- Update: LND v0.19.3-beta [details](https://github.com/lightningnetwork/lnd/releases/tag/v0.19.3-beta)
- Update: LNbits 1.2.1 [details](https://github.com/lnbits/lnbits/releases/tag/v1.2.0)
- Update: AlbyHub v1.17.2 [details](https://github.com/getAlby/hub/releases/tag/v1.17.2)
- Update: Lightning Terminal v0.14.1-alpha [details](https://github.com/lightninglabs/lightning-terminal/releases/tag/v0.14.1-alpha)
- Update: Mempool 3.2.1 [details](hhttps://github.com/mempool/mempool/releases/tag/v3.2.1)
@@ -27,6 +33,7 @@ Features:
- Update: Helipad (Podcasting 2.0 Boostagram reader) v0.2.1 [details](https://github.com/Podcastindex-org/helipad/)
- Update: Jam (JoinMarket Web UI) v0.4.0 [details](https://github.com/joinmarket-webui/jam/releases/tag/v0.4.0)
- Update: JoininBox v0.8.4 [details](https://github.com/openoms/joininbox/releases/tag/v0.8.4)
- Update: BTC-RPC-Explorer v3.5.1 [details](https://github.com/janoside/btc-rpc-explorer/blob/master/CHANGELOG.md#v351)
- Remove: Migration from Umbrel, MyNode, Citadel (because of new drive layout with boot option)
## What's new in Version 1.11.4 of RaspiBlitz?

View File

@@ -96,7 +96,7 @@ apt-cdrom-setup apt-setup/cdrom/set-first boolean false
# Use network mirror
apt-mirror-setup apt-setup/use_mirror boolean true
# Disable polularity contest
# Disable popularity contest
popularity-contest popularity-contest/participate boolean false
# Select base install

View File

@@ -1,111 +0,0 @@
# ⚡️ RaspiBlitz-on-DietPi ⚡️
# For the Odroid HC1 / HC2 / XU3 / XU4 / MC1
![](pictures/DroidBlitz.jpg)
## There are 3 options provided:
* a trusted fully prebuilt SDcard image
* Automated building process.
* Build your own SDcard from the image downloaded from [dietpi.com](https://dietpi.com/#download)
---
### Download the fully prebuilt RaspiBlitz-on-DietPi SDcard image
* [mega.nz link](https://mega.nz/#F!EVNAAQiB!ZyLHP2dJMRSVjZOTCQMIYA)
sha256sum RaspiBlitz1.0_OdroidHC1_DietPi6.21.1.img: 96ee8700f52a12fb5b13fab3fffcdcf5d364c6dd16c580d969e421cef2cd7cc2
Steps to run:
- download the .img file,
- burn to a 16 GB SD with [Etcher](https://www.balena.io/etcher/)
- extend the rootFS partition with a partition manager (disks, Gparted, etc.)
- boot the Odroid with the SDcard
- login with `ssh admin@at.your.raspiblitz.ip`
password: `raspiblitz`
Using this image you can skip the rest of this page.
The setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/dev/README.md#setup-process-detailed-documentation)
---
### The automated building process:
1) Download the DietPi image for the Odroid HC1 / HC2 / XU3 / XU4 / MC1:
https://dietpi.com/downloads/images/DietPi_OdroidXU4-ARMv7-Buster.7z
2) Burn it to the SD card with [Etcher](https://www.balena.io/etcher/)
3) Right click and download the following two files: [dietpi.txt](https://raw.githubusercontent.com/rootzoll/raspiblitz/master/alternative.platforms/dietpi/boot/dietpi.txt), [Automation_Custom_Script.sh](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/alternative.platforms/dietpi/boot/Automation_Custom_Script.sh)
4) Copy them to the /boot directory of the DietPi SDcard
[dietpi.txt](https://raw.githubusercontent.com/rootzoll/raspiblitz/master/alternative.platforms/dietpi/boot/dietpi.txt): Overwrites the default dietpi.txt. Modified the settings to automate the DietPi setup. (see the details [here](https://github.com/rootzoll/raspiblitz/tree/dev/alternative.platforms/dietpi#excerpts-from-the-customized-dietpitxt))
[Automation_Custom_Script.sh](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/alternative.platforms/dietpi/boot/Automation_Custom_Script.sh): Runs after DietPi installation is completed. Contains the link to download and run the build_sdcard.sh from the dev branch of @rootzoll.
(Optionally open the file with a text editor and uncomment (remove the `#` from the front of) the line with the branch you want to build the SDcard from.)
5) Assemble and boot the Odroid
Insert the SDcard, connect the HDD, network cable and power supply to boot.
The automated setup will continue and the Odroid will restart at least twice during the process.
To follow the logs during the automated building process login with `root` and press CTRL+C.
`tail -n1000 -f /tmp/DietPi-Update/dietpi-update.log` - follow the dietpi-update process
`tail -n1000 -f /var/tmp/dietpi/logs/dietpi-automation_custom_script.log` follow the output of the build_sdcard.sh
6) When the setup is finished log in as `admin`:
`ssh admin@[IP-OF-RASPIBLITZ]`
password: `raspiblitz`
The setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/dev/README.md#setup-process-detailed-documentation)
---
### Build your own DietPi image:
* For the Odroid HC1 / HC2 / XU3 / XU4 / MC1 the start is this image:
https://dietpi.com/downloads/images/DietPi_OdroidXU4-ARMv7-Buster.7z
* Burn it to the SD with [Etcher](https://www.balena.io/etcher/)
* Insert the SD card, connect the HDD, the network cable and power supply to boot up the Odroid:
* In the desktop terminal on Linux / MacOS or Putty on Windows:
`ssh root@[IP-OF-DIETPI]`
password: `dietpi`
Getting started with DietPi: https://dietpi.com/docs/install/#4-first-logon-on-dietpi
* In the DietPi software menu install fail2ban and make OpenSSH server the default SSH server.
Ok > Cancel > Cancel
Search `fail2ban` > Space to select > Enter
SSH server > switch from Dropbear to the OpenSSH-server
Install > Ok
Reboots again
* Log back in:
`ssh root@[IP-OF-DIETPI]`
password: `dietpi`
Changing the SSH server will change the SSH keys. To clear:
`ssh-keygen -f "/home/[your-linux-username]/.ssh/known_hosts" -R "dietpi.IP"`
### Run the RaspiBlitz build_sdcard.sh script
* Run this command to build from the master branch of @rootzoll:
`wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build_sdcard.sh && sudo bash build_sdcard.sh`
This will take a couple minutes depending on your internet connection and the processing power of the SBC.
* Format of the command to build the SDcard from an alternative branch:
`wget https://raw.githubusercontent.com/[GITHUB-USERNAME]/raspiblitz/[BRANCH]/build_sdcard.sh && sudo bash build_sdcard.sh [BRANCH] [GITHUB-USERNAME]`
If you are working from a forked repo be aware of that the fork needs to be called `raspiblitz` for the git downloads to work.
* Restart when done and log back in now as `admin`:
`ssh admin@[IP-OF-DROIDBLITZ]`
password: `raspiblitz`
* From here he setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/dev/README.md#setup-process-detailed-documentation)
---
### Examples of copying the blockchain data from a HDD using a powered USB to SATA adapter
![example setup](pictures/HDD_copy_example.jpg)
![](pictures/adapterHDD_HC1.jpg)

View File

@@ -1,136 +0,0 @@
# ⚡️ RaspiBlitz-on-DietPi ⚡️
This guide was tested on:
* Odroid HC1
* Odroid HC2 (the same board with a 3.5" 12V HDD)
* Odroid XU4 (with HDMI screen)
* Raspberry Pi 3 B+ (with the default GPIO or HDMI display)
See the [hardware comparison](/alternative.platforms/hw_comparison.md).
The HDMI screen tested: https://www.aliexpress.com/item/3-5-inch-LCD-HDMI-USB-Touch-Screen-Real-HD-1920x1080-LCD-Display-Py-for-Raspberri/32818537950.html
---
## Specific instructions and downloads:
[Odroid HC1 / HC2 / XU3 / XU4](Odroid_HC1_HC2.md)
[Raspberry Pi](RaspberryPi.md)
[Display install script](/alternative.platforms/display.alternatives.sh)
---
## General guide for the RaspiBlitz-on-DietPi
### Setting up the DietPi OS
Getting started with DietPi: https://dietpi.com/phpbb/viewtopic.php?f=8&t=9#p9
* Start with an ARM based Single Board Computer listed on DietPi.com.
At least 1GB RAM is recommended.
Look for the SD card image for the specific SBC in the [download section](https://dietpi.com/#download).
* Burn the image to the SDCard with [Etcher](https://www.balena.io/etcher/).
* Insert the SDcard into your SBC.
* Connect the HDD with a suitably powered adapter.
Aim to use 2 USB ports or a separate power supply to power the HDD for a more reliable setup.
* Power up and log in with the desktop terminal on Linux / MacOS or Putty on Windows:
`ssh root@[IP-OF-DIETPI]`
password: `dietpi`
* If you are asked about updating DietPi, go ahead with it. This is not always a straightforward process, but it is best to build on the latest version.
* In the DietPi software menu install `fail2ban` and make `OpenSSH server` the default SSH server.
If there is a screen installed: within the Dietpi-Config menu set the Autostart to `7: Automatic login. `
Changing the SSH server will change the SSH keys again. To clear:
`ssh-keygen -f "/home/[your-linux-username]/.ssh/known_hosts" -R "dietpi.IP"`
* After every reboot log back in:
`ssh root@[IP-OF-DIETPI]`
password: `dietpi`
* Should end up here on version v6.20.6 or higher:
![](pictures/bash_prompt.png)
### Run the RaspiBlitz build_sdcard.sh script
* Use this format to build the SDcard with the Raspiblitz script:
`wget https://raw.githubusercontent.com/[GITHUB-USERNAME]/raspiblitz/[BRANCH]/build_sdcard.sh && sudo bash build_sdcard.sh [BRANCH] [GITHUB-USERNAME]`
If you are working from a forked repo be aware of that the fork needs to be called `raspiblitz` for the git downloads to work.
Example to run the dev branch of @rootzoll:
`wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build_sdcard.sh && sudo bash build_sdcard.sh dev rootzoll`
This will take a couple minutes depending on your internet connection and the processing power of the SBC.
* After the automatic restart log back in now as `admin`:
`ssh admin@[IP-OF-RASPIBLITZ]`
password: `raspiblitz`
* From here he setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/dev/README.md#setup-process-detailed-documentation)
---
### Useful commands for debugging:
During the Automated setup:
`tail -n1000 -f /tmp/DietPi-Update/dietpi-update.log` - follow the dietpi-update process
`tail -n1000 -f /var/tmp/dietpi/logs/dietpi-automation_custom_script.log` follow the output of the build_sdcard.sh
During the RaspiBlitz setup process:
`lsblk` check the disk partitions
`tail -n1000 -f raspiblitz.log` - debug logs of bootstrap.sh
`sudo tail -f /mnt/hdd/bitcoin/debug.log` - continuous monitoring of bitcoind
`sudo tail -n100 /mnt/hdd/bitcoin/debug.log` - shows the last 100 lines
`sudo systemctl status lnd` - status of the lnd service
`sudo journalctl -f -u lnd`
`debug` - debug log collection on the RaspiBlitz
---
## Excerpts from the [customized dietpi.txt]/alternative.platforms/dietpi/boot/dietpi.txt)
to be used for a fully automatic SDcard building process.
### Automate installation with the dietpi.txt
Need to copy to SDcard /boot/dietpi.txt after burning the image with Etcher.
IMPORTANT:
- Modifications to /boot/dietpi.txt will not be preserved on reboot .
- Please ensure you edit from the DietPi-RAMdisk location: /DietPi/dietpi.txt
NB: This is intended for advanced users, unless you know what you are doing, do not edit this file. ease use the DietPi programs instead.
NB: Do not remove uncommented lines, as the items are scraped by DietPi programs, on demand.
DietPi-Automation settings, applied on the 1st boot of DietPi, ONCE
Sample:
https://github.com/Fourdee/DietPi/blob/master/dietpi.txt
#### DietPi-Software to be installed automatically
Requires `AUTO_SETUP_AUTOMATED=1 `
For a list of software index's (ID's), run '/DietPi/dietpi/dietpi-software list'
No limit on number entries, add as many as you need and uncomment the line.
DietPi will automatically install all pre-reqs (eg: ALSA/XSERVER for desktops etc)
>install fail2ban
AUTO_SETUP_INSTALL_SOFTWARE_ID=73
install OpenSSH Client
#### SSH Server Selection:
>0=none
-1=dropbear
-2=opensshserver
AUTO_SETUP_SSH_SERVER_INDEX=-2
---
## Custom Script (post-networking and post-DietPi install)
Runs after DietPi installation is completed.
Allows you to automatically execute a custom script at the end of DietPi installation.
Option 1 = Copy your script to /boot/Automation_Custom_Script.sh and it will be executed automatically.
Option 2 = Host your script online, then use AUTO_SETUP_CUSTOM_SCRIPT_EXEC=http://myweb.com/myscript.sh, it will be downloaded and executed automatically. | 0=disabled
NB: Executed script log /var/tmp/dietpi/logs/dietpi-automation_custom_script.log
Find the Automation_Custom_Script.sh loaded with the build_sdcard.sh [here]/alternative.platforms/dietpi/boot/Automation_Custom_Script.sh)
---
## Guide to clone your SD-cards in Windows, MacOS and Linux and shrink the image in Linux:
https://beebom.com/how-clone-raspberry-pi-sd-card-windows-linux-macos/

View File

@@ -1,40 +0,0 @@
# ⚡️ RaspiBlitz-on-DietPi ⚡️
## Tested on the Raspberry Pi 3 B +
### The automated building process:
1) Download the DietPi image for the Raspberry Pi:
https://dietpi.com/downloads/images/DietPi_RPi-ARMv6-Stretch.7z
2) Burn it to the SD card with [Etcher](https://www.balena.io/etcher/)
3) Right click and download the following two files: [DietPi.txt](https://raw.githubusercontent.com/rootzoll/raspiblitz/master/alternative.platforms/dietpi/boot/dietpi.txt), [Automation_Custom_Script.sh](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/alternative.platforms/dietpi/boot/Automation_Custom_Script.sh)
4) Copy them to the /boot directory of the DietPi SDcard
[DietPi.txt](https://raw.githubusercontent.com/rootzoll/raspiblitz/master/alternative.platforms/dietpi/boot/dietpi.txt): Overwrites the default dietpi.txt. Modified the settings to automate the DietPi setup. (see the details [here](https://github.com/rootzoll/raspiblitz/tree/dev/alternative.platforms/dietpi#excerpts-from-the-customized-dietpitxt))
[Automation_Custom_Script.sh](https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/alternative.platforms/dietpi/boot/Automation_Custom_Script.sh): Runs after DietPi installation is completed. Contains the link to download and run the build_sdcard.sh from the dev branch of @rootzoll.
(Optionally open the file with a text editor and uncomment (remove the `#` from the front of) the line with the branch you want to build the SDcard from.)
5) Assemble and boot the Raspberry Pi
Insert the SDcard, connect the HDD, network cable and power supply to boot.
(The default LCD will be set up automatically)
The automated setup will continue and the Raspberry Pi will restart at least twice during the process. This will take up to an hour.
To follow the logs during the automated building process login with `root` and press CTRL+C.
`tail -n1000 -f /tmp/DietPi-Update/dietpi-update.log` - follow the dietpi-update process
`tail -n1000 -f /var/tmp/dietpi/logs/dietpi-automation_custom_script.log` follow the output of the build_sdcard.sh
6) When the setup is finished log in as `admin`:
`ssh admin@[IP-OF-RASPIBLITZ]`
password: `raspiblitz`
The setup continues with the [RaspiBlitz Setup Process](https://github.com/rootzoll/raspiblitz/blob/dev/README.md#setup-process-detailed-documentation)
---
### To build manually:
[Follow the generic DietPi install process.](https://github.com/rootzoll/raspiblitz/tree/dev/alternative.platforms/dietpi#general-guide-for-the-raspiblitz-on-dietpi)

View File

@@ -1,14 +0,0 @@
# Use this format to build the SDcard with the Raspiblitz script:
# wget https://raw.githubusercontent.com/[GITHUB-USERNAME]/raspiblitz/[BRANCH]/build_sdcard.sh && sudo bash build_sdcard.sh [BRANCH] [GITHUB-USERNAME]`
# If you are working from a forked repo be aware of that the fork needs to be called `raspiblitz` for the git downloads to work.
# Uncomment the line with the branch you want to build the SDcard from:
# @rootzoll v1.6 release branch:
wget https://raw.githubusercontent.com/rootzoll/raspiblitz/v1.6/build_sdcard.sh && sudo bash build_sdcard.sh
# @rootzoll dev branch:
# wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build_sdcard.sh && sudo bash build_sdcard.sh dev
# @openoms DietPi branch:
# wget https://raw.githubusercontent.com/openoms/raspiblitz/DietPi/build_sdcard.sh && sudo bash build_sdcard.sh DietPi openoms

View File

@@ -1,257 +0,0 @@
# IMPORTANT:
# - Modifications to /boot/dietpi.txt will not be preserved on reboot.
# - Please ensure you edit from the DietPi-RAMdisk location: /DietPi/dietpi.txt
# NB: This is intended for advanced users, unless you know what you are doing, do not edit this file. Please use the DietPi programs instead.
# NB: Do not remove uncommented lines, as the items are scraped by DietPi programs, on demand.
#------------------------------------------------------------------------------------------------------
# D I E T - P I
# DietPi-Automation settings, applied on the 1st boot of DietPi, ONCE
#------------------------------------------------------------------------------------------------------
##### Networking Options #####
# If both Ethernet and Wifi are enabled, Wifi will take priority and Ethernet will be disabled.
# 1=enabled
AUTO_SETUP_NET_ETHERNET_ENABLED=1
AUTO_SETUP_NET_WIFI_ENABLED=0
# If using WiFi, please edit the following to pre-enter creds /boot/dietpi-wifi.txt
# Enter your Static Network details below, if applicable.
AUTO_SETUP_NET_USESTATIC=0
AUTO_SETUP_NET_STATIC_IP=192.168.0.100
AUTO_SETUP_NET_STATIC_MASK=255.255.255.0
AUTO_SETUP_NET_STATIC_GATEWAY=192.168.0.1
AUTO_SETUP_NET_STATIC_DNS=8.8.8.8
# Hostname
AUTO_SETUP_NET_HOSTNAME=DietPi
# Force ethernet speeds
# NB: This is mainly aimed at Pine A64's which may have an HW issue that causes unstable 1Gbit link.
# 0=automatic speed | 10 = 10mbit, 100 = 100mbit etc
AUTO_SETUP_NET_ETH_FORCE_SPEED=0
##### Misc Options #####
# Size of swapfile to generate (MB)
# 0=Disabled | 1=auto (2GB-RAM = size) | 2+=manual
AUTO_SETUP_SWAPFILE_SIZE=1
# Optional swapfile location
AUTO_SETUP_SWAPFILE_LOCATION=/var/swap
# Unmask (enable) systemd-logind service, which is masked by default on DietPi
AUTO_UNMASK_LOGIND=0
##### Software Automation Options #####
# Fully automate the installation
# 1=Automated installation with no user inputs.
# It is HIGHLY recommended to also set CONFIG_BOOT_WAIT_FOR_NETWORK=2, to force infinite wait for network connection during boot, preventing no connection errors due to timeout.
AUTO_SETUP_AUTOMATED=1
# Global Password to be applied for the system
# Requires AUTO_SETUP_AUTOMATED=1
# Affects user "root" and "dietpi" login passwords, and, all software installed by dietpi-software, that requires a password
# eg: MySQL, Transmission, Deluge etc.
# WARN: Passwords with the any of the following characters are not supported: \"$
# WARN: Do NOT change this entry after 1st run setup of DietPi has been completed. It is always scraped by dietpi-software.
AUTO_SETUP_GLOBAL_PASSWORD=dietpi
# DietPi-Software to automatically install. | requires AUTO_SETUP_AUTOMATED=1
# For a list of software index's (ID's), run '/DietPi/dietpi/dietpi-software list'
# No limit on number entries, add as many as you need and uncomment the line.
# DietPi will automatically install all pre-reqs (eg: ALSA/XSERVER for desktops etc)
# - Examples:
#AUTO_SETUP_INSTALL_SOFTWARE_ID=23 #will install Desktop LXDE
#AUTO_SETUP_INSTALL_SOFTWARE_ID=74 #will install LAMP webserver stack
#AUTO_SETUP_INSTALL_SOFTWARE_ID=44 #will install Bittorrent transmission
AUTO_SETUP_INSTALL_SOFTWARE_ID=73 # install fail2ban
# DietPi-Software Choice System
# SSH Server Selection:
# 0=none
# -1=dropbear
# -2=opensshserver
AUTO_SETUP_SSH_SERVER_INDEX=-2
# File Server Selection:
# 0=none/manual
# -1=proftp
# -2=samba
AUTO_SETUP_FILE_SERVER_INDEX=0
# Logging Mode Selection:
# 0=none/manual
# -1=ramlog 1h clear
# -2=ramlog 1h save clear
# -3=logrotate + rsyslog
AUTO_SETUP_LOGGING_INDEX=-1
# RAMlog max tmpfs size (MB). 50MB should be fine for single use. 200MB+ for heavy webserver and access log use etc.
AUTO_SETUP_RAMLOG_MAXSIZE=50
# Webserver Preference Selection:
# NB: This will get ignored, if you have manually selected any WEBSERVER_Stack.
# 0=Apache2
# -1=Nginx
# -2=Lighttpd
AUTO_SETUP_WEB_SERVER_INDEX=-2
# DietPi-Autostart | Requires AUTO_SETUP_AUTOMATED=1
# After installation is completed, which program should the system boot to?
# 0=Console 7=Console+auto root login | 1=Kodi 2=Desktops (LXDE/MATE etc) 5=DietPi-Cloudshell 6=Uae4ARM (Fastboot) 8=Uae4ARM (standard boot) 9=dxx-rebirth
AUTO_SETUP_AUTOSTART_TARGET_INDEX=7 # 7=Console+auto root login is changed to pi in build_sdcard.sh
# Language/Regional settings | Requires AUTO_SETUP_AUTOMATED=1
# Timezone eg: Europe/London America/New_York | Full list (TZ*): https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
AUTO_SETUP_TIMEZONE=Europe/London
# Locale eg: en_GB.UTF-8 / en_US.UTF-8 etc. One entry ONLY.
AUTO_SETUP_LOCALE=en_GB.UTF-8
# Keyboard Layout eg: gb us de fr
AUTO_SETUP_KEYBOARD_LAYOUT=gb
# Custom Script (pre-networking and pre-DietPi install) | Runs before DietPi installation and networking
# Allows you to automatically execute a custom script before networking and DietPi installation is started
# Option 1 = Copy your script to /boot/Automation_Custom_PreScript.sh and it will be executed automatically.
# NB: Executed script log /var/tmp/dietpi/logs/dietpi-automation_custom_prescript.log
# Custom Script (post-networking and post-DietPi install) | Runs after DietPi installation is completed
# Allows you to automatically execute a custom script at the end of DietPi installation.
# Option 1 = Copy your script to /boot/Automation_Custom_Script.sh and it will be executed automatically.
# Option 2 = Host your script online, then use AUTO_SETUP_CUSTOM_SCRIPT_EXEC=http://myweb.com/myscript.sh , it will be downloaded and executed automatically. | 0=disabled
# NB: Executed script log /var/tmp/dietpi/logs/dietpi-automation_custom_script.log
AUTO_SETUP_CUSTOM_SCRIPT_EXEC=0
#Disable HDMI (and GPU/VPU where supported) output for supported devices:
# RPi | Odroid C1 | Odroid C2
AUTO_SETUP_HEADLESS=0
#------------------------------------------------------------------------------------------------------
# D I E T - P I
# DietPi-Config settings
#------------------------------------------------------------------------------------------------------
#Cpu Governor | ondemand | powersave | performance | conservative
CONFIG_CPU_GOVERNOR=ondemand
CONFIG_CPU_USAGE_THROTTLE_UP=50
#CPU Frequency Limits
# NB: Intel CPU's use a percentage value (%) from 0-100 (eg: 55)
# NB: All other devices must use a specific MHz value (eg: 1600)
# Limit the MAX CPU frequency for all cores | Disabled=disabled
CONFIG_CPU_MAX_FREQ=Disabled
# Limit the MIN CPU frequency for all cores | Disabled=disabled
CONFIG_CPU_MIN_FREQ=Disabled
# Disable Intel-based turbo/boost stepping. This flag should not be required, setting <100% MAX frequency should disable Turbo on Intel CPU's.
CONFIG_CPU_DISABLE_TURBO=0
#Min value 10000 microseconds (10ms)
CONFIG_CPU_ONDEMAND_SAMPLE_RATE=25000
#sampling rate * down factor / 1000 = Milliseconds (40 = 1000ms when sampling rate is 25000)
CONFIG_CPU_ONDEMAND_SAMPLE_DOWNFACTOR=80
#Proxy settings | System-wide proxy settings. Use dietpi-config > networking options to apply.
# NB: Do not modify, you must use dietpi-config to configure/set options
CONFIG_PROXY_ENABLED=0
CONFIG_PROXY_ADDRESS=MyProxyServer.com
CONFIG_PROXY_PORT=8080
CONFIG_PROXY_USERNAME=
CONFIG_PROXY_PASSWORD=
#Delay boot until network is established: 0=disabled | 1=10 second wait max (default) | 2=infinite wait
CONFIG_BOOT_WAIT_FOR_NETWORK=2
#DietPi checks for updates (allows dietpi to check for updates on a daily basis and boot using a <1kb file download.)
CONFIG_CHECK_DIETPI_UPDATES=1
# Optional: Automatically update DietPi when updates are available. | requires CONFIG_CHECK_DIETPI_UPDATES=1
CONFIG_AUTO_DIETPI_UPDATES=0
#NTPD Update Mode: 0=disabled | 1=boot only | 2=boot + daily | 3=boot + hourly | 4=Daemon + Drift
CONFIG_NTP_MODE=2
#WiFi country code. 2 character value (eg GB US DE JP): https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
CONFIG_WIFI_COUNTRY_CODE=GB
#Serial Console: Set to 0 if you do not require serial console.
CONFIG_SERIAL_CONSOLE_ENABLE=1
#Soundcard
CONFIG_SOUNDCARD=none
#LCD Panel addon
# NB: Do not modify, you must use dietpi-config to configure/set options
CONFIG_LCDPANEL=none
#IPv6
CONFIG_ENABLE_IPV6=1
#Prefer IPv4 with APT and wget, NB: This has no effect if IPv6 is disabled anyway!
CONFIG_PREFER_IPV4=1
#APT mirrors which are applied to /etc/apt/sources.list | Values here will also be applied during 1st run setup
# Raspbian = https://www.raspbian.org/RaspbianMirrors
# Debian = https://www.debian.org/mirror/official#list
CONFIG_APT_RASPBIAN_MIRROR=http://raspbian.raspberrypi.org/raspbian
CONFIG_APT_DEBIAN_MIRROR=https://deb.debian.org/debian/
#NTPD mirror, applied to /etc/ntp.conf
# For a full list, please see http://www.pool.ntp.org
# Please remove the initial integer and full stop from the value (removing 0.). eg: debian.pool.ntp.org
CONFIG_NTP_MIRROR=debian.pool.ntp.org
#------------------------------------------------------------------------------------------------------
# D I E T - P I
# DietPi-Software settings
#------------------------------------------------------------------------------------------------------
#Enter your EmonCMS.org write API key here. It will be applied automatically during EmonPi/Hub installation.
# eg: SOFTWARE_EMONHUB_APIKEY=b4dfmk2o203mmxx93a
SOFTWARE_EMONHUB_APIKEY=
#VNC Server Options
SOFTWARE_VNCSERVER_WIDTH=1280
SOFTWARE_VNCSERVER_HEIGHT=720
SOFTWARE_VNCSERVER_DEPTH=16
SOFTWARE_VNCSERVER_DISPLAY_INDEX=1
SOFTWARE_VNCSERVER_SHARE_DESKTOP=0
#Optional username for ownCloud/Nextcloud admin account, the default is 'admin'. Applied during installation.
SOFTWARE_OWNCLOUD_NEXTCLOUD_USERNAME=admin
#Optional data directory for ownCloud, default is '/mnt/dietpi_userdata/owncloud_data'. Applied during installation.
# This option is for advanced users. For full compatibility, please keep this options defaults, and, use dietpi-drive_manager to move the DietPi user data location.
SOFTWARE_OWNCLOUD_DATADIR=/mnt/dietpi_userdata/owncloud_data
#Optional data directory for Nextcloud, default is '/mnt/dietpi_userdata/nextcloud_data'. Applied during installation.
# This option is for advanced users. For full compatibility, please keep this options defaults, and, use dietpi-drive_manager to move the DietPi user data location.
SOFTWARE_NEXTCLOUD_DATADIR=/mnt/dietpi_userdata/nextcloud_data
#Wifi Hotspot
SOFTWARE_WIFI_HOTSPOT_SSID=DietPi-HotSpot
# minimum of 8 characters
SOFTWARE_WIFI_HOTSPOT_KEY=dietpihotspot
SOFTWARE_WIFI_HOTSPOT_CHANNEL=3
#Xorg options
# DPI 96(default) 120(+25%) 144(+50%) 168(+75%) 192(+100%)
SOFTWARE_XORG_DPI=96
#Chromium Options
SOFTWARE_CHROMIUM_RES_X=1280
SOFTWARE_CHROMIUM_RES_Y=720
SOFTWARE_CHROMIUM_AUTOSTART_URL=https://google.com
#------------------------------------------------------------------------------------------------------
# D I E T - P I
# Dev settings
#------------------------------------------------------------------------------------------------------
DEV_GITBRANCH=master
DEV_GITOWNER=Fourdee
#------------------------------------------------------------------------------------------------------
# D I E T - P I
# Settings, automatically added by dietpi-update
#------------------------------------------------------------------------------------------------------

View File

@@ -1,256 +0,0 @@
# IMPORTANT:
# - Modifications to /boot/dietpi.txt will not be preserved on reboot.
# - Please ensure you edit from the DietPi-RAMdisk location: /DietPi/dietpi.txt
# NB: This is intended for advanced users, unless you know what you are doing, do not edit this file. Please use the DietPi programs instead.
# NB: Do not remove uncommented lines, as the items are scraped by DietPi programs, on demand.
#------------------------------------------------------------------------------------------------------
# D I E T - P I
# DietPi-Automation settings, applied on the 1st boot of DietPi, ONCE
#------------------------------------------------------------------------------------------------------
##### Networking Options #####
# If both Ethernet and Wifi are enabled, Wifi will take priority and Ethernet will be disabled.
# 1=enabled
AUTO_SETUP_NET_ETHERNET_ENABLED=1
AUTO_SETUP_NET_WIFI_ENABLED=0
# If using WiFi, please edit the following to pre-enter creds /boot/dietpi-wifi.txt
# Enter your Static Network details below, if applicable.
AUTO_SETUP_NET_USESTATIC=0
AUTO_SETUP_NET_STATIC_IP=192.168.0.100
AUTO_SETUP_NET_STATIC_MASK=255.255.255.0
AUTO_SETUP_NET_STATIC_GATEWAY=192.168.0.1
AUTO_SETUP_NET_STATIC_DNS=8.8.8.8
# Hostname
AUTO_SETUP_NET_HOSTNAME=DietPi
# Force ethernet speeds
# NB: This is mainly aimed at Pine A64's which may have an HW issue that causes unstable 1Gbit link.
# 0=automatic speed | 10 = 10mbit, 100 = 100mbit etc
AUTO_SETUP_NET_ETH_FORCE_SPEED=0
##### Misc Options #####
# Size of swapfile to generate (MB)
# 0=Disabled | 1=auto (2GB-RAM = size) | 2+=manual
AUTO_SETUP_SWAPFILE_SIZE=1
# Optional swapfile location
AUTO_SETUP_SWAPFILE_LOCATION=/var/swap
# Unmask (enable) systemd-logind service, which is masked by default on DietPi
AUTO_UNMASK_LOGIND=0
##### Software Automation Options #####
# Fully automate the installation
# 1=Automated installation with no user inputs.
# It is HIGHLY recommended to also set CONFIG_BOOT_WAIT_FOR_NETWORK=2, to force infinite wait for network connection during boot, preventing no connection errors due to timeout.
AUTO_SETUP_AUTOMATED=0
# Global Password to be applied for the system
# Requires AUTO_SETUP_AUTOMATED=1
# Affects user "root" and "dietpi" login passwords, and, all software installed by dietpi-software, that requires a password
# eg: MySQL, Transmission, Deluge etc.
# WARN: Passwords with the any of the following characters are not supported: \"$
# WARN: Do NOT change this entry after 1st run setup of DietPi has been completed. It is always scraped by dietpi-software.
AUTO_SETUP_GLOBAL_PASSWORD=dietpi
# DietPi-Software to automatically install. | requires AUTO_SETUP_AUTOMATED=1
# For a list of software index's (ID's), run '/DietPi/dietpi/dietpi-software list'
# No limit on number entries, add as many as you need and uncomment the line.
# DietPi will automatically install all pre-reqs (eg: ALSA/XSERVER for desktops etc)
# - Examples:
#AUTO_SETUP_INSTALL_SOFTWARE_ID=23 #will install Desktop LXDE
#AUTO_SETUP_INSTALL_SOFTWARE_ID=74 #will install LAMP webserver stack
#AUTO_SETUP_INSTALL_SOFTWARE_ID=44 #will install Bittorrent transmission
# DietPi-Software Choice System
# SSH Server Selection:
# 0=none
# -1=dropbear
# -2=opensshserver
AUTO_SETUP_SSH_SERVER_INDEX=-1
# File Server Selection:
# 0=none/manual
# -1=proftp
# -2=samba
AUTO_SETUP_FILE_SERVER_INDEX=0
# Logging Mode Selection:
# 0=none/manual
# -1=ramlog 1h clear
# -2=ramlog 1h save clear
# -3=logrotate + rsyslog
AUTO_SETUP_LOGGING_INDEX=-1
# RAMlog max tmpfs size (MB). 50MB should be fine for single use. 200MB+ for heavy webserver and access log use etc.
AUTO_SETUP_RAMLOG_MAXSIZE=50
# Webserver Preference Selection:
# NB: This will get ignored, if you have manually selected any WEBSERVER_Stack.
# 0=Apache2
# -1=Nginx
# -2=Lighttpd
AUTO_SETUP_WEB_SERVER_INDEX=-2
# DietPi-Autostart | Requires AUTO_SETUP_AUTOMATED=1
# After installation is completed, which program should the system boot to?
# 0=Console 7=Console+auto root login | 1=Kodi 2=Desktops (LXDE/MATE etc) 5=DietPi-Cloudshell 6=Uae4ARM (Fastboot) 8=Uae4ARM (standard boot) 9=dxx-rebirth
AUTO_SETUP_AUTOSTART_TARGET_INDEX=0
# Language/Regional settings | Requires AUTO_SETUP_AUTOMATED=1
# Timezone eg: Europe/London America/New_York | Full list (TZ*): https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
AUTO_SETUP_TIMEZONE=Europe/London
# Locale eg: en_GB.UTF-8 / en_US.UTF-8 etc. One entry ONLY.
AUTO_SETUP_LOCALE=en_GB.UTF-8
# Keyboard Layout eg: gb us de fr
AUTO_SETUP_KEYBOARD_LAYOUT=gb
# Custom Script (pre-networking and pre-DietPi install) | Runs before DietPi installation and networking
# Allows you to automatically execute a custom script before networking and DietPi installation is started
# Option 1 = Copy your script to /boot/Automation_Custom_PreScript.sh and it will be executed automatically.
# NB: Executed script log /var/tmp/dietpi/logs/dietpi-automation_custom_prescript.log
# Custom Script (post-networking and post-DietPi install) | Runs after DietPi installation is completed
# Allows you to automatically execute a custom script at the end of DietPi installation.
# Option 1 = Copy your script to /boot/Automation_Custom_Script.sh and it will be executed automatically.
# Option 2 = Host your script online, then use AUTO_SETUP_CUSTOM_SCRIPT_EXEC=http://myweb.com/myscript.sh , it will be downloaded and executed automatically. | 0=disabled
# NB: Executed script log /var/tmp/dietpi/logs/dietpi-automation_custom_script.log
AUTO_SETUP_CUSTOM_SCRIPT_EXEC=0
#Disable HDMI (and GPU/VPU where supported) output for supported devices:
# RPi | Odroid C1 | Odroid C2
AUTO_SETUP_HEADLESS=0
#------------------------------------------------------------------------------------------------------
# D I E T - P I
# DietPi-Config settings
#------------------------------------------------------------------------------------------------------
#Cpu Governor | ondemand | powersave | performance | conservative
CONFIG_CPU_GOVERNOR=ondemand
CONFIG_CPU_USAGE_THROTTLE_UP=50
#CPU Frequency Limits
# NB: Intel CPU's use a percentage value (%) from 0-100 (eg: 55)
# NB: All other devices must use a specific MHz value (eg: 1600)
# Limit the MAX CPU frequency for all cores | Disabled=disabled
CONFIG_CPU_MAX_FREQ=Disabled
# Limit the MIN CPU frequency for all cores | Disabled=disabled
CONFIG_CPU_MIN_FREQ=Disabled
# Disable Intel-based turbo/boost stepping. This flag should not be required, setting <100% MAX frequency should disable Turbo on Intel CPU's.
CONFIG_CPU_DISABLE_TURBO=0
#Min value 10000 microseconds (10ms)
CONFIG_CPU_ONDEMAND_SAMPLE_RATE=25000
#sampling rate * down factor / 1000 = Milliseconds (40 = 1000ms when sampling rate is 25000)
CONFIG_CPU_ONDEMAND_SAMPLE_DOWNFACTOR=80
#Proxy settings | System-wide proxy settings. Use dietpi-config > networking options to apply.
# NB: Do not modify, you must use dietpi-config to configure/set options
CONFIG_PROXY_ENABLED=0
CONFIG_PROXY_ADDRESS=MyProxyServer.com
CONFIG_PROXY_PORT=8080
CONFIG_PROXY_USERNAME=
CONFIG_PROXY_PASSWORD=
#Delay boot until network is established: 0=disabled | 1=10 second wait max (default) | 2=infinite wait
CONFIG_BOOT_WAIT_FOR_NETWORK=1
#DietPi checks for updates (allows dietpi to check for updates on a daily basis and boot using a <1kb file download.)
CONFIG_CHECK_DIETPI_UPDATES=1
# Optional: Automatically update DietPi when updates are available. | requires CONFIG_CHECK_DIETPI_UPDATES=1
CONFIG_AUTO_DIETPI_UPDATES=0
#NTPD Update Mode: 0=disabled | 1=boot only | 2=boot + daily | 3=boot + hourly | 4=Daemon + Drift
CONFIG_NTP_MODE=2
#WiFi country code. 2 character value (eg GB US DE JP): https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
CONFIG_WIFI_COUNTRY_CODE=GB
#Serial Console: Set to 0 if you do not require serial console.
CONFIG_SERIAL_CONSOLE_ENABLE=1
#Soundcard
CONFIG_SOUNDCARD=none
#LCD Panel addon
# NB: Do not modify, you must use dietpi-config to configure/set options
CONFIG_LCDPANEL=none
#IPv6
CONFIG_ENABLE_IPV6=1
#Prefer IPv4 with APT and wget, NB: This has no effect if IPv6 is disabled anyway!
CONFIG_PREFER_IPV4=1
#APT mirrors which are applied to /etc/apt/sources.list | Values here will also be applied during 1st run setup
# Raspbian = https://www.raspbian.org/RaspbianMirrors
# Debian = https://www.debian.org/mirror/official#list
CONFIG_APT_RASPBIAN_MIRROR=http://raspbian.raspberrypi.org/raspbian
CONFIG_APT_DEBIAN_MIRROR=https://deb.debian.org/debian/
#NTPD mirror, applied to /etc/ntp.conf
# For a full list, please see http://www.pool.ntp.org
# Please remove the initial integer and full stop from the value (removing 0.). eg: debian.pool.ntp.org
CONFIG_NTP_MIRROR=debian.pool.ntp.org
#------------------------------------------------------------------------------------------------------
# D I E T - P I
# DietPi-Software settings
#------------------------------------------------------------------------------------------------------
#Enter your EmonCMS.org write API key here. It will be applied automatically during EmonPi/Hub installation.
# eg: SOFTWARE_EMONHUB_APIKEY=b4dfmk2o203mmxx93a
SOFTWARE_EMONHUB_APIKEY=
#VNC Server Options
SOFTWARE_VNCSERVER_WIDTH=1280
SOFTWARE_VNCSERVER_HEIGHT=720
SOFTWARE_VNCSERVER_DEPTH=16
SOFTWARE_VNCSERVER_DISPLAY_INDEX=1
SOFTWARE_VNCSERVER_SHARE_DESKTOP=0
#Optional username for ownCloud/Nextcloud admin account, the default is 'admin'. Applied during installation.
SOFTWARE_OWNCLOUD_NEXTCLOUD_USERNAME=admin
#Optional data directory for ownCloud, default is '/mnt/dietpi_userdata/owncloud_data'. Applied during installation.
# This option is for advanced users. For full compatibility, please keep this options defaults, and, use dietpi-drive_manager to move the DietPi user data location.
SOFTWARE_OWNCLOUD_DATADIR=/mnt/dietpi_userdata/owncloud_data
#Optional data directory for Nextcloud, default is '/mnt/dietpi_userdata/nextcloud_data'. Applied during installation.
# This option is for advanced users. For full compatibility, please keep this options defaults, and, use dietpi-drive_manager to move the DietPi user data location.
SOFTWARE_NEXTCLOUD_DATADIR=/mnt/dietpi_userdata/nextcloud_data
#Wifi Hotspot
SOFTWARE_WIFI_HOTSPOT_SSID=DietPi-HotSpot
# minimum of 8 characters
SOFTWARE_WIFI_HOTSPOT_KEY=dietpihotspot
SOFTWARE_WIFI_HOTSPOT_CHANNEL=3
#Xorg options
# DPI 96(default) 120(+25%) 144(+50%) 168(+75%) 192(+100%)
SOFTWARE_XORG_DPI=96
#Chromium Options
SOFTWARE_CHROMIUM_RES_X=1280
SOFTWARE_CHROMIUM_RES_Y=720
SOFTWARE_CHROMIUM_AUTOSTART_URL=https://google.com
#------------------------------------------------------------------------------------------------------
# D I E T - P I
# Dev settings
#------------------------------------------------------------------------------------------------------
DEV_GITBRANCH=master
DEV_GITOWNER=Fourdee
#------------------------------------------------------------------------------------------------------
# D I E T - P I
# Settings, automatically added by dietpi-update
#------------------------------------------------------------------------------------------------------

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -407,7 +407,7 @@ echo -e "\n*** SOFTWARE UPDATE ***"
# sqlite3 -> database
# fdisk -> create partitions
# lsb-release -> needed to know which distro version we're running to add APT sources
general_utils="sudo policykit-1 htop git curl bash-completion vim jq dphys-swapfile bsdmainutils autossh telnet vnstat parted dosfstools fbi sysbench build-essential dialog bc python3-dialog unzip whois fdisk lsb-release smartmontools rsyslog qrencode dnsutils"
general_utils="sudo htop git curl bash-completion vim jq dphys-swapfile bsdmainutils autossh telnet vnstat parted dosfstools fbi sysbench build-essential dialog bc python3-dialog unzip whois fdisk lsb-release smartmontools rsyslog qrencode dnsutils"
# add btrfs-progs if not bookworm on aarch64
[ "${architecture}" = "aarch64" ] && ! grep "12 (bookworm)" < /etc/os-release && general_utils="${general_utils} btrfs-progs"
# python3-mako --> https://github.com/rootzoll/raspiblitz/issues/3441
@@ -423,8 +423,25 @@ apt-get autoremove -y
echo -e "\n*** Python DEFAULT libs & dependencies ***"
if [ -f "/usr/bin/python3.11" ]; then
# use python 3.11 if available
if [ -f "/usr/bin/python3.13" ]; then
# use python 3.13 if available (Debian 13 Trixie)
update-alternatives --install /usr/bin/python python /usr/bin/python3.13 1
# keep python backwards compatible
ln -s /usr/bin/python3.13 /usr/bin/python3.9
ln -s /usr/bin/python3.13 /usr/bin/python3.10
ln -s /usr/bin/python3.13 /usr/bin/python3.11
ln -s /usr/bin/python3.13 /usr/bin/python3.12
echo "python calls python3.13"
elif [ -f "/usr/bin/python3.12" ]; then
# use python 3.12 if available
update-alternatives --install /usr/bin/python python /usr/bin/python3.12 1
# keep python backwards compatible
ln -s /usr/bin/python3.12 /usr/bin/python3.9
ln -s /usr/bin/python3.12 /usr/bin/python3.10
ln -s /usr/bin/python3.12 /usr/bin/python3.11
echo "python calls python3.12"
elif [ -f "/usr/bin/python3.11" ]; then
# use python 3.11 if available (Debian 12 Bookworm)
update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1
# keep python backwards compatible
ln -s /usr/bin/python3.11 /usr/bin/python3.9
@@ -688,6 +705,7 @@ sudo -u bitcoin cp -r /etc/skel/. /home/bitcoin/
echo "bitcoin:raspiblitz" | chpasswd
# make home directory readable
chmod 755 /home/bitcoin
usermod -a -G bitcoin admin
# WRITE BASIC raspiblitz.info to sdcard
# if further info gets added .. make sure to keep that on: blitz.release.sh
@@ -894,7 +912,11 @@ echo "Provisioning BLITZ WEB SERVICE"
# *** FATPACK *** (can be activated by parameter - see details at start of script)
if ${fatpack}; then
echo "* FATPACK activated"
/home/admin/config.scripts/blitz.fatpack.sh || exit 1
/home/admin/config.scripts/blitz.fatpack.sh
if [ $? -gt 0 ]; then
echo "FATPACK FAILED - please check the output above."
exit 1
fi
else
echo "* skipping FATPACK"
fi

View File

@@ -75,7 +75,7 @@ https://github.com/rootzoll/raspiblitz/actions/workflows/amd64-lean-image.yml?qu
sudo wipefs --all ${disk}
```
#### Option 1 - rite the .qcow2 file directly to disk with `qemu-image dd`
#### Option 1 - write the .qcow2 file directly to disk with `qemu-image dd`
* requires less disk space - the .qcow2 volume is 8.1 GB
```
sudo qemu-img dd if=./raspiblitz-amd64-debian-lean.qcow2 of=${disk} bs=4M

View File

@@ -1,5 +1,7 @@
variable "iso_name" { default = "debian-12.11.0-amd64-netinst.iso" }
variable "iso_checksum" { default = "30ca12a15cae6a1033e03ad59eb7f66a6d5a258dcf27acd115c2bd42d22640e8" }
# images, checksums and signatures are at:
# https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/
variable "iso_name" { default = "debian-13.1.0-amd64-netinst.iso" }
variable "iso_checksum" { default = "658b28e209b578fe788ec5867deebae57b6aac5fce3692bbb116bab9c65568b3" }
variable "pack" { default = "lean" }
variable "github_user" { default = "raspiblitz" }

View File

@@ -387,7 +387,7 @@ else
fi
# Transaction Index
source <(/home/admin/config.scripts/network.txindex.sh status)
source <(sudo /home/admin/config.scripts/network.txindex.sh status)
if [ "${txindex}" == "1" ] && [ "${isIndexed}" != "1" ]; then
appInfoLine="Transaction Index: ${indexInfo}"
fi

View File

@@ -93,7 +93,7 @@ while :
source <(/home/admin/config.scripts/network.aliases.sh getvars)
fi
if [ "${setupPhase}" != "done" ] || [ "${state}" == "reboot" ] || [ "${state}" == "shutdown" ] || [ "${state}" == "copytarget" ] || [ "${state}" == "copysource" ]; then
if [ "${setupPhase}" != "done" ] || [ "${state}" == "reboot" ] || [ "${state}" == "shutdown" ] || [ "${state}" == "copytarget" ] || [ "${state}" == "copysource" ] || [ "${state}" = "storageisfull" ] || [ "${state}" = "dataisfull" ]; then
# show status info during boot & setup & repair on LCD
if [ "${state}" == "" ]; then

View File

@@ -87,7 +87,7 @@ fi
OPTIONS+=(REINDEX-UTXO "Redindex Just Bitcoin Chainstate (Fast)")
OPTIONS+=(REINDEX-FULL "Redindex Full Bitcoin Blockchain (Slow)")
OPTIONS+=(RESET-CHAIN "Delete Blockchain & Re-Download")
OPTIONS+=(RESET-HDD "Delete HDD Data but keep Blockchain")
#OPTIONS+=(RESET-HDD "Delete HDD Data but keep Blockchain")
OPTIONS+=(RESET-ALL "Delete HDD completely to start fresh")
OPTIONS+=(DELETE-ELEC "Delete Electrum Index")
@@ -152,7 +152,8 @@ case $CHOICE in
;;
RESET-ALL)
askBackupCopy
/home/admin/XXcleanHDD.sh -all
sudo /home/admin/config.scripts/blitz.data.sh reset OVERWRITE
sleep 3
infoResetSDCard
sudo shutdown now
exit 1;

View File

@@ -418,6 +418,7 @@ case $CHOICE in
sudo rm $_temp 2>/dev/null
/home/admin/config.scripts/lnd.install.sh on ${CHAIN}
/home/admin/config.scripts/lnd.credentials.sh sync "${CHAIN}"
sudo systemctl start ${netprefix}lnd
syncAndCheckLND

View File

@@ -64,11 +64,11 @@ case $CHOICE in
;;
${network}LOG)
if [ ${CHAIN} = signet ]; then
bitcoinlogpath="/mnt/hdd/bitcoin/signet/debug.log"
bitcoinlogpath="/mnt/hdd/app-data/bitcoin/signet/debug.log"
elif [ ${CHAIN} = testnet ]; then
bitcoinlogpath="/mnt/hdd/bitcoin/testnet3/debug.log"
bitcoinlogpath="/mnt/hdd/app-data/bitcoin/testnet3/debug.log"
elif [ ${CHAIN} = mainnet ]; then
bitcoinlogpath="/mnt/hdd/bitcoin/debug.log"
bitcoinlogpath="/mnt/hdd/app-data/bitcoin/debug.log"
fi
clear
echo

View File

@@ -459,7 +459,13 @@ Do you really want to update Bitcoin Core now?
error=""
warn=""
sudo -u admin /home/admin/config.scripts/bitcoin.update.sh tested
sudo -u admin /home/admin/config.scripts/bitcoin.update.sh tested || {
whiptail --title "ERROR" --msgbox "bitcoin.update.sh failed
It was called at $(readlink -f "${BASH_SOURCE[0]}"):${LINENO}
Consider running that manually to debug " 10 80
exit 0
}
whiptail \
--title " Bitcoin Core update " \
--yes-button "Reboot" \

View File

@@ -1,82 +0,0 @@
#!/bin/bash
echo ""
extraParameter="$1"
forceParameter="$2"
if [ "${extraParameter}" = "-all" ]; then
echo "## This will DELETE ALL DATA & POSSIBLE FUNDS from the HDD ##"
echo "# Press ENTER to really continue - CTRL+c to CANCEL (last chance)"
read key
echo "# stopping services ... (please wait)"
echo "# - swap"
sudo dphys-swapfile swapoff
echo "# - background"
sudo systemctl stop background 2>/dev/null
echo "# - lnd"
sudo systemctl stop lnd.service 2>/dev/null
echo "# - blockchain"
sudo systemctl stop bitcoind.service 2>/dev/null
# delete plain all on HDD
echo "# cleaning HDD ... (please wait)"
sudo rm -rfv /mnt/hdd/*
elif [ "${extraParameter}" = "-blockchain" ]; then
if [ "${forceParameter}" != "-force" ]; then
echo "# This will DELETE JUST your blockchain from the HDD."
echo "# --> It will keep your LND data and other setups."
echo "# --> You will get presented re-download options."
echo "# Press ENTER to really continue - CTRL+c to CANCEL (last chance)"
read key
fi
echo "# stopping services ... (please wait)"
sudo systemctl stop bitcoind.service 2>/dev/null
echo "selective blockchain data ... (please wait)"
# conf & wallet files are in /mnt/hdd/app-data/bitcoin - so delete all in storage
sudo rm -r -f /mnt/hdd/app-storage/bitcoin/*
sudo /home/admin/config.scripts/blitz.data.sh link
echo "OK Blockchain data deleted, restart needed - you may want now run: /home/admin/98repairBlockchain.sh"
else
echo "## This will DELETE your personal data & POSSIBLE FUNDS from the HDD ##"
echo "--> It will keep Blockchain data - so you dont have to download/copy again."
echo "Press ENTER to really continue - CTRL+c to CANCEL (last chance)"
read key
echo "stopping services ... (please wait)"
sudo dphys-swapfile swapoff
sudo systemctl stop background 2>/dev/null
sudo systemctl stop bitcoind.service 2>/dev/null
# just delete selective
echo "selective delete ... (please wait)"
# bitcoin mainnet (clean working files)
sudo rm -f /mnt/hdd/app-storage/bitcoin/* 2>/dev/null
sudo rm -f /mnt/hdd/app-storage/bitcoin/.* 2>/dev/null
sudo rm -f -r /mnt/hdd/app-storage/bitcoin/indexes 2>/dev/null
# delete all directories in /mnt/hdd/app-storage - but not the "bitcoin" folder
sudo mv /mnt/hdd/app-storage/bitcoin /mnt/hdd/app-data/bitcoin-temp 2>/dev/null
sudo rm -f -r /mnt/hdd/app-storage/* 2>/dev/null
sudo mv /mnt/hdd/app-data/bitcoin-temp /mnt/hdd/app-storage/bitcoin 2>/dev/null
# delete rest of all data
sudo rm -f -r /mnt/hdd/hdd/app-data 2>/dev/null
sudo rm -f -r /mnt/disk_storage/app-data 2>/dev/null
sudo rm -f -r /mnt/disk_data/app-data 2>/dev/null
sudo rm -f -r /mnt/disk_storage/temp 2>/dev/null
fi
echo "*************************"
echo "OK - the HDD is now clean"
echo "*************************"
echo "reboot -> sudo shutdown -r now"
echo "power off -> sudo shutdown now"

View File

@@ -246,6 +246,40 @@ do
fi
fi
################################
# CHECK FULL STORAGE
################################
# check every 5min
recheckStorage=$(($counter % 300))
if [ ${recheckStorage} -eq 1 ]; then
echo "*** CHECK FULL STORAGE ***"
percent=$(df --output=pcent /mnt/disk_storage | tail -1 | tr -dc '0-9');
if [ "${percent}" != "" ] && [ ${percent} -gt 98 ]; then
echo "WARN # STORAGE is ${percent} - sending warning"
/home/admin/_cache.sh set state "storageisfull"
/home/admin/_cache.sh set message "${percent}"
else
echo "OK - STORAGE is at ${percent}%"
fi
echo "*** CHECK FULL DATA ***"
if mountpoint -q /mnt/disk_data; then
percent=$(df --output=pcent /mnt/disk_data | tail -1 | tr -dc '0-9');
if [ "${percent}" != "" ] && [ ${percent} -gt 98 ]; then
echo "WARN # DATA is ${percent} - sending warning"
/home/admin/_cache.sh set state "dataisfull"
/home/admin/_cache.sh set message "${percent}"
else
echo "OK - DATA is at ${percent}%"
fi
else
echo "OK - /mnt/disk_data not mounted"
fi
fi
###############################
# SYSTEM LOG FILE SIZES
###############################

View File

@@ -125,6 +125,7 @@ raspi_bootdir="/boot/firmware"
######################################
# STOP flags - for manual provision
rm /tmp/100mb.spacer 2>/dev/null # remove spacer file to create wiggle room on pishrinked images
# when a file 'stop' is on the sd card bootfs partition root - stop for manual provision (raspberrypi)
flagExists=$(ls ${raspi_bootdir}/stop 2>/dev/null | grep -c 'stop')
@@ -771,7 +772,7 @@ if [ "${scenario}" != "ready" ] ; then
# create a place holder partition for future system use
# ONLY when a dedicated system device is available - dont create a system partition
createSystemPartion=1
if [ ${#systemDevice} -gt 0 ]; then
if [ ${#systemDevice} -gt 0 ] && [ "${systemDevice}" != "${storageDevice}" ]; then
createSystemPartion=0
fi
@@ -793,11 +794,13 @@ if [ "${scenario}" != "ready" ] ; then
echo "FORMAT/RECOVER DRIVES" >> ${logFile}
/home/admin/_cache.sh set state "hdd-format"
/home/admin/_cache.sh set message "formatting drives"
/home/admin/_cache.sh set message "${setupCommand}"
# STORAGE
echo "#### STORAGE ####" >> ${logFile}
echo "# storageDevice(${storageDevice}) storageMountedPath(${storageMountedPath})" >> ${logFile}
if [ ${#storageDevice} -gt 0 ] && [ ${#storageMountedPath} -eq 0 ]; then
echo "STORAGE: ${setupCommand} STORAGE start" >> ${logFile}
error=""
source <(/home/admin/config.scripts/blitz.data.sh ${setupCommand} STORAGE "${storageDevice}" "${combinedDataStorage}" "${createSystemPartion}")
if [ "${error}" != "" ]; then
@@ -807,12 +810,16 @@ if [ "${scenario}" != "ready" ] ; then
exit 1
fi
echo "STORAGE: ${setupCommand} STORAGE done" >> ${logFile}
else
echo "STORAGE: ${setupCommand} STORAGE skipped - already mounted" >> ${logFile}
fi
# SYSTEM
echo "#### SYSTEM ####" >> ${logFile}
echo "# systemDevice(${systemDevice}) systemWarning(${systemWarning})" >> ${logFile}
if [ ${#systemDevice} -gt 0 ] && [ "${bootFromStorage}" = "0" ] && [ ${#systemWarning} -eq 0 ]; then
if [ ${#systemDevice} -gt 0 ] && [ "${systemDevice}" != "${storageDevice}" ] && [ "${bootFromStorage}" = "0" ] && [ ${#systemWarning} -eq 0 ]; then
error=""
echo "SYSTEM: ${setupCommand} SYSTEM start" >> ${logFile}
source <(/home/admin/config.scripts/blitz.data.sh ${setupCommand} SYSTEM "${systemDevice}")
if [ "${error}" != "" ]; then
echo "FAIL: '${setupCommand} SYSTEM' failed error(${error})" >> ${logFile}
@@ -824,13 +831,17 @@ if [ "${scenario}" != "ready" ] ; then
else
if [ "${systemMountedPath}" = "/" ]; then
echo "SYSTEM: ${setupCommand} SYSTEM skipped - its active system" >> ${logFile}
else
echo "SYSTEM: ${setupCommand} SYSTEM skipped - already mounted" >> ${logFile}
fi
fi
# DATA
echo "#### DATA ####" >> ${logFile}
echo "# dataDevice(${dataDevice}) dataWarning(${dataWarning})" >> ${logFile}
if [ ${#dataDevice} -gt 0 ] && [ ${#dataWarning} -eq 0 ]; then
if [ ${#dataDevice} -gt 0 ] && [ "${dataDevice}" != "${storageDevice}" ] && [ ${#dataWarning} -eq 0 ]; then
error=""
echo "DATA: ${setupCommand} DATA start" >> ${logFile}
source <(/home/admin/config.scripts/blitz.data.sh ${setupCommand} DATA "${dataDevice}")
if [ "${error}" != "" ]; then
echo "FAIL: '${setupCommand} DATA' failed error(${error})" >> ${logFile}
@@ -839,6 +850,12 @@ if [ "${scenario}" != "ready" ] ; then
exit 1
fi
echo "DATA: ${setupCommand} DATA done" >> ${logFile}
else
if [ "${dataMountedPath}" = "/mnt/hdd" ]; then
echo "DATA: ${setupCommand} DATA skipped - its active data" >> ${logFile}
else
echo "DATA: ${setupCommand} DATA skipped - already mounted" >> ${logFile}
fi
fi
# when system was installed on new boot drive
@@ -930,7 +947,7 @@ if [ "${scenario}" != "ready" ] ; then
bootFromStorage=1
fi
echo "SYSTEM COPY OF FRESH SYSTEM" >> ${logFile}
echo "#### SYSTEM COPY OF FRESH SYSTEM" >> ${logFile}
echo "bootFromStorage(${bootFromStorage})" >> ${logFile}
echo "storageDevice(${storageDevice})" >> ${logFile}
echo "systemDevice(${systemDevice})" >> ${logFile}
@@ -1268,11 +1285,18 @@ if [ "${scenario}" != "ready" ] ; then
# wait until syncProgress is available (neeed for final dialogs)
/home/admin/_cache.sh set state "waitsync"
btc_default_ready="0"
loop_counter=0
while [ "${btc_default_ready}" != "1" ]
do
loop_counter=$((loop_counter + 1))
source <(/home/admin/_cache.sh get btc_default_ready)
echo "# waitsync loop ... btc_default_ready(${btc_default_ready})" >> $logFile
echo "# waitsync loop ${loop_counter} ... btc_default_ready(${btc_default_ready})" >> $logFile
sleep 2
if [ ${loop_counter} -eq 30 ]; then
echo "LOOP TAKES TOO LONG: Try deleting settings.json & force restart" >> $logFile
rm /mnt/hdd/app-storage/bitcoin/settings.json
systemctl restart bitcoind
fi
done
# one time add info on blockchain sync to chache

View File

@@ -163,14 +163,38 @@ function release() {
fi
}
# command: clean
function clean() {
firstPARAM=$1
echo "- deletes all data from drive - just keeps blocks and chainstate (LOSS OF FUNDS POSSIBLE!)"
source <(/home/admin/_cache.sh get state)
if [ "$state" != "waitsetup" ]; then
echo "error='can only be called on fresh sd card image - before setup or recover'"
exit 1
fi
source <(sudo /home/admin/config.scripts/blitz.data.sh status)
if [ "${storageDevice}" = "" ]; then
echo "error='no storage device'"
exit 1
fi
confirmMsg clean
if [ $confirm -eq 1 ]; then
sudo /home/admin/config.scripts/blitz.data.sh clean STORAGE "${storageDevice}"
fi
}
# command: fatpack
function fatpack() {
echo "Command to be called only on a fresh stopped minimal build to re-pack installs."
confirmMsg fatpack
if [ $confirm -eq 1 ]; then
sudo /home/admin/config.scripts/blitz.fatpack.sh
# raspberry pi fatpack has lcd display be default
sudo /home/admin/config.scripts/blitz.display.sh set-display lcd
if [ $? -eq 0 ]; then
# raspberry pi fatpack has lcd display be default
sudo /home/admin/config.scripts/blitz.display.sh set-display lcd
else
echo "FATPACK FAILED - please check the output above."
fi
fi
}

View File

@@ -188,11 +188,13 @@ if [ "${lightning}" == "lnd" ]; then
fi
# fix config after import
/home/admin/config.scripts/lnd.install.sh on mainnet
/home/admin/config.scripts/lnd.credentials.sh sync mainnet >> $logFile
else
# preparing new LND config (raspiblitz.setup)
echo "Creating new LND config ..." >> ${logFile}
/home/admin/config.scripts/lnd.install.sh on mainnet
/home/admin/config.scripts/lnd.setname.sh mainnet ${hostname}
/home/admin/config.scripts/lnd.credentials.sh sync mainnet >> $logFile
fi
# make sure all directories are linked
@@ -216,6 +218,12 @@ if [ "${lightning}" == "lnd" ]; then
# copy lnd service
cp /home/admin/assets/lnd.service /etc/systemd/system/lnd.service >> ${logFile}
# set permissions
echo "# /mnt/hdd/app-data/lnd" >> ${logFile}
ls -la /mnt/hdd/app-data/lnd >> ${logFile}
chown -R bitcoin:bitcoin /mnt/hdd/app-data/lnd >> ${logFile}
ls -la /mnt/hdd/app-data/lnd >> ${logFile}
# start lnd up
echo "Starting LND Service ..." >> ${logFile}
systemctl enable lnd >> ${logFile}

View File

@@ -164,10 +164,7 @@ systemctl start ${network}d.service >> ${logFile}
# INSTALL LND on Update/Recovery
if [ "${lightning}" == "lnd" ] || [ "${lnd}" == "on" ]; then
# prepare lnd service
cp /home/admin/assets/lnd.service /etc/systemd/system/lnd.service >> ${logFile} 2>&1
# if old lnd.conf exists ...
# if old lnd.conf exists ... update it to latest standards
configExists=$(sudo ls /mnt/hdd/app-data/lnd/lnd.conf | grep -c '.conf')
if [ ${configExists} -eq 1 ]; then
@@ -238,6 +235,13 @@ if [ "${lightning}" == "lnd" ] || [ "${lnd}" == "on" ]; then
echo "WARN: /mnt/hdd/app-data/lnd/lnd.conf not found" >> ${logFile}
fi
# install & turn on lnd
/home/admin/config.scripts/lnd.install.sh on mainnet >> ${logFile} 2>&1
/home/admin/config.scripts/lnd.credentials.sh sync mainnet >> $logFile
# prepare lnd service
cp /home/admin/assets/lnd.service /etc/systemd/system/lnd.service >> ${logFile} 2>&1
# start LND service
echo "Starting LND Service ..." >> ${logFile}
systemctl enable lnd >> ${logFile}

View File

@@ -284,10 +284,11 @@ else
echo "Provisioning LND Binary - not active" >> ${logFile}
fi
# LND Mainnet (when not main instance)
# LND Mainnet (only when not main instance)
if [ "${lnd}" == "on" ] && [ "${lightning}" != "lnd" ]; then
echo "Provisioning LND Mainnet - run config script" >> ${logFile}
/home/admin/config.scripts/lnd.install.sh on mainnet >> ${logFile} 2>&1
/home/admin/config.scripts/lnd.credentials.sh sync mainnet >> $logFile
else
echo "Provisioning LND Mainnet - not active as secondary option" >> ${logFile}
fi
@@ -296,6 +297,7 @@ fi
if [ "${tlnd}" == "on" ]; then
echo "Provisioning LND Testnet - run config script" >> ${logFile}
/home/admin/config.scripts/lnd.install.sh on testnet >> ${logFile} 2>&1
/home/admin/config.scripts/lnd.credentials.sh sync testnet >> $logFile
systemctl start tlnd >> ${logFile} 2>&1
else
echo "Provisioning LND Testnet - not active" >> ${logFile}
@@ -305,6 +307,7 @@ fi
if [ "${slnd}" == "on" ]; then
echo "Provisioning LND Signet - run config script" >> ${logFile}
/home/admin/config.scripts/lnd.install.sh on signet >> ${logFile} 2>&1
/home/admin/config.scripts/lnd.credentials.sh sync signet >> $logFile
systemctl start slnd >> ${logFile} 2>&1
else
echo "Provisioning LND Signet - not active" >> ${logFile}

View File

@@ -1,4 +1,4 @@
# RaspiBlitz Version - always [major].[main].[sub] (sub can be a string like '2rc1')
codeVersion="1.12.0rc4"
codeVersion="1.12.0"
codeRelease="dev"
# keep last line with comment ---> IF YOU HAVE A NEW VERSION BRANCH > EDIT ALSO build_sdcard.sh

View File

@@ -10,10 +10,10 @@ daemon=1
txindex=0
disablewallet=1
peerbloomfilters=1
datadir=/mnt/hdd/bitcoin
main.debuglogfile=/mnt/hdd/bitcoin/debug.log
test.debuglogfile=/mnt/hdd/bitcoin/testnet3/debug.log
signet.debuglogfile=/mnt/hdd/bitcoin/signet/debug.log
datadir=/mnt/hdd/app-storage/bitcoin
main.debuglogfile=/mnt/hdd/app-data/bitcoin/debug.log
test.debuglogfile=/mnt/hdd/app-data/bitcoin/testnet3/debug.log
signet.debuglogfile=/mnt/hdd/app-data/bitcoin/signet/debug.log
# Connection settings
rpcuser=raspibolt

View File

@@ -45,15 +45,15 @@ if [ "$1" == "prestart" ]; then
case "${CHAIN}" in
mainnet)
bitcoinlog_entry="main.debuglogfile"
bitcoinlog_path="/mnt/hdd/bitcoin/debug.log"
bitcoinlog_path="/mnt/hdd/app-data/bitcoin/debug.log"
;;
testnet)
bitcoinlog_entry="test.debuglogfile"
bitcoinlog_path="/mnt/hdd/bitcoin/testnet3/debug.log"
bitcoinlog_path="/mnt/hdd/app-data/bitcoin/testnet3/debug.log"
;;
signet)
bitcoinlog_entry="signet.debuglogfile"
bitcoinlog_path="/mnt/hdd/bitcoin/signet/debug.log"
bitcoinlog_path="/mnt/hdd/app-data/bitcoin/signet/debug.log"
;;
esac
@@ -63,6 +63,10 @@ if [ "$1" == "prestart" ]; then
echo "${bitcoinlog_entry}=${bitcoinlog_path}" >> /mnt/hdd/app-data/bitcoin/bitcoin.conf
fi
# delete any debuglogfile in app-storage and link to new location in app-data
rm -f /mnt/hdd/app-storage/bitcoin/debug.log
ln -s /mnt/hdd/app-data/bitcoin/debug.log /mnt/hdd/app-storage/bitcoin/debug.log
# make sure entry has the correct value
echo "# make sure entry(${bitcoinlog_entry}) has the correct value(${bitcoinlog_path})"
sed -i "s|^${bitcoinlog_entry}=.*|${bitcoinlog_entry}=${bitcoinlog_path}|g" /mnt/hdd/app-data/bitcoin/bitcoin.conf
@@ -78,6 +82,16 @@ if [ "$1" == "prestart" ]; then
echo "main.walletdir=/mnt/hdd/app-data/bitcoin/wallets" >> /mnt/hdd/app-data/bitcoin/bitcoin.conf
echo "main.wallet=wallet.dat" >> /mnt/hdd/app-data/bitcoin/bitcoin.conf
# remove any data directory entries - is already forced by parameter in bitcoind.service
echo "# remove any data directory entries"
sed -i '/^datadir=/d' /mnt/hdd/app-data/bitcoin/bitcoin.conf
sed -i '/^main.datadir=/d' /mnt/hdd/app-data/bitcoin/bitcoin.conf
sed -i '/^test.datadir=/d' /mnt/hdd/app-data/bitcoin/bitcoin.conf
sed -i '/^signet.datadir=/d' /mnt/hdd/app-data/bitcoin/bitcoin.conf
# remove any whitelist entries (whitebind is used instead)
sed -i '/^whitelist=/d' /mnt/hdd/app-data/bitcoin/bitcoin.conf
# make sure bitcoin debug file exists
echo "# make sure bitcoin debug file exists"
touch ${bitcoinlog_path}

9
home.admin/config.scripts/bitcoin.install.sh Normal file → Executable file
View File

@@ -2,7 +2,7 @@
# set version (change if update is available)
# https://bitcoincore.org/en/download/
bitcoinVersion="29.0"
bitcoinVersion="29.2"
# command info
@@ -44,11 +44,11 @@ elif [ ${CHAIN} = mainnet ]; then
fi
# bitcoinlogpath
if [ ${CHAIN} = signet ]; then
bitcoinlogpath="/mnt/hdd/app-storage/bitcoin/signet/debug.log"
bitcoinlogpath="/mnt/hdd/app-data/bitcoin/signet/debug.log"
elif [ ${CHAIN} = testnet ]; then
bitcoinlogpath="/mnt/hdd/app-storage/bitcoin/testnet3/debug.log"
bitcoinlogpath="/mnt/hdd/app-data/bitcoin/testnet3/debug.log"
elif [ ${CHAIN} = mainnet ]; then
bitcoinlogpath="/mnt/hdd/app-storage/bitcoin/debug.log"
bitcoinlogpath="/mnt/hdd/app-data/bitcoin/debug.log"
fi
function addBitcoinAliases {
@@ -146,6 +146,7 @@ if [ "$1" = "install" ]; then
# install
sudo -u admin tar -xvf ${binaryName}
sudo install -m 0755 -o root -g root -t /usr/local/bin/ bitcoin-${bitcoinVersion}/bin/*
sudo install -m 0644 -o root -g root -D -t /usr/local/share/man/man1 bitcoin-${bitcoinVersion}/share/man/man1/*
sleep 3
if ! sudo /usr/local/bin/bitcoind --version | grep "${bitcoinVersion}"; then
echo

View File

@@ -28,7 +28,7 @@ fi
mode="$1"
# RECOMMENDED UPDATE BY RASPIBLITZ TEAM (latest tested version available)
bitcoinVersion="" # example: 22.0 .. keep empty if no newer version as sd card build is available
bitcoinVersion="30.0" # example: 22.0 .. keep empty if no newer version as sd card build is available
# GATHER DATA
# setting download directory to the current user
@@ -44,7 +44,7 @@ elif [ "$(uname -m | grep -c 'x86_64')" -gt 0 ]; then
fi
# installed version
installedVersion=$(sudo -u bitcoin bitcoind --version | head -n1 | cut -d" " -f4 | cut -c 2-)
installedVersion=$(sudo -u bitcoin bitcoind --version | head -n1 | cut -d" " -f5 | cut -c 2-)
# test if the installed version already the tested/recommended update version
bitcoinUpdateInstalled=$(echo "${installedVersion}" | grep -c "${bitcoinVersion}")
@@ -137,12 +137,12 @@ if [ "${mode}" = "tested" ]; then
if [ "${result}" -eq 2 ]; then
# this can happen if bitcoin install script already has a higher version then the tested version set by this script (see above)
echo "# installed version is newer then to be updated version --> ABORT"
echo
echo
exit 1
fi
if [ "${result}" -eq 0 ]; then
echo "# version is already installed --> ABORT"
echo
echo
exit 1
fi
@@ -288,6 +288,7 @@ if [ "${mode}" = "tested" ] || [ "${mode}" = "reckless" ] || [ "${mode}" = "cust
echo "# Installing Bitcoin Core v${bitcoinVersion}"
tar -xvf ${binaryName}
sudo install -m 0755 -o root -g root -t /usr/local/bin/ bitcoin-${bitcoinVersion}/bin/*
sudo install -m 0644 -o root -g root -D -t /usr/local/share/man/man1 bitcoin-${bitcoinVersion}/share/man/man1/*
sleep 3
if ! sudo -u bitcoin /usr/local/bin/bitcoind --version | grep "${bitcoinVersion}"; then
echo

View File

@@ -28,10 +28,12 @@ action=$1
# STATUS
# gather data on SDcard / OS drive
minimumSizeByte=16384000000
minimumSizeByte=28023152640
rootPartitionLine=$(sudo mount | grep " / " | cut -d " " -f 1)
rootPartition=$(basename ${rootPartitionLine})
rootDrive=$(basename "$(readlink -f "/sys/class/block/$rootPartition/..")")
rootPartitionBytes=$(lsblk -b -o NAME,SIZE | grep "${rootPartition}" | awk '{print $2}')
rootDriveBytes=$(lsblk -b -o NAME,SIZE | grep "${rootDrive} " | awk '{print $2}')
# make conclusions
needsExpansion=0
@@ -43,10 +45,24 @@ if [ $rootPartitionBytes -lt $minimumSizeByte ]; then
fi
fi
# only if sd card
if [ "${rootDrive}" == "mmcblk0" ]; then
bytesDiff=$((rootDriveBytes - rootPartitionBytes))
# if the system partition is 1GB smaller than the whole drive - expand
if [ $bytesDiff -gt 1000000000 ]; then
echo "# rootDrive has ${bytesDiff} bytes more than rootPartition"
if [ "${fsexpanded}" != "1" ]; then
needsExpansion=1
fi
fi
fi
if [ "${action}" == "status" ]; then
echo "rootPartition='${rootPartition}'"
echo "rootPartitionBytes=${rootPartitionBytes}"
echo "rootDrive='${rootDrive}'"
echo "rootDriveBytes=${rootDriveBytes}"
echo "needsExpansion=${needsExpansion}"
echo "fsexpanded=${fsexpanded}" # from raspiblitz.info
echo "tooSmall=${tooSmall}"

File diff suppressed because it is too large Load Diff

View File

@@ -117,8 +117,8 @@ echo "sudo journalctl -u ${network}d -b --no-pager -n20"
sudo journalctl -u ${network}d -b --no-pager -n20
echo
echo "*** LAST BLOCKCHAIN (MAINNET) INFO LOGS ***"
echo "sudo tail -n 50 /mnt/hdd/app-storage/${network}/debug.log"
sudo tail -n 50 /mnt/hdd/app-storage/${network}${pathAdd}/debug.log
echo "sudo tail -n 50 /mnt/hdd/app-data/${network}/debug.log"
sudo tail -n 50 /mnt/hdd/app-data/${network}${pathAdd}/debug.log
echo
echo "*** LND (MAINNET) SYSTEMD STATUS ***"

View File

@@ -18,23 +18,16 @@ elif [ -d /boot ]; then
fi
echo "# raspi_bootdir(${raspi_bootdir})"
# determine if this is a early release candidate (use file not cache)
codeVersion=$(git -C /home/admin/raspiblitz branch --show-current)
isReleaseCandidate=0
if [[ "$codeVersion" == *"dev"* ]]; then
isReleaseCandidate=1
fi
echo "# isReleaseCandidate(${isReleaseCandidate})"
# make sure LCD is on (default for fatpack)
/home/admin/config.scripts/blitz.display.sh set-display lcd
# check if sd card needs expansion before fatpack
source <(sudo /home/admin/config.scripts/blitz.bootdrive.sh status)
if [ "${needsExpansion}" == "1" ]; then
if [ ${rootPartitionBytes} -lt 58465668608 ]; then
echo "################################################"
echo "# SD CARD NEEDS EXPANSION BEFORE FATPACK"
echo "# AND MAKE SURE TO USE 64GB SD CARD"
echo "# this will be done now ... and trigger a reboot"
echo "# after reboot run this script again"
echo "################################################"
@@ -99,9 +92,11 @@ echo "* Adding nodeJS Framework ..."
echo "* Optional Packages (may be needed for extended features)"
apt_install qrencode secure-delete fbi msmtp unclutter xterm python3-pyqt5 xfonts-terminus python3-jinja2 socat libatlas-base-dev hexyl
echo "#############################################################"
echo "* Adding LND ..."
/home/admin/config.scripts/lnd.install.sh install || exit 1
echo "#############################################################"
echo "* Adding Core Lightning ..."
/home/admin/config.scripts/cl.install.sh install || exit 1
@@ -112,19 +107,13 @@ sudo -u admin curl -H "Accept: application/json; indent=4" https://bitnodes.io/a
# Fallback Nodes List from Bitcoin Core
sudo -u admin curl https://raw.githubusercontent.com/bitcoin/bitcoin/master/contrib/seeds/nodes_main.txt -o /home/admin/fallback.bitcoin.nodes
# use dev branch when its an Release Candidate
if [ "${isReleaseCandidate}" == "1" ]; then
echo "# RELEASE CANDIDATE: using development branches for WebUI & API"
echo "* Adding Raspiblitz API (a)..."
sudo /home/admin/config.scripts/blitz.web.api.sh on "${defaultAPIuser}" "${defaultAPIrepo}" "dev" || exit 1
echo "* Adding Raspiblitz WebUI (a) ..."
sudo /home/admin/config.scripts/blitz.web.ui.sh on "${defaultWEBUIuser}" "${defaultWEBUIrepo}" "master" || exit 1
else
echo "* Adding Raspiblitz API (b) ..."
sudo /home/admin/config.scripts/blitz.web.api.sh on "${defaultAPIuser}" "${defaultAPIrepo}" "blitz-${branch}" || exit 1
echo "* Adding Raspiblitz WebUI (b) ..."
sudo /home/admin/config.scripts/blitz.web.ui.sh on "${defaultWEBUIuser}" "${defaultWEBUIrepo}" "release/${branch}" || exit 1
fi
echo "#############################################################"
echo "* Adding Raspiblitz API ..."
sudo /home/admin/config.scripts/blitz.web.api.sh on "${defaultAPIuser}" "${defaultAPIrepo}" "blitz-${branch}" || exit 1
echo "#############################################################"
echo "* Adding Raspiblitz WebUI ..."
sudo /home/admin/config.scripts/blitz.web.ui.sh on "${defaultWEBUIuser}" "${defaultWEBUIrepo}" "release/${branch}" || exit 1
# set build code as new www default
sudo rm -r /home/admin/assets/nginx/www_public
@@ -133,21 +122,83 @@ sudo cp -a /home/blitzapi/blitz_web/build/* /home/admin/assets/nginx/www_public
sudo chown admin:admin /home/admin/assets/nginx/www_public
sudo rm -r /home/blitzapi/blitz_web/build/*
echo "#############################################################"
echo "* Adding Code&Compile for WEBUI-APP: ALBYHUB"
/home/admin/config.scripts/bonus.albyhub.sh install || exit 1
source <(/home/admin/config.scripts/bonus.albyhub.sh status)
if [ "${fatpack}" != "1" ]; then
echo "FATPACK FAIL: albyhub"
exit 1
fi
echo "#############################################################"
echo "* Adding Code&Compile for WEBUI-APP: LNBITS"
/home/admin/config.scripts/bonus.lnbits.sh install || exit 1
source <(/home/admin/config.scripts/bonus.lnbits.sh status)
if [ "${fatpack}" != "1" ]; then
echo "FATPACK FAIL: lnbits"
exit 1
fi
echo "#############################################################"
echo "* Adding Code&Compile for WEBUI-APP: JAM"
/home/admin/config.scripts/bonus.jam.sh install || exit 1
source <(/home/admin/config.scripts/bonus.jam.sh status)
if [ "${fatpack}" != "1" ]; then
echo "FATPACK FAIL: jam"
exit 1
fi
echo "#############################################################"
echo "* Adding Code&Compile for WEBUI-APP: BTCPAYSERVER"
/home/admin/config.scripts/bonus.btcpayserver.sh install || exit 1
source <(/home/admin/config.scripts/bonus.btcpayserver.sh status)
if [ "${fatpack}" != "1" ]; then
echo "FATPACK FAIL: btcpayserver"
exit 1
fi
echo "#############################################################"
echo "* Adding Code&Compile for WEBUI-APP: RTL"
/home/admin/config.scripts/bonus.rtl.sh install || exit 1
source <(/home/admin/config.scripts/bonus.rtl.sh status)
if [ "${fatpack}" != "1" ]; then
echo "FATPACK FAIL: rtl"
exit 1
fi
echo "#############################################################"
echo "* Adding Code&Compile for WEBUI-APP: THUNDERHUB"
/home/admin/config.scripts/bonus.thunderhub.sh install || exit 1
source <(/home/admin/config.scripts/bonus.thunderhub.sh status)
if [ "${fatpack}" != "1" ]; then
echo "FATPACK FAIL: thunderhub"
exit 1
fi
echo "#############################################################"
echo "* Adding Code&Compile for WEBUI-APP: BTC RPC EXPLORER"
/home/admin/config.scripts/bonus.btc-rpc-explorer.sh install || exit 1
source <(sudo /home/admin/config.scripts/bonus.btc-rpc-explorer.sh status)
if [ "${fatpack}" != "1" ]; then
echo "FATPACK FAIL: btc-rpc-explorer"
exit 1
fi
echo "#############################################################"
echo "* Adding Code&Compile for WEBUI-APP: MEMPOOL"
/home/admin/config.scripts/bonus.mempool.sh install || exit 1
source <(/home/admin/config.scripts/bonus.mempool.sh status)
if [ "${fatpack}" != "1" ]; then
echo "FATPACK FAIL: mempool"
exit 1
fi
echo "#############################################################"
echo "* Adding Code&Compile for WEBUI-APP: ELECTRS"
/home/admin/config.scripts/bonus.electrs.sh install || exit 1
/home/admin/config.scripts/bonus.electrs.sh install || exit 1
source <(/home/admin/config.scripts/bonus.electrs.sh status)
if [ "${fatpack}" != "1" ]; then
echo "FATPACK FAIL: electrs"
exit 1
fi

View File

@@ -123,12 +123,16 @@ else
echo "# FAIL - git config pull.rebase true"
exit
fi
git pull 1>&2
if [ $? -eq 0 ]; then
echo "# OK - git pull"
if [[ ${activeBranch} != pr* ]]; then
git pull 1>&2
if [ $? -eq 0 ]; then
echo "# OK - git pull"
else
echo "# FAIL - git pull"
exit
fi
else
echo "# FAIL - git pull"
exit
echo "# SKIP - git pull on PR-Branches"
fi
cd ..
echo "# COPYING from GIT-Directory to /home/admin/"

View File

@@ -90,9 +90,9 @@ function add_repo {
function bitcoinI2Pstatus {
echo "# I2P related logs from the bitcoin debug log"
echo "# Follow live with the command:"
echo "sudo tail -n 1000 -f /mnt/hdd/bitcoin/debug.log | grep i2p"
echo "sudo tail -n 1000 -f /mnt/hdd/app-data/bitcoin/debug.log | grep i2p"
echo
sudo cat /mnt/hdd/bitcoin/debug.log | grep i2p
sudo cat /mnt/hdd/app-data/bitcoin/debug.log | grep i2p
echo
echo "# Running the command:"
echo "bitcoin-cli -netinfo 4"
@@ -215,7 +215,7 @@ EOF
echo "# Config: /etc/i2pd/i2pd.conf"
echo "# i2pd web console: ${localip}:7070"
echo "# Monitor i2p in bitcoind:"
echo "sudo tail -n 100 /mnt/hdd/bitcoin/debug.log | grep i2p"
echo "sudo tail -n 100 /mnt/hdd/app-data/bitcoin/debug.log | grep i2p"
echo "bitcoin-cli -netinfo 4"
exit 0

View File

@@ -97,6 +97,11 @@ sudo systemctl disable ssh
sudo rm /etc/ssh/ssh_host_*
echo "OK"
# write a 100mb file - so that after pishrink the partion has wiggle room on first start deleting this file
echo "writing 100mb SPACER to /tmp/100mb.spacer"
sudo dd if=/dev/zero of=/tmp/100mb.spacer bs=1M count=100
echo "OK"
# make sure file system is clean and ready for release
echo
echo "fsck on first boot ..."

View File

@@ -155,8 +155,8 @@ if [ "$1" = "update-config" ]; then
else
echo "# CONFIG Web API ... still in setup, skip bitcoin & lightning"
sed -i "s/^BAPI_NETWORK=.*/BAPI_NETWORK=/g" ./.env
sed -i "s/^BAPI_LN_NODE=.*/BAPI_LN_NODE=/g" ./.env
sed -i "s/^BAPI_NETWORK=.*/BAPI_NETWORK=none/g" ./.env
sed -i "s/^BAPI_LN_NODE=.*/BAPI_LN_NODE=none/g" ./.env
fi
# Note: Celery services might need a restart if config changes affect them.
@@ -327,8 +327,13 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
if ! sudo -u blitzapi ./venv/bin/pip install --upgrade Cython; then
echo "error='pip install upgrade Cython'"
fi
echo "# Installing dependencies from requirements.txt..."
if ! sudo -u blitzapi ./venv/bin/pip install -r requirements.txt --no-deps; then
echo "# Installing dependencies from requirements.txt ..."
sudo -u blitzapi ./venv/bin/python -m pip install --upgrade pip
echo -e "[global]\nindex-url = https://pypi.org/simple" | sudo tee /etc/pip.conf > /dev/nul
# install with https://www.piwheels.org/simple turned off to avoid issues with some packages
sudo -u blitzapi env PIP_CONFIG_FILE=/dev/null PIP_INDEX_URL=https://pypi.org/simple PIP_EXTRA_INDEX_URL= ./venv/bin/pip install --no-cache-dir rich-toolkit==0.14.6
echo -e "[global]\nindex-url = https://pypi.org/simple\nextra-index-url = https://www.piwheels.org/simple" | sudo tee /etc/pip.conf > /dev/null
if ! sudo -u blitzapi ./venv/bin/pip install --no-cache-dir -r requirements.txt --no-deps; then
echo "error='pip install failed'"
exit 1
fi

View File

@@ -7,7 +7,7 @@
APPID="albyhub" # one-word lower-case no-specials
# https://github.com/getAlby/hub/releases
VERSION="1.17.2"
VERSION="1.20.0"
# port numbers the app should run on
# delete if not an web app
@@ -66,7 +66,7 @@ fi
echo "# Running: 'bonus.${APPID}.sh $*'"
source /home/admin/raspiblitz.info
source /mnt/hdd/app-data/raspiblitz.conf
source /mnt/hdd/app-data/raspiblitz.conf 2>/dev/null
#########################
# INFO
@@ -93,6 +93,8 @@ fi
if [ "$1" = "status" ]; then
echo "appID='${APPID}'"
echo "version='${VERSION}'"
fatpack=$(compgen -u | grep -c ${APPID})
echo "fatpack=${fatpack}"
echo "installed=${isRunning}" # installed means towards webui on or off
if [ "${isInstalled}" == "1" ]; then
echo "localIP='${localIP}'"
@@ -220,6 +222,9 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
echo "# ACTIVATE Alby-Hub"
# make sure albyhub is in the lndadmin group
sudo /usr/sbin/usermod --append --groups lndadmin albyhub
# prepare data directory
sudo mkdir -p /mnt/hdd/app-data/${APPID} 2>/dev/null
sudo chown -R ${APPID}:${APPID} /mnt/hdd/app-data/${APPID}

View File

@@ -4,8 +4,8 @@
# ~/.config/btc-rpc-explorer.env
# https://github.com/janoside/btc-rpc-explorer/blob/master/.env-sample
# use commit hash, because latest release 3.4.0 is too old
GITHUBCOMMIT="153aa0ae7f902562bd1cfa2bbcea4c00026e5aef"
# use commit hash, so that also in between updates can be used if needed
GITHUBCOMMIT="8ed77ab225f5507c521b570d5240624de597ad44" #3.5.1
# command info
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
@@ -18,7 +18,7 @@ fi
PGPsigner="janoside"
PGPpubkeyLink="https://github.com/janoside.gpg"
PGPpubkeyFingerprint="70C0B166321C0AF8"
PGPpubkeyFingerprint="F579929B39B119CC7B0BB71FB326ACF51F317B69"
source /mnt/hdd/app-data/raspiblitz.conf 2>/dev/null
@@ -84,6 +84,9 @@ if [ "$1" = "status" ]; then
echo "version='${VERSION}'"
fatpack=$(compgen -u | grep -c btcrpcexplorer)
echo "fatpack=${fatpack}"
if [ "${BTCRPCexplorer}" = "on" ]; then
echo "configured=1"
@@ -145,6 +148,11 @@ if [ "$1" = "prestart" ]; then
echo "## btc-rpc-explorer.service PRESTART CONFIG"
echo "# --> /home/btcrpcexplorer/.config/btc-rpc-explorer.env"
# Robust initial values to avoid unset-variable issues
isElectrsReady=0
isFulcrumReady=0
electrumTCPport=""
# check if electrs is installed & running
if [ "${ElectRS}" == "on" ]; then
@@ -163,17 +171,18 @@ if [ "$1" = "prestart" ]; then
electrumTCPport=50021
fi
# Exit only if either service is on but neither is ready
if { [ "${ElectRS}" == "on" ] && [ "${electrsReady}" == "0" ]; } || { [ "${fulcrum}" == "on" ] && [ "${fulcrumReady}" == "0" ]; }; then
# Exit only if either service is on but not ready
if { [ "${ElectRS}" == "on" ] && [ "${isElectrsReady}" == "0" ]; } || { [ "${fulcrum}" == "on" ] && [ "${isFulcrumReady}" == "0" ]; }; then
echo "# An Electrum Server is ON but not ready .. might still building index - kick systemd service into fail/wait/restart"
exit 1
fi
if [ ${isElectrsReady} -gt 0 ] || [ ${isFulcrumReady} -gt 0 ]; then
if [ "${isElectrsReady}" -gt 0 ] || [ "${isFulcrumReady}" -gt 0 ]; then
# CHECK THAT ELECTRUM SERVER IS PART OF CONFIG
echo "# updating BTCEXP_ADDRESS_API=electrumx"
sed -i 's/^BTCEXP_ADDRESS_API=.*/BTCEXP_ADDRESS_API=electrumx/g' /home/btcrpcexplorer/.config/btc-rpc-explorer.env
sed -i "s/^BTCEXP_ELECTRUMX_SERVERS=.*/BTCEXP_ELECTRUMX_SERVERS=tcp://127.0.0.1:${electrumTCPport}/g" /home/btcrpcexplorer/.config/btc-rpc-explorer.env
# Use different delimiter to avoid collision with "tcp://"
sed -i "s|^BTCEXP_ELECTRUMX_SERVERS=.*|BTCEXP_ELECTRUMX_SERVERS=tcp://127.0.0.1:${electrumTCPport}|g" /home/btcrpcexplorer/.config/btc-rpc-explorer.env
else
# ELECTRS=OFF --> MAKE SURE IT IS NOT CONNECTED
echo "# updating BTCEXP_ADDRESS_API=none"
@@ -387,7 +396,7 @@ EOF
sudo /home/admin/config.scripts/blitz.conf.sh set BTCRPCexplorer "on"
echo "# needs to finish creating txindex to be functional"
echo "# monitor with: sudo tail -n 20 -f /mnt/hdd/bitcoin/debug.log"
echo "# monitor with: sudo tail -n 20 -f /mnt/hdd/app-data/bitcoin/debug.log"
echo "# npm audit fix"
cd /home/btcrpcexplorer/btc-rpc-explorer/
sudo npm audit fix
@@ -460,4 +469,4 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
fi
echo "error='unknown parameter'"
exit 1
exit 1

View File

@@ -59,6 +59,7 @@ function NBXplorerConfig() {
sudo -u btcpay mkdir -p /home/btcpay/.nbxplorer/Main
echo "\
network=mainnet
btcnodeendpoint=127.0.0.1:8336
btc.rpc.user=${RPC_USER}
btc.rpc.password=${PASSWORD_B}
postgres=User ID=nbxplorer;Host=localhost;Port=5432;Application Name=nbxplorer;MaxPoolSize=20;Database=nbxplorermainnet;Password='raspiblitz';
@@ -151,6 +152,9 @@ if [ "$1" = "status" ]; then
echo "version='${BTCPayVersion}'"
fatpack=$(compgen -u | grep -c btcpay)
echo "fatpack=${fatpack}"
isInstalled=$(compgen -u | grep -c btcpay)
echo "prepared=${isInstalled}"
isActive=$(sudo ls /etc/systemd/system/btcpayserver.service 2>/dev/null | grep -c 'btcpayserver.service')
@@ -167,13 +171,6 @@ if [ "$1" = "status" ]; then
echo "authMethod='userdefined'"
echo "publicIP='${publicIP}'"
# check for LetsEncryptDomain for DynDns
error=""
source <(sudo /home/admin/config.scripts/blitz.subscriptions.ip2tor.py ip-by-tor $publicIP 2>/dev/null)
if [ ${#error} -eq 0 ]; then
echo "publicDomain='${domain}'"
fi
sslFingerprintIP=$(openssl x509 -in /mnt/hdd/app-data/nginx/tls.cert -fingerprint -noout 2>/dev/null | cut -d"=" -f2)
echo "sslFingerprintIP='${sslFingerprintIP}'"
@@ -183,26 +180,6 @@ if [ "$1" = "status" ]; then
sslFingerprintTOR=$(openssl x509 -in /mnt/hdd/app-data/nginx/tor_tls.cert -fingerprint -noout 2>/dev/null | cut -d"=" -f2)
echo "sslFingerprintTOR='${sslFingerprintTOR}'"
# check for IP2TOR
error=""
source <(sudo /home/admin/config.scripts/blitz.subscriptions.ip2tor.py ip-by-tor $toraddress)
if [ ${#error} -eq 0 ]; then
echo "ip2torType='${ip2tor-v1}'"
echo "ip2torID='${id}'"
echo "ip2torIP='${ip}'"
echo "ip2torPort='${port}'"
# check for LetsEncryptDomain on IP2TOR
error=""
source <(sudo /home/admin/config.scripts/blitz.subscriptions.letsencrypt.py domain-by-ip $ip)
if [ ${#error} -eq 0 ]; then
echo "ip2torDomain='${domain}'"
domainWarning=$(sudo /home/admin/config.scripts/blitz.subscriptions.letsencrypt.py subscription-detail ${domain} ${port} | jq -r ".warning")
if [ ${#domainWarning} -gt 0 ]; then
echo "ip2torWarn='${domainWarning}'"
fi
fi
fi
# check for error
isDead=$(sudo systemctl status btcpayserver | grep -c 'inactive (dead)')
if [ ${isDead} -eq 1 ]; then
@@ -694,9 +671,9 @@ WantedBy=multi-user.target
NBXplorerConfig
# whitelist localhost in bitcoind
if ! sudo grep -Eq "^whitelist=127.0.0.1" /mnt/hdd/app-data/bitcoin/bitcoin.conf; then
echo "whitelist=127.0.0.1" | sudo tee -a /mnt/hdd/app-data/bitcoin/bitcoin.conf
# whitelist connection in bitcoind
if ! sudo grep -Eq "^whitebind=127.0.0.1:8336" /mnt/hdd/app-data/bitcoin/bitcoin.conf; then
echo "whitebind=127.0.0.1:8336" | sudo tee -a /mnt/hdd/app-data/bitcoin/bitcoin.conf
bitcoindRestart=yes
fi

View File

@@ -1,7 +1,7 @@
#!/bin/bash
# https://github.com/romanz/electrs/releases
ELECTRSVERSION="v0.10.6"
ELECTRSVERSION="v0.10.10"
# command info
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
@@ -18,7 +18,7 @@ PGPsigner="romanz"
PGPpubkeyLink="https://github.com/${PGPsigner}.gpg"
PGPpubkeyFingerprint="87CAE5FA46917CBB"
source /mnt/hdd/app-data/raspiblitz.conf
source /mnt/hdd/app-data/raspiblitz.conf 2>/dev/null
# give status (dont call regularly - just on occasions)
if [ "$1" = "status" ]; then
@@ -30,6 +30,9 @@ if [ "$1" = "status" ]; then
echo "version='${ELECTRSVERSION}'"
fatpack=$(compgen -u | grep -c electrs)
echo "fatpack=${fatpack}"
if [ "${ElectRS}" = "on" ]; then
echo "configured=1"
echo "installed=1"
@@ -229,22 +232,25 @@ Check 'sudo nginx -t' for a detailed error message.
echo
echo "On Network Settings > Server menu:"
echo "- deactivate automatic server selection"
echo "- as manual server set '${localIP}' & '${portSSL}'"
echo "- as manual server set '${localIP}':'${portTCP}':t"
echo "- laptop and RaspiBlitz need to be within same local network"
echo
echo "To start directly from laptop terminal use"
echo "PC: electrum --oneserver --server ${localIP}:${portSSL}:s"
echo "MAC: open -a /Applications/Electrum.app --args --oneserver --server ${localIP}:${portSSL}:s"
echo "PC: electrum --oneserver --server ${localIP}:${portTCP}:t"
echo "MAC: open -a /Applications/Electrum.app --args --oneserver --server ${localIP}:${portTCP}:t"
if [ ${TorRunning} -eq 1 ]; then
echo
echo "The Tor Hidden Service address for electrs is (see LCD for QR code):"
echo "${TORaddress}"
echo
echo "To connect through TOR open the Tor Browser and start with the options:"
echo "electrum --oneserver --server ${TORaddress}:50002:s --proxy socks5:127.0.0.1:9150"
echo "electrum --oneserver --server ${TORaddress}:50001:t --proxy socks5:127.0.0.1:9150"
sudo /home/admin/config.scripts/blitz.display.sh qr "${TORaddress}"
fi
echo
echo "If you want to use SSL encrypted connections use in examples above"
echo "'${localIP}':'${portSSL}':s' instead of '${localIP}':'${portTCP}':t"
echo
echo "For more details check the RaspiBlitz README on ElectRS:"
echo "https://github.com/rootzoll/raspiblitz"
echo
@@ -300,7 +306,7 @@ if [ "$1" = "install" ]; then
echo "# Installing Rust for the electrs user"
echo
# https://github.com/romanz/electrs/blob/master/doc/usage.md#build-dependencies
sudo -u electrs curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sudo -u electrs sh -s -- --default-toolchain none -y
sudo -u electrs curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sudo -u electrs sh -s -- --default-toolchain stable -y
sudo apt install -y clang cmake build-essential # for building 'rust-rocksdb'
echo
@@ -373,6 +379,7 @@ index-batch-size = 10
wait_duration_secs = 10
jsonrpc_timeout_secs = 15
db_dir = \"/mnt/hdd/app-storage/electrs/db\"
daemon_p2p_addr = \"127.0.0.1:8335\"
auth = \"${RPC_USER}:${PASSWORD_B}\"
# allow BTC-RPC-explorer show tx-s for addresses with a history of more than 100
txid_limit = 1000
@@ -494,9 +501,9 @@ WantedBy=multi-user.target
/home/admin/config.scripts/tor.onion-service.sh electrs 50002 50002 50001 50001
fi
# whitelist downloading to localhost from bitcoind
if ! sudo grep -Eq "^whitelist=download@127.0.0.1" /mnt/hdd/app-data/bitcoin/bitcoin.conf; then
echo "whitelist=download@127.0.0.1" | sudo tee -a /mnt/hdd/app-data/bitcoin/bitcoin.conf
# whitelist connection in bitcoind
if ! sudo grep -Eq "^whitebind=download@127.0.0.1:8335" /mnt/hdd/app-data/bitcoin/bitcoin.conf; then
echo "whitebind=download@127.0.0.1:8335" | sudo tee -a /mnt/hdd/app-data/bitcoin/bitcoin.conf
bitcoindRestart=yes
fi
@@ -601,7 +608,7 @@ if [ "$1" = "update" ]; then
"${PGPsigner}" "${PGPpubkeyLink}" "${PGPpubkeyFingerprint}" "${updateVersion}" || exit 1
echo "# Installing build dependencies"
sudo -u electrs curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sudo -u electrs sh -s -- --default-toolchain none -y
sudo -u electrs curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sudo -u electrs sh -s -- --default-toolchain stable -y
sudo apt install -y clang cmake build-essential # for building 'rust-rocksdb'
echo

View File

@@ -2,7 +2,7 @@
# set version (change if update is available)
# https://github.com/ElementsProject/elements/releases
VERSION="elements-23.2.7"
VERSION="elements-23.3.0"
SIG_PUBKEY="BD0F3062F87842410B06A0432F656B0610604482" # Pablo Greco <pgreco@blockstream.com>
# command info

View File

@@ -38,6 +38,8 @@ if [ "$1" = "status" ]; then
toraddress=$(sudo cat /mnt/hdd/app-data/tor/${USERNAME}/hostname 2>/dev/null)
echo "version='${WEBUI_VERSION}'"
fatpack=$(compgen -u | grep -c ${USERNAME})
echo "fatpack=${fatpack}"
echo "installed='${isActive}'"
echo "localIP='${localip}'"
echo "httpPort='7500'"

View File

@@ -12,10 +12,10 @@ APPID="knots" # one-word lower-case no-specials
# clean human readable version - will be displayed in UI
# just numbers only separated by dots (2 or 0.1 or 1.3.4 or 3.4.5.2)
VERSION="28.1"
VERSION="29.2.2"
FILEMASTER="28.x"
FILEMASTERTAG="28.1.knots20250305"
FILEMASTER="29.x"
FILEMASTERTAG="29.2.knots20251110"
# the git repo to get the source code from for install
GITHUB_REPO="https://github.com/bitcoinknots/bitcoin"
@@ -23,7 +23,7 @@ GITHUB_REPO="https://github.com/bitcoinknots/bitcoin"
# the github tag of the version of the source code to install
# can also be a commit hash
# if empty it will use the latest source version
GITHUB_TAG="v28.1.knots20250305"
GITHUB_TAG="v29.2.knots20251110"
# the github signature to verify the author
# leave GITHUB_SIGN_AUTHOR empty to skip verifying
@@ -100,7 +100,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
# dont install when lightning is already installed
# see https://github.com/raspiblitz/raspiblitz/pull/5021#issuecomment-2889640024
if [ "${lightning}" != "" ] && [ "$2" != "-force" ]; then
if [ "${lightning}" != "" ] && [ "${lightning}" != "none" ] && [ "$2" != "-force" ]; then
echo "# ABORT KNOTS INSTALL - at the moment Knots can only be installed & run if no lightning implementation is installed."
echo "# For experimental overrule use on terminal: '/home/admin/config.scripts/bonus.knots.sh on -force'"
sleep 6

View File

@@ -3,7 +3,7 @@
# https://github.com/lnbits/lnbits
# https://github.com/lnbits/lnbits/releases
tag="v1.1.0"
tag="v1.2.1"
VERSION="${tag}"
# command info
@@ -241,18 +241,6 @@ ${toraddress}"
2>&1 >/dev/tty)
case $CHOICE in
IP2TOR-ON)
python /home/admin/config.scripts/blitz.subscriptions.ip2tor.py create-ssh-dialog LNBITS ${toraddress} 443
exit 0
;;
IP2TOR-OFF)
clear
python /home/admin/config.scripts/blitz.subscriptions.ip2tor.py subscription-cancel ${ip2torID}
echo
echo "OK - PRESS ENTER to continue"
read key
exit 0
;;
HTTPS-ON)
python /home/admin/config.scripts/blitz.subscriptions.letsencrypt.py create-ssh-dialog
exit 0
@@ -412,6 +400,9 @@ if [ "$1" = "status" ]; then
echo "version='${VERSION}'"
fatpack=$(compgen -u | grep -c lnbits)
echo "fatpack=${fatpack}"
if [ "${LNBits}" = "on" ]; then
echo "installed=1"
@@ -432,13 +423,6 @@ if [ "$1" = "status" ]; then
fi
echo "LNBitsFunding='${LNBitsFunding}'"
# check for LetsEnryptDomain for DynDns
error=""
source <(sudo /home/admin/config.scripts/blitz.subscriptions.ip2tor.py ip-by-tor $publicIP 2>/dev/null)
if [ ${#error} -eq 0 ]; then
echo "publicDomain='${domain}'"
fi
sslFingerprintIP=$(openssl x509 -in /mnt/hdd/app-data/nginx/tls.cert -fingerprint -noout 2>/dev/null | cut -d"=" -f2)
echo "sslFingerprintIP='${sslFingerprintIP}'"
@@ -448,26 +432,6 @@ if [ "$1" = "status" ]; then
sslFingerprintTOR=$(openssl x509 -in /mnt/hdd/app-data/nginx/tor_tls.cert -fingerprint -noout 2>/dev/null | cut -d"=" -f2)
echo "sslFingerprintTOR='${sslFingerprintTOR}'"
# check for IP2TOR
error=""
source <(sudo /home/admin/config.scripts/blitz.subscriptions.ip2tor.py ip-by-tor $toraddress)
if [ ${#error} -eq 0 ]; then
echo "ip2torType='${ip2tor-v1}'"
echo "ip2torID='${id}'"
echo "ip2torIP='${ip}'"
echo "ip2torPort='${port}'"
# check for LetsEnryptDomain on IP2TOR
error=""
source <(sudo /home/admin/config.scripts/blitz.subscriptions.letsencrypt.py domain-by-ip $ip)
if [ ${#error} -eq 0 ]; then
echo "ip2torDomain='${domain}'"
domainWarning=$(sudo /home/admin/config.scripts/blitz.subscriptions.letsencrypt.py subscription-detail ${domain} ${port} | jq -r ".warning")
if [ ${#domainWarning} -gt 0 ]; then
echo "ip2torWarn='${domainWarning}'"
fi
fi
fi
# check for error
isDead=$(sudo systemctl status lnbits | grep -c 'inactive (dead)')
if [ ${isDead} -eq 1 ]; then
@@ -540,7 +504,7 @@ if [ "$1" = "prestart" ]; then
# check if lnbits user has read access on lnd data files
checkReadAccess=$(cat /mnt/hdd/app-data/lnd/data/chain/${LNBitsNetwork}/${LNBitsChain}net/admin.macaroon | grep -c "lnd")
if [ "${checkReadAccess}" != "1" ]; then
echo "# FAIL: missing lnd data in '/mnt/hdd/app-data/lnd' or missing access rights for lnbits user"
echo "# FAIL: missing lnd data in '/mnt/hdd/app-data/lnd/data/chain/${LNBitsNetwork}/${LNBitsChain}net/admin.macaroon' or missing access rights for lnbits user"
exit 1
fi
@@ -699,6 +663,8 @@ if [ "$1" = "install" ]; then
# add lnbits user
echo "*** Add the 'lnbits' user ***"
sudo adduser --system --group --home /home/lnbits lnbits
# add user to group bitcoin
sudo usermod -a -G bitcoin lnbits
# install from GitHub
echo "# get the github code user(${githubUser}) branch(${tag})"

View File

@@ -17,7 +17,7 @@ PGPsigner="wiz"
PGPpubkeyLink="https://github.com/wiz.gpg"
PGPpubkeyFingerprint="A394E332255A6173"
source /mnt/hdd/app-data/raspiblitz.conf
source /mnt/hdd/app-data/raspiblitz.conf 2>/dev/null
# show info menu
if [ "$1" = "menu" ]; then
@@ -68,8 +68,8 @@ if [ "$1" = "status" ]; then
echo "version='${pinnedVersion}'"
isInstalled=$(compgen -u | grep -c mempool)
echo "codebase=${isInstalled}"
fatpack=$(compgen -u | grep -c mempool)
echo "fatpack=${fatpack}"
if [ "${mempoolExplorer}" = "on" ]; then
echo "configured=1"
@@ -148,6 +148,11 @@ if [ "$1" = "install" ]; then
echo "# npm install for mempool explorer (frontend)"
cd frontend || exit 1
# patch to fix #5122 - remove on next mempool update because they fixed it
sudo -u mempool sed -i '/^function download(filename, url) {/a\ if (!url) return;' sync-assets.js
# end patch
if ! sudo -u mempool NG_CLI_ANALYTICS=false npm ci; then
echo "FAIL - npm install did not run correctly, aborting"
exit 1
@@ -376,7 +381,7 @@ EOF
/home/admin/config.scripts/blitz.conf.sh set mempoolExplorer "on"
echo "# needs to finish creating txindex to be functional"
echo "# monitor with: sudo tail -n 20 -f /mnt/hdd/bitcoin/debug.log"
echo "# monitor with: sudo tail -n 20 -f /mnt/hdd/app-data/bitcoin/debug.log"
# Hidden Service for Mempool if Tor is active
if [ "${runBehindTor}" = "on" ]; then

View File

@@ -149,7 +149,7 @@ EOL
# get RPC credentials
RPC_USER=$(sudo cat /mnt/hdd/app-data/bitcoin/bitcoin.conf | grep rpcuser | cut -c 9-)
RPC_PASS=$(sudo cat /mnt/hd/app-data/bitcoin/bitcoin.conf | grep rpcpassword | cut -c 13-)
RPC_PASS=$(sudo cat /mnt/hdd/app-data/bitcoin/bitcoin.conf | grep rpcpassword | cut -c 13-)
echo "# create .env file"
echo "

View File

@@ -5,7 +5,7 @@ RTLVERSION="v0.15.2"
# check and load raspiblitz config
# to know which network is running
source /mnt/hdd/app-data/raspiblitz.conf
source /mnt/hdd/app-data/raspiblitz.conf 2>/dev/null
# command info
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
@@ -70,11 +70,14 @@ if [ "$1" = "status" ] || [ "$1" = "menu" ]; then
isInstalled=$(sudo ls /etc/systemd/system/${netprefix}${typeprefix}RTL.service 2>/dev/null | grep -c 'RTL.service')
localip=$(hostname -I | awk '{print $1}')
toraddress=$(sudo cat /mnt/hdd/app-data/tor/${netprefix}${typeprefix}RTL/hostname 2>/dev/null)
fingerprint=$(openssl x509 -in /mnt/hdd/app-data/nginx/tls.cert -fingerprint -noout | cut -d"=" -f2)
fingerprint=$(openssl x509 -in /mnt/hdd/app-data/nginx/tls.cert -fingerprint -noout 2>/dev/null| cut -d"=" -f2)
RTLHTTPS=$((RTLHTTP + 1))
if [ "$1" = "status" ]; then
fatpack=$(compgen -u | grep -c rtl)
echo "fatpack=${fatpack}"
echo "version='${RTLVERSION}'"
echo "installed='${isInstalled}'"
echo "localIP='${localip}'"
@@ -229,6 +232,13 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
exit 1
fi
lightningImpl=$2
if [ "${lightningImpl}" != "lnd" ] && [ "${lightningImpl}" != "cl" ]; then
echo "# missing or wrong parameter <lnd|cl>"
exit 1
fi
LNTYPE=${lightningImpl}
# check that is already active
isActive=$(sudo ls /etc/systemd/system/${systemdService}.service 2>/dev/null | grep -c "${systemdService}.service")
if [ ${isActive} -eq 1 ]; then

View File

@@ -410,7 +410,7 @@ EOF
echo "# ${network}d is not running - so NOT restarting"
fi
echo "# The indexing takes ~10h on an RPi4 with SSD"
echo "# check with: sudo cat /mnt/hdd/bitcoin/debug.log | grep filter"
echo "# check with: sudo cat /mnt/hdd/app-data/bitcoin/debug.log | grep filter"
else
echo "# blockfilterindex is already active"
fi

View File

@@ -19,7 +19,7 @@ PGPpubkeyFingerprint="4403F1DFBE779457"
# check and load raspiblitz config
# to know which network is running
source /home/admin/raspiblitz.info
source /mnt/hdd/app-data/raspiblitz.conf
source /mnt/hdd/app-data/raspiblitz.conf 2>/dev/null
if [ "$1" = "status" ] || [ "$1" = "menu" ]; then
@@ -27,11 +27,15 @@ if [ "$1" = "status" ] || [ "$1" = "menu" ]; then
isInstalled=$(sudo ls /etc/systemd/system/thunderhub.service 2>/dev/null | grep -c 'thunderhub.service')
localip=$(hostname -I | awk '{print $1}')
toraddress=$(sudo cat /mnt/hdd/app-data/tor/thunderhub/hostname 2>/dev/null)
fingerprint=$(openssl x509 -in /mnt/hdd/app-data/nginx/tls.cert -fingerprint -noout | cut -d"=" -f2)
fingerprint=$(openssl x509 -in /mnt/hdd/app-data/nginx/tls.cert -fingerprint -noout 2>/dev/null | cut -d"=" -f2)
httpPort="3010"
httpsPort="3011"
if [ "$1" = "status" ]; then
fatpack=$(compgen -u | grep -c thunderhub)
echo "fatpack=${fatpack}"
echo "version='${THUBVERSION}'"
echo "installed='${isInstalled}'"
echo "localIP='${localip}'"

View File

@@ -0,0 +1,128 @@
#!/bin/bash
# command info
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
echo
echo "Install the cln-nip47 plugin (Nostr Wallet Connect) for Core Lightning"
echo "Source: https://github.com/daywalker90/cln-nip47"
echo
echo "Usage:"
echo "cl-plugin.clnnip47.sh [on|off|remove] <testnet|mainnet|signet>"
echo
exit 1
fi
# load CLN network aliases and useful vars
# provides: netprefix ("" or "t" or "s"), CLCONF, lightningcli_alias, CLNETWORK
source <(/home/admin/config.scripts/network.aliases.sh getvars cl $2)
plugin="cln-nip47"
plugindir="/home/bitcoin/cl-plugins-available/${plugin}"
pluginbin="${plugindir}/target/release/${plugin}"
enabled_dir="/home/bitcoin/${netprefix}cl-plugins-enabled"
symlink_target="${enabled_dir}/${plugin}"
repo_url="https://github.com/daywalker90/cln-nip47.git"
# ensure enabled directory exists (idempotent)
if [ ! -d "${enabled_dir}" ]; then
sudo -u bitcoin mkdir -p "${enabled_dir}"
fi
install_build() {
# clone if missing
if [ ! -d "${plugindir}/.git" ]; then
sudo -u bitcoin mkdir -p "/home/bitcoin/cl-plugins-available"
cd /home/bitcoin/cl-plugins-available || exit 1
sudo -u bitcoin git clone "${repo_url}" "${plugin}" || exit 1
else
# update repo if it exists
cd "${plugindir}" || exit 1
sudo -u bitcoin git fetch --all
sudo -u bitcoin git pull --ff-only || true
fi
# build release binary (idempotent) using system-wide Rust (/opt/rust)
echo "# Building ${plugin} with cargo --release (RUSTUP_HOME=/opt/rust CARGO_HOME=/opt/rust) ..."
cd "${plugindir}" || exit 1
sudo -u bitcoin RUSTUP_HOME=/opt/rust CARGO_HOME=/opt/rust cargo build --release || exit 1
# ensure binary permissions
if [ -f "${pluginbin}" ]; then
sudo chmod +x "${pluginbin}"
else
echo "# Build seems to have failed, missing ${pluginbin}"
exit 1
fi
# create/refresh symlink into enabled dir
if [ -L "${symlink_target}" ] || [ -f "${symlink_target}" ]; then
sudo rm -f "${symlink_target}"
fi
sudo ln -s "${pluginbin}" "${enabled_dir}" || exit 1
}
if [ "$1" = "on" ]; then
install_build
# set flag in raspiblitz config (idempotent)
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clnnip47 "on"
# set default CLN config options if not present yet
if ! grep -q "^nip47-relays=" "${CLCONF}"; then
echo "# setting nip47-relays=wss://relay.getalby.com/v1"
sudo /home/admin/config.scripts/blitz.conf.sh set "nip47-relays" "wss://relay.getalby.com/v1" "${CLCONF}" "noquotes"
fi
if ! grep -q "^nip47-notifications=" "${CLCONF}"; then
echo "# setting nip47-notifications=false"
sudo /home/admin/config.scripts/blitz.conf.sh set "nip47-notifications" "false" "${CLCONF}" "noquotes"
fi
# restart service to apply updated CLCONF and load plugin (if system is ready)
source <(/home/admin/_cache.sh get state)
if [ "${state}" = "ready" ] && [ "$3" != "norestart" ]; then
echo "# Restarting ${netprefix}lightningd to apply nip47 options and load plugin"
sudo systemctl restart ${netprefix}lightningd
fi
# Display next steps
echo ""
echo "#####################################################################################################"
echo "# Usage: cl nip47-create label [budget_msat] [interval]"
echo "# https://github.com/daywalker90/cln-nip47?tab=readme-ov-file#methods"
echo ""
echo "# Example: cl nip47-create my_nwc 10000 30d"
echo "creates a new NWC entry named `my_nwc` with a budget of 10000 msat and an interval of 30 days"
echo ""
echo "# To display as QR code for scanning:"
echo "cl nip47-list | jq -r '.[].my_nwc.uri' | qrencode -t ANSIUTF8"
echo ""
echo "#####################################################################################################"
fi
if [ "$1" = "off" ]; then
echo "# Stop the ${plugin} if running (ignore errors)"
$lightningcli_alias plugin stop "${symlink_target}" 2>/dev/null || true
echo "# Remove symlink from enabled dir"
sudo rm -f "${symlink_target}"
# remove any explicit plugin options from ${CLCONF} using the nip47-* keys (no-op if none)
echo "# Clean any nip47-* options from ${CLCONF} (if present)"
sudo sed -i "/^nip47-/d" ${CLCONF}
# set flag in raspiblitz config
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clnnip47 "off"
echo "# The ${plugin} has been disabled"
fi
if [ "$1" = "remove" ]; then
# ensure it's turned off first
$0 off $2 norestart
echo "# Removing plugin source directory ${plugindir}"
sudo rm -rf "${plugindir}"
echo "# Removed ${plugin}"
fi

View File

@@ -2,7 +2,7 @@
# https://lightning.readthedocs.io/
# https://github.com/ElementsProject/lightning/releases
CLVERSION="v25.02.2"
CLVERSION="v25.05"
# https://github.com/ElementsProject/lightning/tree/master/contrib/keys
# rustyrussell D9200E6CD1ADB8F1
@@ -11,9 +11,9 @@ CLVERSION="v25.02.2"
# pneuroth (nepet) C3F21EE387FF4CD2
# sfarooqui (ShahanaFarooqui) B56B4453DA8C6DF7FC9BCFCBDCA40B7128DA62A8
# amyers (endothermicdev) F3BF63F2747436AB
PGPsigner="sfarooqui"
PGPsigner="amyers"
PGPpubkeyLink="https://raw.githubusercontent.com/ElementsProject/lightning/master/contrib/keys/${PGPsigner}.txt"
PGPpubkeyFingerprint="B56B4453DA8C6DF7FC9BCFCBDCA40B7128DA62A8"
PGPpubkeyFingerprint="F3BF63F2747436AB"
# help
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
@@ -42,7 +42,7 @@ function installDependencies() {
# additional requirements
sudo apt-get install -y libpq-dev
# for clnrest - https://docs.corelightning.org/docs/installation#clnrest
sudo apt-get install -y python3-json5 python3-flask python3-gunicorn
sudo apt-get install -y python3-json5 python3-flask python3-gunicorn python3-grpc-tools
# python deps for wss-proxy
# upgrade pip
@@ -92,15 +92,23 @@ function installDependencies() {
}
function buildAndInstallCLbinaries() {
echo "- configure"
sudo -u bitcoin python3 -m pip install --user --upgrade grpcio-tools protobuf
# patch makefile
sudo -u bitcoin sed -i -E 's/ --experimental_allow_proto3_optional(=true)?//g' Makefile
# delete old file
sudo -u bitcoin rm -f contrib/pyln-grpc-proto/pyln/grpc/*_pb2.py contrib/pyln-grpc-proto/pyln/grpc/*_pb2_grpc.py
echo
echo "########## configure"
sudo -u bitcoin RUSTUP_HOME=/opt/rust CARGO_HOME=/opt/rust ./configure || exit 1
echo
echo "- make"
echo
sudo -u bitcoin RUSTUP_HOME=/opt/rust CARGO_HOME=/opt/rust make || exit 1
echo
echo "- install to /usr/local/bin/"
echo "########## make"
sudo -u bitcoin RUSTUP_HOME=/opt/rust CARGO_HOME=/opt/rust make -j"$(nproc)" || exit 1
echo
echo "########## install"
sudo make RUSTUP_HOME=/opt/rust CARGO_HOME=/opt/rust install || exit 1
}

View File

@@ -48,6 +48,13 @@ if [ "$1" == "prestart" ]; then
exit 1
fi
##### FILE PERMISSIONS #####
# make sure is readable by group
chmod g+rx /mnt/hdd/app-data/lnd/data
chmod g+rx /mnt/hdd/app-data/lnd/data/chain
chmod g+rx /mnt/hdd/app-data/lnd/data/chain/${network}
chmod g+rx /mnt/hdd/app-data/lnd/data/chain/${network}/${chain}net
##### CLEAN UP #####
# all lines with just spaces to empty lines

View File

@@ -135,7 +135,7 @@ elif [ "$1" = "sync" ]; then
echo "# make sure LND app-data directories exist"
sudo /bin/mkdir --mode 0755 --parents /mnt/hdd/app-data/lnd/data/chain/"${network}"/"${chain}"net/
echo `# make sure all user groups exit for default macaroons`
echo `# make sure all user groups exist for default macaroons`
sudo /usr/sbin/groupadd --force --gid 9700 lndadmin
sudo /usr/sbin/groupadd --force --gid 9701 lndinvoice
sudo /usr/sbin/groupadd --force --gid 9702 lndreadonly
@@ -157,6 +157,7 @@ elif [ "$1" = "sync" ]; then
sudo usermod -aG lndadmin admin
sudo usermod -aG bitcoin admin
sudo usermod -aG lndadmin bitcoin
###########################
# Check Macaroons and fix missing

View File

@@ -4,7 +4,7 @@
## based on https://raspibolt.github.io/raspibolt/raspibolt_40_lnd.html#lightning-lnd
## see LND releases: https://github.com/lightningnetwork/lnd/releases
### If you change here - make sure to also change interims version in lnd.update.sh #!
lndVersion="0.19.1-beta"
lndVersion="0.19.3-beta"
# olaoluwa
PGPauthor="roasbeef"
@@ -279,7 +279,6 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
sudo chown -R bitcoin:bitcoin /mnt/hdd/app-data/lnd
sudo chmod -R 750 /mnt/hdd/app-data/lnd
sudo usermod -a -G lndadmin bitcoin
echo "# Create /mnt/hdd/app-data/lnd/${netprefix}lnd.conf"
if [ ! -f /mnt/hdd/app-data/lnd/${netprefix}lnd.conf ];then

View File

@@ -27,9 +27,11 @@ activateBitcoinOverTor()
deactivateBitcoinOverTor
sudo chmod 777 "/home/bitcoin/.${network}/${network}.conf"
sudo sed -i "s/^onlynet=.*//g" "/home/bitcoin/.${network}/${network}.conf"
echo "Adding Tor config to the the ${network}.conf ..."
sudo sed -i "s/^torpassword=.*//g" "/home/bitcoin/.${network}/${network}.conf"
echo "onlynet=onion" | sudo tee -a "/home/bitcoin/.${network}/${network}.conf"
echo "onlynet=i2p" | sudo tee -a "/home/bitcoin/.${network}/${network}.conf"
echo "proxy=127.0.0.1:9050" | sudo tee -a "/home/bitcoin/.${network}/${network}.conf"
echo "main.bind=127.0.0.1" | sudo tee -a "/home/bitcoin/.${network}/${network}.conf"
echo "test.bind=127.0.0.1" | sudo tee -a "/home/bitcoin/.${network}/${network}.conf"
@@ -51,7 +53,7 @@ activateBitcoinOverTor()
deactivateBitcoinOverTor()
{
# always make sure also to remove old settings
# alte/tor-bezogene Settings entfernen
sudo sed -i "s/^onlynet=.*//g" "/home/bitcoin/.${network}/${network}.conf"
sudo sed -i "s/^main.addnode=.*//g" "/home/bitcoin/.${network}/${network}.conf"
sudo sed -i "s/^test.addnode=.*//g" "/home/bitcoin/.${network}/${network}.conf"
@@ -60,8 +62,14 @@ deactivateBitcoinOverTor()
sudo sed -i "s/^test.bind=.*//g" "/home/bitcoin/.${network}/${network}.conf"
sudo sed -i "s/^dnsseed=.*//g" "/home/bitcoin/.${network}/${network}.conf"
sudo sed -i "s/^dns=.*//g" "/home/bitcoin/.${network}/${network}.conf"
# explizit only IPv4 & IPv6
echo "onlynet=ipv4" | sudo tee -a "/home/bitcoin/.${network}/${network}.conf" >/dev/null
echo "onlynet=ipv6" | sudo tee -a "/home/bitcoin/.${network}/${network}.conf" >/dev/null
# remove empty lines
sudo sed -i '/^ *$/d' "/home/bitcoin/.${network}/${network}.conf"
sudo cp "/home/bitcoin/.${network}/${network}.conf" "/home/admin/.${network}/${network}.conf"
sudo chown admin:admin "/home/admin/.${network}/${network}.conf"
}
@@ -167,7 +175,7 @@ EOF
/home/admin/config.scripts/blitz.conf.sh set runBehindTor "off"
# remove "debug=tor" from bitcoin.conf
sudo sed -i '/^debug=tor$/d' /mnt/hdd/app-databitcoin/bitcoin.conf
sudo sed -i '/^debug=tor$/d' /mnt/hdd/app-data/bitcoin/bitcoin.conf
# deactivate bitcoin over tor (function call)
deactivateBitcoinOverTor

View File

@@ -197,20 +197,17 @@ if [ "${setupPhase}" = "setup" ]; then
# handle existing blockchain data # CLOSED FOR REPAIR #5029
existingBlockchain=""
#if [ "${system_setup_storageBlockchainGB}" != "" ] && [ "${system_setup_storageBlockchainGB}" != "0" ]; then
# allow, when not bootFromStorage
#if [ "${system_setup_bootFromStorage}" == "0" ]; then
# echo "# Existing blockchain can be used - cannot be moved to new drive layout"
# existingBlockchain="BITCOIN"
if [ "${menuresult}" = "0" ] && [ "${system_setup_storageBlockchainGB}" != "" ] && [ "${system_setup_storageBlockchainGB}" != "0" ]; then
echo "# Existing blockchain can be used - cannot be moved to new drive layout"
existingBlockchain="BITCOIN"
# allow, when bootFromStorage & storage already has 3 partitions (new drive layout)
#elif [ "${system_setup_bootFromStorage}" == "1" ] && [ "${system_setup_storagePartitionsCount}" == "3" ] ; then
# echo "# Existing blockchain can be used - already new drive layout"
# existingBlockchain="BITCOIN"
elif [ "${system_setup_storagePartitionsCount}" == "3" ]; then
echo "# Existing blockchain can be used - already new drive layout"
existingBlockchain="BITCOIN"
# otherwise - dont use existing blockchain
# else
# echo "# Existing blockchain will not be used - to allow transfere to new drive layout"
# fi
#fi
else
echo "# Existing blockchain will not be used - to allow transfere to new drive layout"
fi
# ask user about possible existing blockchain and formatting HDD
if [ "${menuresult}" != "6" ]; then

View File

@@ -274,6 +274,13 @@ elif [ "${eventID}" == "waitsetup" ] && [ "${mode}" == "ssh" ]; then
Please wait ...
" 5 22
elif [ "${eventID}" == "waitprovision" ] && [ "${contentString}" == "hdd-migrate" ]; then
dialog --backtitle "${backtitle}" --cr-wrap --infobox "
Changing Data Layout of HDD/SSD/NVMe
Can take looooooong time - just wait.
" 6 44
elif [ "${eventID}" == "waitprovision" ]; then
dialog --backtitle "${backtitle}" --cr-wrap --infobox "
@@ -281,6 +288,22 @@ Preparing Provision
Please wait ...
" 6 24
elif [ "${eventID}" == "storageisfull" ]; then
dialog --backtitle "${backtitle}" --cr-wrap --infobox "
Your storage SSD/NVME is full (${contentString}%).
Delete apps or migrate to a bigger drive.
ssh admin@${internet_localip}
" 7 50
elif [ "${eventID}" == "dataisfull" ]; then
dialog --backtitle "${backtitle}" --cr-wrap --infobox "
Your data SSD/NVME is full (${contentString}%).
Delete apps or migrate to a bigger drive.
ssh admin@${internet_localip}
" 7 50
elif [ "${eventID}" = "noIP-LAN" ] || [ "${eventID}" = "noIP-WIFI" ]; then
# this event is mostly for LCD/HDMI display
@@ -361,7 +384,8 @@ elif [ "${eventID}" == "hdd-format" ]; then
dialog --backtitle "${backtitle}" --cr-wrap --infobox "
PREPARING DRIVES
" 5 20
${contentString}
" 6 20
elif [ "${eventID}" == "system-change" ]; then