mirror of
https://github.com/raspiblitz/raspiblitz.git
synced 2025-11-20 02:47:34 +01:00
Compare commits
57 Commits
fuclrum-me
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
771a03f9c9 | ||
|
|
254d982e91 | ||
|
|
36d0f39e7d | ||
|
|
f270960279 | ||
|
|
2696f59075 | ||
|
|
fdbb3b8119 | ||
|
|
3500186968 | ||
|
|
678ec7a4e9 | ||
|
|
34a12b7768 | ||
|
|
76a94e3b37 | ||
|
|
463ce18643 | ||
|
|
f7d5c29c22 | ||
|
|
2f3610f531 | ||
|
|
1ada4ac6f2 | ||
|
|
548ce434b6 | ||
|
|
ef2fa4e942 | ||
|
|
374d6e2410 | ||
|
|
d0c81b8942 | ||
|
|
6af0211741 | ||
|
|
dee2569212 | ||
|
|
d4303e8682 | ||
|
|
cffda2d39c | ||
|
|
fb311f8c26 | ||
|
|
2fc5782fe2 | ||
|
|
7fd56861bc | ||
|
|
278cc88442 | ||
|
|
bd15ac259a | ||
|
|
fd065ed9d6 | ||
|
|
2e2433252c | ||
|
|
6496a009ab | ||
|
|
8ca5f6192b | ||
|
|
b63775d0a2 | ||
|
|
94b0ca8d7b | ||
|
|
3ba6617133 | ||
|
|
a15cacf84e | ||
|
|
89ecbcaeda | ||
|
|
9a9add886e | ||
|
|
55c315f797 | ||
|
|
809ef03f5a | ||
|
|
92dff6566f | ||
|
|
6ccfe78b33 | ||
|
|
33e7ad4fd2 | ||
|
|
2b048da0c8 | ||
|
|
fbaa8ccb3c | ||
|
|
8a99aa89cd | ||
|
|
dbd28cef29 | ||
|
|
e1ab2dd004 | ||
|
|
8059255736 | ||
|
|
5f3122e493 | ||
|
|
e81064ee87 | ||
|
|
06f386718a | ||
|
|
1c90b2deb4 | ||
|
|
a4e128625b | ||
|
|
8b57e364cd | ||
|
|
00e0cee851 | ||
|
|
eb7e38170e | ||
|
|
00f34e1c08 |
15
CHANGES.md
15
CHANGES.md
@@ -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?
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
|
||||
# ⚡️ RaspiBlitz-on-DietPi ⚡️
|
||||
# For the Odroid HC1 / HC2 / XU3 / XU4 / MC1
|
||||
|
||||

|
||||
|
||||
## 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
|
||||
|
||||

|
||||

|
||||
@@ -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:
|
||||

|
||||
|
||||
|
||||
### 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/
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
#------------------------------------------------------------------------------------------------------
|
||||
@@ -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 |
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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" }
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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"
|
||||
@@ -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
|
||||
###############################
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -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
9
home.admin/config.scripts/bitcoin.install.sh
Normal file → Executable 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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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 ***"
|
||||
|
||||
@@ -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
|
||||
@@ -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/"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ..."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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})"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 "
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}'"
|
||||
|
||||
128
home.admin/config.scripts/cl-plugin.clnnip47.sh
Normal file
128
home.admin/config.scripts/cl-plugin.clnnip47.sh
Normal 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
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user