BoardRipper

Web-based PCB boardview viewer for board-level repair. Free, AGPL-3.0.

Latest release: v0.50.2 — released 2026-10-22

Full version Docker / Desktop — [Docker setup] | [Desktop app] self-hosted; shared library, board database, PDF search

Lite version Web / HTML — [Open in browser] | [Offline HTML] no install, nothing uploaded; 7 MB single file

Legacy version Web — [Open in browser] the same app for older browsers, iPadOS 15.4+; not yet confirmed on real devices — see supported browsers and devices


Discord: discord.gg/BYEkKTMNNY — the RipperDoc server.

You can request features and tools here, or on GitHub — whichever you prefer. There is also a small repair community on the server.

Automatic updates are paused — a one-time manual update is needed (31 August 2026)

Self-hosted BoardRipper containers no longer show the update badge and will not update themselves. Nothing is broken — your install keeps working exactly as it does today. It simply cannot receive new versions until you update it once by hand.

The fix. From the folder holding your docker-compose.yml:

docker compose pull
docker compose up -d

After that single pull, automatic updates work again exactly as before. This is a one-time step, not a new routine.

Why this happened. Every release is signed offline, and each container trusts only the one signing key it was built with. That key was unfortunately lost and could not be recovered, so it has had to be replaced. No further release can be signed with it — which also means no notice can be delivered through the in-app update channel, hence this page. A new key has been issued; pulling once moves your container onto an image that trusts it, and updates resume normally from then on.

Status. The re-signed release is being published now. If the pull above does not fetch a new image yet, check back shortly — this page is updated the moment it is live.

Your data was never exposed. The key signed release manifests only. It granted no access to any installation, and BoardRipper stores nothing remotely — your boards, schematics and library folders never leave your machine.

New release signing key (ID DC633F5E36B877E8):

untrusted comment: minisign public key DC633F5E36B877E8
RWTod7g2Xj9j3OAs2gvd4lM3ySDPOlKw2sTpl384PdytAPx/N/qnee+B

Save that as release.pub and verify any release yourself with minisign -V -p release.pub -m manifest.json.

BoardRipper opens fourteen boardview formats and the matching PDF schematic, side by side, in a browser. Designed to be self-hosted on a NAS via Docker. Works on desktop and on touch screens.

It is the viewer only. BoardRipper does not ship with any boardview files, schematics, or PDFs — you bring your own. The bundled board database is reference metadata (board numbers and device models), no copyrighted content.

Source code now public — the full project is on GitHub under AGPL-3.0. Issues and PRs welcome; the repository ships CONTRIBUTING.md and SECURITY.md with the disclosure policy.

Try it now — no install: open the browser version (your files stay local — nothing is uploaded), or download a single offline HTML file and open it from your own computer. Details under Download.

Single board open in BoardRipper Multi-layer board with layer sidebar visible Board with multiple revisions, Revisions tab open Library panel sorting boards by metadata and filename

Click for full size. Left to right: a single board view, a multi-layer board with the layer sidebar, a board with multiple revisions grouped under the Revisions tab, and the Library panel sorting boards by parsed metadata and filenames.


What is this, and why self-host it?

Docker is a way to ship an application as a single image that runs the same on any machine: no installer, no per-OS binary, no dependency hell. You give Docker the image, point a port at it, and it runs. BoardRipper ships as a ~25 MB Docker image (~13 MB compressed); docker compose up -d and it's online.

Why run it on a NAS or shop server:

Runs on

Server side — Docker on Linux, macOS, or Windows; or the standalone Go binary (Linux x86_64, macOS Intel/ARM, Windows x64). Runs happily on a Synology or QNAP NAS, a Raspberry Pi 5, an old laptop in a closet, or anything else that can run a container.

Client side — any modern browser (Chrome, Firefox, Safari, Edge) on any OS, including iPad and Android tablets. There’s no per-client install — you open the URL. Minimum versions and a list of iPads and iPhones by model: supported browsers and devices.

