scsipub
Block devices over the internet.
One click. No account. No VPN. No VM.
scsipub serves disk images over iSCSI — the block storage protocol built into Linux, Windows, and macOS. Pick an image, get credentials, mount the remote disk in seconds.
Pick an image ↓Pick an image
Choose from the catalog. Each session gets its own copy-on-write layer.
Get credentials
A unique IQN and CHAP username/secret are generated for your session.
Run iscsiadm --login
The disk appears as /dev/sdX. Mount, boot, or dd.
Netboot & rescue
Boot a rescue ISO or fresh installer on a bricked machine — no USB stick needed.
CI ephemeral disks
Fresh block device per build. Throw it away when the job finishes.
Remote dev environments
Attach your lab disk from anywhere. State persists across machines.
OS testing
Spin up a pristine OS image on real hardware without flashing anything.
Available images
4 availablealpine-3.20
61.0 MB
Minimal Linux. Fast boot, busybox + apk. Good for shell access and scripting. Has open-iscsi in repos.
Memtest86plus-7.20
5.9 MB
Memory diagnostics. Boots directly into RAM test — no OS. Classic network boot use case.
Debian-12-Cloud
3.0 GB
Debian 12 cloud image. Cloud-init ready, stable base for development. Same image used in CI testing.
alpine-3.21
63.0 MB
Blank scratch disk
Empty 64.0 MB — reads return zeros, writes fill up to your tier's limit. Good for scratch partitions, filesystem experiments, or dd targets.
No-setup targets
These targets accept AuthMethod=None — the initiator
just connects. Each TCP connection is its own ephemeral session; overlay is discarded on
disconnect. Size cap per session matches the free-unreg tier write limit. open-iscsi doesn't speak TLS natively, so the TLS recipe below terminates it locally with stunnel and has iscsiadm connect to loopback.
Blank disk
iqn.2025-01.pub.scsipub:blank
# One-time: install stunnel
sudo apt install -y stunnel4 # Debian/Ubuntu
# sudo apk add stunnel # Alpine
# Start a local TLS tunnel (keep this shell open, or run as a service)
cat > /tmp/scsipub-stunnel.conf <<EOF
pid =
foreground = yes
[scsipub-tls]
client = yes
accept = 127.0.0.1:3260
connect = scsipub.com:3261
verifyChain = yes
CApath = /etc/ssl/certs
checkHost = scsipub.com
EOF
sudo stunnel /tmp/scsipub-stunnel.conf &
# Point iscsiadm at the local tunnel
iscsiadm -m node -T iqn.2025-01.pub.scsipub:blank -p 127.0.0.1:3260 -o new
iscsiadm -m node -T iqn.2025-01.pub.scsipub:blank -p 127.0.0.1:3260 \
-o update -n node.session.auth.authmethod -v None
iscsiadm -m node -T iqn.2025-01.pub.scsipub:blank -p 127.0.0.1:3260 --login
alpine-3.20
iqn.2025-01.pub.scsipub:image.alpine-3.20
# One-time: install stunnel
sudo apt install -y stunnel4 # Debian/Ubuntu
# sudo apk add stunnel # Alpine
# Start a local TLS tunnel (keep this shell open, or run as a service)
cat > /tmp/scsipub-stunnel.conf <<EOF
pid =
foreground = yes
[scsipub-tls]
client = yes
accept = 127.0.0.1:3260
connect = scsipub.com:3261
verifyChain = yes
CApath = /etc/ssl/certs
checkHost = scsipub.com
EOF
sudo stunnel /tmp/scsipub-stunnel.conf &
# Point iscsiadm at the local tunnel
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.alpine-3.20 -p 127.0.0.1:3260 -o new
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.alpine-3.20 -p 127.0.0.1:3260 \
-o update -n node.session.auth.authmethod -v None
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.alpine-3.20 -p 127.0.0.1:3260 --login
Memtest86plus-7.20
iqn.2025-01.pub.scsipub:image.Memtest86plus-7.20
# One-time: install stunnel
sudo apt install -y stunnel4 # Debian/Ubuntu
# sudo apk add stunnel # Alpine
# Start a local TLS tunnel (keep this shell open, or run as a service)
cat > /tmp/scsipub-stunnel.conf <<EOF
pid =
foreground = yes
[scsipub-tls]
client = yes
accept = 127.0.0.1:3260
connect = scsipub.com:3261
verifyChain = yes
CApath = /etc/ssl/certs
checkHost = scsipub.com
EOF
sudo stunnel /tmp/scsipub-stunnel.conf &
# Point iscsiadm at the local tunnel
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.Memtest86plus-7.20 -p 127.0.0.1:3260 -o new
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.Memtest86plus-7.20 -p 127.0.0.1:3260 \
-o update -n node.session.auth.authmethod -v None
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.Memtest86plus-7.20 -p 127.0.0.1:3260 --login
Debian-12-Cloud
iqn.2025-01.pub.scsipub:image.Debian-12-Cloud
# One-time: install stunnel
sudo apt install -y stunnel4 # Debian/Ubuntu
# sudo apk add stunnel # Alpine
# Start a local TLS tunnel (keep this shell open, or run as a service)
cat > /tmp/scsipub-stunnel.conf <<EOF
pid =
foreground = yes
[scsipub-tls]
client = yes
accept = 127.0.0.1:3260
connect = scsipub.com:3261
verifyChain = yes
CApath = /etc/ssl/certs
checkHost = scsipub.com
EOF
sudo stunnel /tmp/scsipub-stunnel.conf &
# Point iscsiadm at the local tunnel
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.Debian-12-Cloud -p 127.0.0.1:3260 -o new
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.Debian-12-Cloud -p 127.0.0.1:3260 \
-o update -n node.session.auth.authmethod -v None
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.Debian-12-Cloud -p 127.0.0.1:3260 --login
Hardware initiators
for devices that can't speak iSCSI nativelyESP32-iSCSI-USB
Turn an ESP32-S3 into a wireless iSCSI-to-USB bridge. The device logs into a target over WiFi and presents it to any USB host as a flash drive — no drivers on the host side.
Web flasher & docs →PI4-iSCSI-shim
Netboot Raspberry Pi 3/4/5 directly into an iSCSI target — pivot_root, kexec, or USB-disk modes. TFTP kernel + bootstrap SD image; no local OS needed on the Pi.
Downloads & setup →