System configuration
apt full-upgrade, verify SSD speed with hdparm, create /data directory and service-user symlinks, confirm zram swap is active on Trixie.
Fresh install, fresh habits. You'll patch the system, make sure the SSD is pulling its weight, carve out a tidy place for all the node data to live, and confirm that swap is doing its job. Quick pages, all of it, but it's the groundwork the rest of the guide leans on.
Log back in
Open an SSH session to the Pi as the admin user:
ssh admin@raspibolt.localTo end a session at any time, type exit. And a quick reminder:
anything that touches system files needs sudo in front of it
(the Pi will ask for password [A] the first time each session).
System update
Keeping the system patched is table stakes. Debian's apt package
manager handles OS updates and application upgrades in the same
command.
-
Set a default locale. This silences the noisy
LC_ALL: cannot change localewarnings that some tools throw when you SSH in from a machine with a different language setting:echo "export LC_ALL=C" >> ~/.bashrc source ~/.bashrc -
Refresh the package index and install every available upgrade in one go:
sudo apt update && sudo apt full-upgrade -
Install
git, you'll need it later to clone source code:sudo apt install git
Run sudo apt update && sudo apt full-upgrade every few months to
pick up security fixes. Set a reminder if you're the forgetful type.
Check SSD performance
A fast SSD is non-negotiable. A slow drive drags the initial block download into the weekend and turns the Electrs index build into a slog. This is why it pays to benchmark now, before you've committed a few hundred gigabytes of blockchain data to the wrong enclosure. The Pi 5 handles USB 3 storage well, but some enclosures still underperform, this is the moment to catch that.
-
Install
hdparm, a classic disk benchmarking tool:sudo apt install hdparm -
Confirm your SSD shows up as
/dev/sda:lsblk -pli -
Measure raw read throughput:
sudo hdparm -t --direct /dev/sdaExpected output (your number will differ):
Timing O_DIRECT disk reads: 932 MB in 3.00 seconds = 310.23 MB/sec
Anything above 100 MB/s is fine for a full node. If you see numbers below 50 MB/s, the enclosure is probably falling back to UAS mode with a buggy driver, a well-known problem with certain chipsets (hello again, JMicron). The Fix bad USB3 performance section in Troubleshooting walks through disabling UAS for a specific drive.
Using NVMe via the M.2 HAT+
On NVMe the device is /dev/nvme0n1, not /dev/sda. You can skip
this check entirely, NVMe drives comfortably clear any throughput
bar this guide sets.
Data directory
Everything the node cares about, the blockchain, Lightning channel
state, backups, will live under /data/. Keeping it outside any
user's home directory makes permissions obvious and means you can
move it to a bigger drive later with nothing more than a mount.
Create it once, owned by admin:
sudo mkdir /data
sudo chown admin:admin /dataSwap
Swap is the safety net: when RAM fills up, the system offloads idle
pages to "swap" instead of crashing. Compressed swap held in RAM
sounds like a contradiction, but that's exactly what zram is, and
it works beautifully for a node. On Raspberry Pi OS Trixie this is
handled out of the box by the rpi-swap service, which uses
zram rather than a file on the SSD. Clever, and already running.
But you do not need to install dphys-swapfile or edit
/etc/dphys-swapfile. Old guides told you to; ignore them.
Verify that swap is active:
swapon --showYou should see something like:
NAME TYPE SIZE USED PRIO
/dev/zram0 partition 2G 0B 100On an 8 GB Pi 5, the default 2 GB zram swap is plenty.
Why zram and not a swapfile?
A swapfile on an SSD wears the flash with every heavy swap burst,
and on a microSD card it's painfully slow. zram sidesteps both:
pages are compressed and kept in RAM, so an 8 GB Pi effectively gets
a little more memory without ever touching the disk.
Remote access
SSH to the Pi from macOS, Linux, or Windows OpenSSH. Command-line basics for first-timers. Generate and install an ed25519 key for passwordless login.
Security
SSH hardening with ed25519 keys, UFW firewall rules, fail2ban brute-force protection on systemd, open-files limit, disable Bluetooth and Wi-Fi radios.