Old hardware — the rendering pipeline is GPU-accelerated WebGL, which leans on the integrated GPU rather than the CPU. Bench-tested on 3rd- and 4th-generation Intel laptops (HD 4000 / HD 4400 / HD 4600 era), frame rate sits in the 10–30 fps range depending on the board — usable but visibly slower than a modern GPU. On those machines you may want to lower the browser zoom or window size and turn off a few of the visual extras (label tier, glyph overlay) in the Settings panel; the Debug panel surfaces frame-time so you can see what’s slow.

Features

Supported formats

BVR1.bvr / .bvTab-delimited boardview export, coords ×1000 → mils
BVR3.bvr / .bvKeyword-value boardview export, relative pin coords
BRD.brdApple / Mac repair, bit-rotation obfuscated binary
BDV.brd / .bdvPlain-text boardview (BRDOUT / NETS / PARTS / PINS / NAILS)
BDV ASC.bdvHonhan / Tebo-ICT, line-key cipher
FZ.fzASUS, RC6-encrypted, zlib-compressed
GenCAD.cadGenCAD 1.4 PCB interchange (text)
Mentor Neutral.cadMentor Boardstation neutral file (Samsung / Quanta / Compal exports)
XZZ.pcbXZZ PCB, DES-encrypted boardview. Real per-pin pad geometry, per-part silkscreen, drill / via data, automatic X-fold / Y-fold detection.
TVW.tvwTeboview binary. Multi-layer, traces, drill data, chamfered / polygon pads, ground-plane copper fills.
Cadence Allegro BRD.brdCadence Allegro PCB binary, v16.x / v17.x / v18.x. v15 partial, still in beta.
Altium PCB.PcbDoc / .CMPcbDoc / .CSPcbDocAltium Designer 6.0+ (and Circuit Maker / Circuit Studio / SolidWorks PCB Connector). Binary CFB + ASCII v5.0 variants. Phase 1 (parts / pins / nets / outline).
KiCad.kicad_pcbKiCad 4–9 board file. Parts, pins, nets, outline with cutouts, tracks, vias, copper pours. The only openly documented format here.
EAGLE.brdAutodesk / CadSoft EAGLE 6.0+ XML board. Parts resolved through library packages, nets, outline, tracks, vias, silkscreen. Pre-6.0 binary files are not supported.

.cad is shared by two formats and .brd by three — BoardRipper sniffs file content to pick the right parser.

When the auto-detected orientation is wrong (a handful of Apple X-fold MLBs need a 180° flip), rotate once with the toolbar button and the choice is saved per-file. Next time you open the same file, the override applies automatically.

Docker setup

Typical deployment on a NAS or small home server:

services:
  boardripper:
    image: ghcr.io/alexeyinwerp/boardripper:latest
    ports:
      - "8081:8080"
    volumes:
      - ./data:/data
      # Your library: mount EVERYTHING read-only (:ro) by default.
      - /path/to/MacBooks:/library/MacBooks:ro
      - /path/to/iPhones:/library/iPhones:ro
      # The ONLY writable mount the container should ever see:
      - /path/to/incoming:/library/incoming:rw
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - PORT=8080
    restart: unless-stopped

Then: docker compose up -d → open http://your-nas:8081

Mount your board folders as subdirectories of /library — each one shows up as a top-level folder in the Library panel.

Keep every other mount :ro. /library/incoming is the only path BoardRipper should be able to write to — that’s where dropped files land. The container does not need write access to your existing board folders, your schematics, or anything else.

Self-update needs the /var/run/docker.sock mount — that's what lets the container pull the new image and restart itself when you click "update" in the toolbar. Remove it if you'd rather update manually with docker compose pull && docker compose up -d.

Download

Pick the install style that fits how you work:

Run in the browser — no install

