Download Printol

One installer. It sets itself to run at login, takes a port in the 47600–47619 range, and is ready for your web app before you have finished reading this page.

Printol is not running here
That is the expected answer if you have not installed it yet.

Installers are not published yet

This page reads the latest release from crawlink/printol and shows whatever it finds there. Nothing has been tagged yet, or GitHub could not be reached just now.

You can build it yourself in the meantime — the desktop app is in desktop/ in the repository:

build from source
git clone https://github.com/crawlink/printol.git
cd printol/desktop
npm install
npm run tauri build     # installers land in src-tauri/target/release/bundle

Installing it

These are prebuilt packages — nothing to compile, no toolchain, no dependencies to install first. Download the one for your system and open it.

Windows

  1. 1. Download the .exe installer above.
  2. 2. Open it. Windows shows the blue “Windows protected your PC” screen — see below for why, and what to press.
  3. 3. Accept the default location. It installs in a few seconds.
  4. 4. Printol starts, puts an icon in the notification area, and begins listening.
Why the warning appears

SmartScreen warns about any installer it has not seen downloaded many times before. It is a reputation score, not a virus scan — a brand-new release always triggers it, and it fades as more people install.

Click More info, then Run anyway.

If you would rather verify first, check the file against checksums.txt in the release before running it.

Windows protected your PC

Microsoft Defender SmartScreen prevented an unrecognised app from starting. Running this app might put your PC at risk.

App: Printol_0.1.0_x64-setup.exe
Publisher: Unknown publisher

Run anyway Don’t run
Illustration, not a screenshot. The button wording is what matters and is exact.

macOS

  1. 1. Download the .dmgApple silicon for M1 and later, Intel for anything older.
  2. 2. Open it and drag Printol into Applications.
  3. 3. The first launch is refused, with a warning about an unverified developer.
  4. 4. Right-click Printol in Applications and choose Open, then Open again. Double-clicking keeps refusing; only the right-click route offers the override.
Why the warning appears

Gatekeeper blocks applications that are not notarised by Apple, which needs a paid developer account. Printol is free, so builds are currently unsigned.

Right-click → Open → Open. Once, not every launch.

On Sequoia and later the Open option may not appear; go to System Settings → Privacy & Security, find the message about Printol, and press Open Anyway.

“Printol” can’t be opened because Apple cannot check it for malicious software.

This software needs to be updated. Contact the developer for more information.

Illustration, not a screenshot. The button wording is what matters and is exact.

Linux

No warning to click through, but an AppImage needs its execute bit set — a file permission, not a security prompt.

terminal
# Debian, Ubuntu, Mint
sudo apt install ./printol_0.1.0_amd64.deb

# Fedora, RHEL
sudo dnf install ./printol-0.1.0-1.x86_64.rpm

# Anything else — AppImage, nothing installed
chmod +x Printol_0.1.0_amd64.AppImage
./Printol_0.1.0_amd64.AppImage

The .deb and .rpm pull in cups-client, which provides the lp command Printol uses to reach a printer. An AppImage installs nothing, so make sure CUPS is already there.

The first five minutes

  1. 1
    It starts and stays started

    Printol registers itself as a login item and puts an icon in the tray or menu bar. Closing the window does not stop it — the bridge has to outlive the window, or a web app could only print while somebody had the app open.

  2. 2
    It takes a port

    The listener binds the first free port from 47600 upward, on 127.0.0.1 only. The tray menu shows which one it got. Nothing on the network can reach it.

  3. 3
    You add a printer

    Printol lists what the operating system already knows about, so this is usually two clicks: pick the printer, say which paper is loaded, print the test page. That page prints a numbered ruler — if the last digit does not touch the right edge, the column count is wrong and every receipt after it will be too.

  4. 4
    Your web app pairs once

    The first time your site calls connect(), a dialog appears on the counter screen naming your site with a six-digit code. Somebody clicks Allow. That is the last time anyone is interrupted.

You only download it once

After the first install, Printol finds new versions itself: it checks once a day, shows a banner when there is one, and installs it when you say so. It never restarts itself without asking — a print bridge that vanishes mid-shift while somebody is holding a queue is not a print bridge anybody keeps.

Every update package is signed, and the signature is checked against a key built into the copy you already have before a single byte is written. That check is what makes automatic updating safe on a machine holding your books: a tampered package is refused, not installed. The daily check sends a version number and nothing else, and you can turn it off in Settings.

Requirements

Windows
Windows 10 1809 or later, x64. WebView2 is installed automatically by the installer if it is missing.
macOS
macOS 11 Big Sur or later. Universal builds are published for Apple silicon and Intel separately.
Linux
A glibc 2.31 or later distribution with WebKitGTK 4.1 — Ubuntu 22.04, Debian 12, Fedora 38 and later. CUPS provides the printer list.
Printers
Anything the OS can already print to, plus network printers reachable on raw TCP port 9100. USB thermal printers work through the system spooler in RAW mode.
Disk
About 40 MB installed. The local database grows roughly 1 MB per 5,000 invoices.

Verifying what you downloaded

Installers are built in public by GitHub Actions from a tagged commit, and every release carries a checksums.txt. Updates are signed with a key that never leaves the release workflow, and the app refuses an update whose signature does not verify.

terminal
# Every installer is published with its SHA-256 beside it.
shasum -a 256 Printol_0.1.0_aarch64.dmg
# compare against checksums.txt in the same release

Windows SmartScreen may warn on first run until the installer has been downloaded enough times to build reputation. Choose “More info → Run anyway”, or check the checksum first.