Commit graph

523 commits

Author SHA1 Message Date
autoblitzbot
f14730caa3
security: validate and atomically install Tor config (#188)
* security: validate and atomically install Tor config

* fix: harden candidate generation and HiddenServiceDir handling

Address review blocking findings:
- Replace sed|awk|tee pipelines with generateTorrcCandidate() which
  checks every stage explicitly and refuses empty/truncated candidates
  before installTorrc ever runs (both add and removal paths)
- Stop sourcing joinin.conf; read values with a grep-based helper
- Validate HiddenServiceDir against the expected Tor data roots
  (/var/lib/tor, /mnt/hdd/tor) so a crafted value cannot inject Tor
  directives into the candidate
- Quote HiddenServiceDir path expansions

* fix: keep torrc staging writes inside the privileged pipeline

Addresses re-review: sudo mktemp made the stage file root-owned while the
shell redirect ran unprivileged (EACCES on every add/remove path).

* fix: enable pipefail so failed torrc producers are detected

Without pipefail the 'sudo sed|sudo tee' and 'sudo awk|sudo tee' pipelines
only observed tee's status, so a producer failing after partial output could
yield a truncated candidate that still passes tor --verify-config.

---------

Co-authored-by: autoblitzbot <autoblitzbot@users.noreply.github.com>
2026-08-15 20:39:28 +02:00
autoblitzbot
82a82d392e
security: stop sourcing user-writable config as shell code (#195)
* security: parse joinin.conf as data instead of sourcing it as code

* fix: guard sourceConf availability in _functions.bitcoincore.sh

---------

Co-authored-by: autoblitzbot <autoblitzbot@users.noreply.github.com>
2026-08-15 17:40:31 +02:00
autoblitzbot
4e5af9f1a3
fix(ci): make image builds noninteractive (#196)
Some checks are pending
amd64-image-build / amd64-image-build (push) Waiting to run
arm64-rpi-image-build / arm64-rpi-image-build (push) Waiting to run
Packer Syntax Check / Validate Packer Syntax (push) Waiting to run
Test Shellcheck / Run Shellcheck (push) Waiting to run
* fix(ci): make image builds noninteractive

Both image builds fail in packer:

- arm64-rpi: dpkg halts on the interactive initramfs.conf conffile
  prompt (Y/I/N/O/D/Z) during 'apt-get upgrade' kernel configuration,
  then cascades: E: Sub-process /usr/bin/dpkg returned an error code (1)
- amd64: debconf falls back through Dialog/Readline/Teletype frontends
  (no controlling tty) and the build later fails on
  'E: Package netcat has no installation candidate' - the netcat
  metapackage was removed in Debian trixie

Fixes:
- export DEBIAN_FRONTEND=noninteractive and install an apt.conf.d
  dropin with Dpkg::Options --force-confdef/--force-confold so conffile
  prompts resolve to the default action and keep the existing config
  (build_joininbox.sh and the amd64 update.sh kernel upgrade)
- install netcat-openbsd when the netcat metapackage is unavailable

* feat(ci): skip code signature verification on PR builds, label images

PR CI builds pull head commits from forks which are not signed by the
maintainer keys, so the mandatory PGP verification in
build_joininbox.sh fails every PR image build:

  # BUILD FAILED --> PGP verification not OK / signature(0) verify(0)

Behavior after this change:
- pull_request workflow runs pass the PR number through the packer
  build chain (workflow -> build script -> packer var -> provisioner
  env -> JOININBOX_PR_NUMBER)
- build_joininbox.sh skips the source signature verification when
  JOININBOX_PR_NUMBER is set, prints a prominent warning, and labels
  the image in /etc/joininbox-build-info as an UNVERIFIED test build
- the uploaded artifact name carries a -pr<N> suffix via BUILD_VERSION
- push-to-master and workflow_dispatch builds never set the variable,
  so production images keep mandatory verification

* fix(ci): drop apt policy after build, warn on PR images in main menu

- Remove /etc/apt/apt.conf.d/90joininbox-noninteractive at the end of
  build_joininbox.sh: the noninteractive dpkg conffile policy is a
  build-time measure and must not ship in deployed images, where
  interactive conffile handling is the default again
- Show '!!! UNVERIFIED PR BUILD #<N> - TESTING ONLY !!!' on top of the
  main menu whenever /etc/joininbox-build-info is present, so a flashed
  PR image cannot be mistaken for a production build

---------

Co-authored-by: autoblitzbot <autoblitzbot@users.noreply.github.com>
2026-08-15 07:31:05 +02:00
openoms
16fc83f47d
chore: migrate the watch-only Bitcoin Core wallet to use descriptors (#177)
Some checks failed
amd64-image-build / amd64-image-build (push) Has been cancelled
arm64-rpi-image-build / arm64-rpi-image-build (push) Has been cancelled
Test Shellcheck / Run Shellcheck (push) Has been cancelled
* chore: update wallet creation to use watch-only-descriptor-wallet

* remove duplicate version check

* fix: update release URL in install script and correct typo in wallet import message

* ci: test amd64 image descriptor wallet migration with Bats

* ci: boot amd64 image tests with OVMF pflash

* fix: gate descriptor wallet migration on Bitcoin Core v30

Detect the connected Bitcoin Core version over RPC before migrating.
Keep wallet.dat for v29.x or when the version cannot be determined.

Add regression coverage for both migration and compatibility paths.

* ci: make amd64 image tests independent of guest apt

Inject a pinned bats-core checkout into the temporary VM instead of
installing Bats through the guest package repositories.

Remove the duplicate pull request trigger and simplify artifact lookup.

* ci: harden image build run

* docs(FAQ): how automatic migration works
2026-08-13 11:57:42 +02:00
openoms
54473190c8
chore: joinmarket-clientserver update to v0.9.12, use AdamISZ new code signing key (#185) 2026-04-26 15:37:17 +02:00
openoms
dfb33c8ab0
chore(standalone): bitcoin core update to v29.2 (#184) 2026-04-26 08:36:15 +02:00
openoms
aa8d79c97d
fix(service): add memory and CPU limits to reduce OOM kills (#182) 2026-03-29 22:36:56 +02:00
openoms
554a20a297
fix(stats): improve YGnickname function to handle log retrieval and output more robustly (#180) 2026-03-29 10:03:52 +02:00
openoms
7a61e3b357
update JoinMarket to commit ce32baf, support for Python 3.12 / 3.13, modernize build (#178)
This PR updates JoinMarket to the latest tested commit with Python 3.12/3.13 support and addresses dialog display issues.

### Changes

#### JoinMarket Update
- Update to commit `ce32baf` (latest tested commit from master)
- Refactored install.joinmarket.sh to support both tag-based and commit-based installations
- Improved signature verification using verify.git.sh
- Updated menu.update.sh to display commit hash when using commit-based version

#### Python Support
- Added support for Python 3.12 and 3.13
- Changed version detection order to prefer newer Python versions (3.13 → 3.12 → 3.11 → 3.10 → 3.9 → 3.8)

#### Dialog Fixes
- **Fix border visibility**: Changed dialog border color from `(BLACK,BLACK,ON)` to `(CYAN,BLACK,ON)` in .dialogrc for better visibility
- **Terminal compatibility**: Added fallback for unknown terminal types (e.g., `xterm-ghostty`) by setting `TERM=xterm-256color` when `infocmp` fails
- **Fix box drawing characters**: Set `NCURSES_NO_UTF8_ACS=1` to fix dialog box rendering issues

#### Documentation
- Fixed typo in prepare_remote_node.md: "numbes" → "numbers"
2026-01-18 07:56:26 +01:00
openoms
ea675689c5
jam remote update to v0.4.0 (#175) 2025-06-09 21:20:46 +02:00
openoms
e69d6006a4
feat: add shellcheck test to github actions (#174)
* feat: add shellcheck test to github actions
* fix: shellcheck errors
2025-06-06 23:10:54 +02:00
openoms
a91cdc3657
chore: remove the boltzmann tool (#172) 2025-06-06 22:43:38 +02:00
openoms
56b06fafa4
chore: adapt to new path to bitcoin.conf in raspiblitz (#171) 2025-06-06 20:51:50 +02:00
openoms
b5bc21ad7b
jam-remote re-activate code signing check (#170)
* jam-remote re-activate code signing check

* chore(install.selfsignedcert.sh): non-interactive script
2025-05-26 00:26:11 +02:00
openoms
9594fbf20e
jam-remote update to 0.3.0 (#169) 2025-05-26 00:08:35 +02:00
openoms
44e095e324
fix: identify new location of raspiblitz.conf file (#168) 2025-05-25 23:30:11 +02:00
openoms
8afc78dcf4
add pip config set global.break-system-packages true to jm install (#164) 2025-01-13 23:36:29 +01:00
openoms
41a5c9e573
fix standalone bitcoind service (allow reach home folder) (#163) 2024-12-02 13:43:28 +01:00
openoms
7800d632a5
Tweak logs and stats display (#162)
* stats display tweak
* maximize dialog prgbox views for logs
2024-11-23 08:00:30 +01:00
Arman The Parman
aaa22e375b
smol typo (#159) 2024-11-22 14:43:48 +01:00
openoms
6b606760eb
correct menu option name 2024-09-13 10:58:56 +02:00
openoms
b9360c1008
docs: clarify jam remote steps 2024-07-15 17:48:39 +02:00
openoms
622847e80e
feat: add i2pd install script (#156)
* feat: add i2pd install script
* add comments to addseednodes
* limit addseednodes to 21 new random peers
2024-07-14 14:16:15 +02:00
openoms
efad4a01ff
Standalone setup fixes (#153)
* use bitcoin binary in /usr/local/bin/
* fix hostname and related warnings
* fix ownership of possibly migrated files
* build: fix fail2ban, remove boot drive tweak
* FAQ: remove outdated entries
2024-05-22 12:27:02 +02:00
openoms
e2e540ccbd
bitcoin core update to 26.1 (#152) 2024-04-11 16:58:10 +02:00
openoms
d961839137
prevent sleep and "unable to resolve host debian" error (#151)
* prevent sleep and "unable to resolve host debian" error

* fomat script
2024-04-05 08:33:08 +02:00
openoms
0126005b90
fixes for pruned node start (#149)
* increase required space for pruned chain download

* don't protect home as bitcoind binary is there

* format UDPATE menu
2024-03-10 21:39:14 +01:00
openoms
11c2e0dacd
change qtgui var to the correct option on install (#146) 2024-02-26 22:08:31 +01:00
openoms
dec26c7732
jam-remote update to 0.2.0 (#147) 2024-02-26 22:05:46 +01:00
openoms
ea5187c933
joinmarket update to v0.9.11 (#145)
* joinmarket update to v0.9.11
* remove deprecated install tweak
* remove pyhton 3.7 support
* stop using system-side PySide2
* don't install the QT Gui on ARM
* format start.joininbox.sh
* remove arm specific qtgui deps, no qtgui on build for arm
* don't protect system packages from pip install
* add libltdl-dev to apt-get packages
2024-02-26 12:06:00 +01:00
openoms
a61da715ca
build: fix github web-flow PGPpubkeyFingerprint (#144) 2024-02-14 08:44:38 +01:00
openoms
8f61362f9b
Bitcoin Core update to v26.0 , add update option and display (#140)
* add aliases bitcoinlog, bitcoinconf
* add bitcoin.update.sh
* add update option, display bitcoin core version
* bitcoin core update to v26.0
* add deprecatedrpc=create_bdb, update services
fixes #141
* ci: update arm64-rpi image
* ci: install qemu plugin for packer
* ci: add vnc
* menu updates
2023-12-11 08:50:42 +01:00
openoms
c240ba2885
build: update to Debian 12.2.0, create home folders as 0755 (#139)
* build: create home folders as 0755 on Debian 12
* build: add bash
* fix: add  --shell /bin/bash  to user creation
* copy the skeleton files for users with login
* update workflows
* jam-remote update to v0.1.6
* amd64 image update to debian-12.2.0, clean vars
2023-10-23 09:28:35 +02:00
openoms
accf274730
joinmarket update to v0.9.10 (#138) 2023-08-31 06:39:11 +00:00
openoms
709ea134dc
fix typos and add spelling (#136)
* chore: fix typos
* ci: add spelling gh action
* chore: fix false positives
2023-07-23 08:35:04 +02:00
openoms
ec556ab64a
update bitcoin core to v25.0 (#133)
* update bitcoin core to v25.0
* fix version check
* add the joinmarket user to the bitcon group
2023-06-16 14:08:58 +00:00
openoms
6032311eca
add pruned.host4coins.net/blocks + update to debian 12.0.0 (#131)
* fix: fix echo-s and format
* feat: add pruned.host4coins.net/blocks, fix data owner
* fix: check bitcoin install permission
* fix: prefer downloads over ipv4
* add hashFileSigName
* update to debian-12.0.0-amd64-netinst image
* fix the owner of the decompressed blocks
* delete old blocks and chainstates
2023-06-15 22:32:41 +02:00
openoms
fd39fade35
fix: pin werkzeug dependency to 2.2.0 + fmt (#124) 2023-05-07 08:18:20 +00:00
openoms
6667f9b99e
jam update to v0.1.5, nodejs update, fmt (#122) 2023-04-17 13:11:13 +01:00
openoms
e662759a2b chore: remove setIRCtoTor 2023-04-17 11:21:27 +01:00
openoms
b07faa68e7 feat: add custom change address option 2023-04-17 11:21:27 +01:00
openoms
7fd7c28bd2
update bitcoin-scripts to latest, shellcheck fmt (#120) 2023-04-03 17:52:43 +02:00
openoms
1135208dd7
check which key signed the last commit at build, format script (#117)
* fix sudo on bookworm
* backup rsyslog only of present
2023-02-06 10:36:16 +00:00
openoms
8480bd7543
fix pgp check with empty tag (#116) 2023-02-04 20:13:50 +00:00
openoms
f4e1dac495
Add Jam menu instead of QTGUI for the Raspiblitz on bullseye (#115)
* fix shutdown and reboot for raspiblitz
* add the Jam menu instead of qtgui for raspiblitz
* don't install the qtgui on raspiblitz bullseye
2023-02-04 19:44:00 +00:00
openoms
58e22fdbad
use tag if not empty 2023-02-01 10:21:55 +00:00
openoms
0615f699af
check if the last commit was made on github 2023-01-30 17:20:00 +00:00
openoms
ff92dec46c
update joinmarket to v0.9.9 (#109) 2023-01-30 08:27:47 +00:00
openoms
3d9b8b3061
change tor apt repo to tor-nightly-main-$distro 2023-01-18 20:12:06 +00:00
openoms
f42cbce4ea
update jam-remote to v0.1.4 2022-12-24 17:56:15 +01:00