The lite build: the full BoardRipper viewer and inspector running entirely in your browser, with no server and no backend. Open your own boardview files and PDFs locally — nothing is uploaded, nothing leaves your machine. Point it at a folder of boards and schematics and it indexes them in the browser, so you get a library to browse and search without a server. There is no shared library across machines, board database, PDF full-text search, or self-update (those need the Docker build), but all rendering, inspection, net-highlight, layers, themes, and PDF viewing are there.

Everything runs client-side in your browser. Encrypted ASUS .fz files still need a key pasted or fetched in-app (same as the Docker build). The Offline copy button in the top-right of the web app downloads the same single file.

Desktop app

An Electron wrapper around the same web UI. One-click install, no Docker. Each platform ships as a portable .zip — unzip and run.

Primary host is GitHub Releases — the links above are the failover mirror on ripperdoc.de in case GitHub Releases is unreachable. Same bytes either way. macOS apps are unsigned; first launch needs right-click → Open. Older versions live in the version archive.

Docker / self-hosted

For NAS, lab benches, and multi-user setups. Pulls a ~15 MB scratch-based image; self-updates from the running container.

Both downloads ship the same image. The running container verifies an Ed25519 signature against a key compiled into its own binary before installing any update — a hijacked mirror cannot deliver a forged update.

Drop-to-update fallback

For Docker installs that can’t reach the registry or the mirror (firewalled networks, air-gapped shops, or recovering from a broken self-update), download the bundle and drop it onto the BoardRipper window:

Drag the file anywhere on the BoardRipper UI. A confirmation prompt appears; click OK and the running container verifies the signature, applies the update, and restarts. The browser reloads after ~30 s. Same trust envelope as the in-app updater — the manifest signature is what grants trust, the file itself is treated as untrusted bytes until verification passes.

Older versions and changelog

Feedback


Support the project

Honest framing: I build BoardRipper mostly for myself. It’s the viewer I want on my own bench, and it would exist even if nobody else ever opened it. It is free software under AGPL-3.0 and it stays that way — no paywall, no accounts, no pro tier, no telemetry, no ads.

It isn’t free to make, though. The code is generated with Claude Code and the tokens run me roughly €100 a month out of pocket, on top of hosting and the evenings spent testing on real boards. So if you look at BoardRipper and think it’s a good, useful piece of software — or it already saved you a repair job or two — support is really appreciated. It goes directly into keeping development going: more formats, more fixes, more releases.

→ Buy me a coffee — any amount, one-off or monthly. No account needed.

Rather not send money? Completely fine, and nothing is locked either way. Bug reports, boards that fail to parse, and sample files for unsupported formats are worth just as much to me — see Feedback.

Credits & references

BoardRipper exists because of the work the boardview community has already done. Each entry below was consulted during development; full attribution and license details live in THIRD_PARTY.md.

Parser references

Cryptographic standards

Rendering & runtime

Backend

Desktop wrapper

Corrections and missing attributions welcome — email me.

About this software

I have a programming background, but BoardRipper is not hand-written. The whole codebase — parsers, renderer, panels, backend — was generated with Claude Code, working from format specs and reference implementations from the boardview community. I review, test, and direct it; the lines of code came out of an LLM.

For context: I’m a father of two and I work 50–60 hours a week. Hand-writing a project of this scope was never going to happen — this was the only way it was ever going to exist. Sceptics will dismiss anything in this category as “AI slop”; I think BoardRipper is a fair counterexample. Eleven boardview parsers, ten thousand components rendered at 60 fps, and not one line of code written by hand. It works on real boards in real shops. That’s the answer I have for the slop critique — not arguing about it, just shipping something useful.

Treat that as you would any AI-assisted software: it works on the boards I’ve tested, it has bugs I haven’t found yet, and the right level of trust is “a useful viewer, not a forensic tool.” Bug reports welcome.

Thanks to Maksim Shevelev and Joseph Hughes for testing and bug reports.