Skip to content

Releases: HostisHumani/ReceiptPi

ReceiptPi v1.2.3 — ESC/POS Temp Cache Fix

Choose a tag to compare

@HostisHumani HostisHumani released this 28 Sep 16:08
2690119

ReceiptPi v1.2.3 — ESC/POS Temp Cache Fix

This patch release fixes an issue where ESC/POS capability cache files could accumulate in temporary directories over time.

🛠 What was fixed

ReceiptPi now delays printer imports in watcher-related modules so that ESC/POS initialization only happens when printing is actually required.

Affected areas:

  • Message printing
  • Weather alerts
  • Wi-Fi printing

This prevents background watchers from repeatedly creating ESC/POS capability cache files during normal polling.

💾 Reduced temporary file usage

On affected systems, thousands of temporary cache directories could accumulate under /tmp and /var/tmp, eventually filling the filesystem.

The fix prevents new temporary cache folders from being created during watcher runs.

✅ Verified

The fix was tested with:

  • Manual watcher runs
  • Real /print/message test print
  • Service restart
  • Journal inspection
  • /tmp and /var/tmp monitoring

No new temporary cache directories were created after the fix.


Full Changelog: v1.2.2...v1.2.3

ReceiptPi v1.2.2 — Security Hardening

Choose a tag to compare

@HostisHumani HostisHumani released this 25 Sep 12:55
b6935e0

ReceiptPi v1.2.2 - Security Hardening

This patch release focuses on security hardening and safer handling of credentials, redirects, file paths, and error responses.

🔐 Mealie token protection

ReceiptPi now handles Mealie credentials more defensively.

  • Stored API tokens are only reused for the exact configured Mealie base URL.
  • Changing the Mealie URL requires entering the token again.
  • Authorization headers are stripped on cross-origin redirects.
  • Same-origin redirects continue to work normally.

This prevents a saved Mealie token from being forwarded to an unexpected host.

🖨️ Safer logo handling

Logo file handling now uses a fixed slot-to-path mapping instead of constructing file paths dynamically from request values.

This removes the possibility of unsafe path manipulation while keeping the existing logo workflow unchanged.

🖼️ Safer image and upload errors

Detailed Pillow/Base64 exceptions are no longer returned directly through the API.

  • Users receive a generic error message.
  • Full technical details remain available in the server logs via journalctl

This avoids exposing unnecessary internal implementation details.

🔑 SSH host key pinning

Password-authenticated system report hosts now pin SSH host keys on the first successful connection.

  • First contact behaves like StrictHostKeyChecking=accept-new
  • Future connections Verify the stored host key.
  • Changed host keys are rejected instead of silently accepted
  • SSH keys are stored separately in ReceiptPi's state directory.

This replaces the previous permissive Paramiko host-key behavior.

📚 Documentation

The English and German documentation has been updated to reflect the stricter Mealie token behavior.


Full Changelog: v1.2.1...v1.2.2

ReceiptPi v1.2.1 — Security & Maintenance

Choose a tag to compare

@HostisHumani HostisHumani released this 24 Sep 14:43
e4a41a8

ReceiptPi v1.2.1 — Security & Maintenance

This maintenance release improves ReceiptPi's development and security infrastructure.

🔐 Automated Security Scanning

ReceiptPi now uses GitHub CodeQL to automatically scan the codebase for potential security issues.

CodeQL covers both:

  • Python
  • JavaScript / TypeScript

Scans run on pushes and pull requests to main, as well as on a weekly schedule.

🤖 Dependabot

Dependabot is now enabled for:

  • Python dependencies
  • GitHub Actions

This allows ReceiptPi to automatically detect available dependency and workflow updates and propose them through pull requests.

🔄 GitHub Actions Updates

The first Dependabot updates have already been applied, bringing the affected GitHub Actions dependencies up to their current major versions.

✅ No Application Changes

This release does not change ReceiptPi's user-facing functionality.

It is a maintenance release focused on keeping the project easier to maintain and continuously checked for dependency and code security issues.


Full Changelog: v1.2.0...v1.2.1

ReceiptPi v1.2.0 - PWA Support

Choose a tag to compare

@HostisHumani HostisHumani released this 24 Sep 12:58
83d607d

ReceiptPi v1.2.0 - PWA Support

ReceiptPi can now live on your home screen.

Version 1.2.0 adds full Progressive Web App support, making ReceiptPi installable directly from supported browsers when accessed over HTTPS, no separate mobile app is required.

📱 Install ReceiptPi like an app

ReceiptPi now includes:

  • Web App Manifest
  • Service Worker
  • Dedicated app icons for Android and iOS
  • Maskable icon support
  • Apple Touch Icon support
  • Standalone app experience
  • Full-app Service Worker scope via /sw.js

When installed, ReceiptPi launches like a regular app without the usual browser interface, providing quick access to printing, lists, recipes, and everything else ReceiptPi offers.

🤖 Android & 🍎 iOS

When ReceiptPi is served over HTTPS, supported browsers can install it as a PWA.

On iOS, ReceiptPi can also be added to the Home Screen.

No App Store, Play Store, or separate mobile application is required. ReceiptPi remains the same self-hosted application running on your Raspberry Pi.

⚡ Safe & predictable caching

The new service worker deliberately does not cache ReceiptPi pages or API requests.

Only versioned static assets (/static/...?...v=<hash>) are cached. Everything else continues to go directly to ReceiptPi.

This means:

  • Pages always come from ReceiptPi.
  • API requests are never served from the Service Worker cache.
  • Updated assets automatically receive a new content hash.
  • Old versions of changed assets are removed.
  • Updating ReceiptPi activates the new service worker and cleans up old caches.
  • The cache cannot continuously accumulate old versions of static assets.

This keeps the PWA lightweight while avoiding stale application data or unexpected offline behavior.

🎨 PWA appearance

ReceiptPi now provides dedicated PWA metadata and icons, including:

  • 192×192 app icon
  • 512×512 app icon
  • 512×512 maskable icon
  • 180×180 Apple Touch Icon
  • ReceiptPi theme colors for installed-app integration

📚 Documentation

The English and German documentation has been updated with information about installing and using ReceiptPi as a PWA.


Full Changelog: v1.1.0...v1.2.0

ReceiptPi v1.1.0 — Recipes & Mealie Integration

Choose a tag to compare

@HostisHumani HostisHumani released this 24 Sep 08:43
03c6bbe

ReceiptPi v1.1.0 — Recipes & Mealie Integration

ReceiptPi v1.1.0 adds recipe support with a full Mealie integration, bringing recipes and shopping lists directly to the receipt printer.

🍳 Mealie Integration

ReceiptPi can now connect directly to your Mealie instance.

  • Search your Mealie recipe collection
  • Search for recipes by ingredient
  • Open recipe details directly in ReceiptPi
  • Print recipes on your thermal printer
  • Pick and print a random recipe
  • Configure the integration directly from ReceiptPi settings
  • Enable or disable recipe functionality through the module system

🛒 Shopping List Integration

Mealie and ReceiptPi shopping lists now work together.

Shopping list items from Mealie can be imported directly from ReceiptPi's shopping list page, ready to edit, extend and print like any other ReceiptPi shopping list.

🔐 Secure API Configuration

Mealie API credentials are stored encrypted by ReceiptPi.

The existing secrets infrastructure has been extended so integration credentials do not need to be stored as plaintext in the settings file.

🖨️ Integrated with ReceiptPi

Recipe printing participates in ReceiptPi's existing infrastructure, including:

  • Print queue
  • Print history
  • Pending jobs
  • Reprint handling
  • Module management
  • German and English translations

📚 Documentation

The English and German documentation has been updated with information about the new recipe and Mealie functionality.


Full Changelog: v1.0.0...v1.1.0

ReceiptPi v1.0.0

Choose a tag to compare

@HostisHumani HostisHumani released this 20 Sep 08:08
1af9673

ReceiptPi v1.0.0

ReceiptPi is now stable.

After multiple alpha releases, real-world testing on Raspberry Pi hardware and several rounds of UI, reliability and security improvements, ReceiptPi has reached its first stable release.

Highlights

Redesigned interface

  • Refined mobile-first UI
  • IBM Plex Sans / Mono typography
  • Improved navigation, cards and settings layout
  • Lucide icons throughout the interface
  • Easy Read mode
  • Multiple themes
  • Cache-busted static assets for reliable UI updates

Lists and task cards

  • Shopping lists
  • To-do lists
  • Task / Kanban cards
  • Priorities and due dates
  • Persistent drafts with autosave and restore
  • Manual discard
  • Draft cleanup after successful printing

Reliable print handling

  • Central print queue
  • Quiet hours and print rules
  • Print history
  • Pending / reprint queue for blocked or failed jobs
  • Manual retry and discard
  • Retention settings
  • Secure handling of pending image data

Automation and API

  • REST endpoints for supported print types
  • Home Assistant / curl friendly
  • Backwards-compatible shopping endpoints
  • API-triggered jobs integrate with history, pending jobs and print rules

System reporting

  • Configurable remote hosts
  • Proxmox and PBS support
  • Custom SSH commands for additional systems
  • SSH key authentication
  • Optional encrypted SSH password storage using Fernet
  • Sensitive credentials are never returned through the settings API

Reliability and performance

  • Reduced unnecessary SD-card writes
  • Cached state reads
  • Watchers only persist state when something actually changes
  • Static asset caching
  • Improved persistent state handling

Update awareness

  • Installed ReceiptPi version shown in the footer
  • Automatic GitHub release checks
  • Update notification when a newer release is available
  • GitHub Actions keeps the local VERSION metadata in sync with releases

Notes

ReceiptPi remains intentionally lightweight and self-hosted. No external cloud service is required for normal operation.

Existing installations can update from the current main branch. Review the README for current installation and configuration instructions.

Thanks to everyone who tested ReceiptPi, opened issues, suggested features or simply starred the project.

ReceiptPi v0.1.10-alpha1

Pre-release

Choose a tag to compare

@HostisHumani HostisHumani released this 12 Aug 08:02
dd93f93

What's new

Persistent list drafts

Shopping lists, to-do lists, and task cards now automatically save their contents while you work.

  • Drafts are restored when returning to a list
  • Drafts can be discarded manually
  • Successfully printed drafts are cleared automatically
  • Printing through the REST API also clears the corresponding draft
  • Failed print jobs keep the draft intact
  • Protection against delayed autosaves restoring an already printed draft

Release update indicator

ReceiptPi can now tell you when a newer GitHub release is available.

  • Current ReceiptPi version shown in the footer
  • Cached GitHub release check every 12 hours
  • New releases are linked directly from the footer
  • GitHub outages or API errors never block the web interface
  • Alpha/prerelease tags are supported

Additional improvements

  • Updated English and German documentation
  • Mobile, Easy Read, and all themes tested with the new UI elements
  • No new runtime dependencies

As always, feedback and bug reports are welcome.

ReceiptPi 0.1.9alpha — UI Redesign & Module Management

Choose a tag to compare

@HostisHumani HostisHumani released this 10 Aug 09:14
4054d90

What's new

✨ Redesigned Web UI

ReceiptPi's Web UI has received a major visual overhaul while keeping the existing themes and color choices intact.

  • New Home dashboard with printer status, active module count and total print count
  • Redesigned module tiles, cards, forms and settings pages
  • Improved navigation and clearer visual hierarchy
  • Settings are now grouped into logical sections
  • Responsive layouts optimized for desktop and mobile
  • Easy Read is integrated into the redesigned interface
  • Consistent local SVG icons powered by Lucide
  • No external icon service or CDN required

The redesign changes the presentation, not the established ReceiptPi workflow or theme choices.

🧩 Module Management

ReceiptPi modules can now be enabled or disabled individually from Settings.

Available modules:

  • Shopping List
  • Message
  • Images
  • WiFi
  • Weather
  • System
  • Games

Disabling a module removes it from the Home dashboard and disables its associated UI and print/API routes.

Weather and WiFi watchers also respect their corresponding module state.

Changes take effect immediately without restarting ReceiptPi.

🎲 Games improvements

The offline Games module introduced in the previous release is now fully integrated into the redesigned interface.

  • Sudoku
  • Five Dice score sheets
  • Tic-Tac-Toe
  • Consistent UI and iconography across all game pages
  • Existing print history, queue, rate-limit and quiet-hours handling remains integrated

Games continue to work completely offline without external APIs.

👓 Easy Read improvements

Easy Read is now more consistently integrated throughout the Web UI.

  • Larger interface text
  • Single-column module layout
  • Redesigned components adapt to the larger text scale
  • Existing larger print output remains supported
  • Normal display mode remains unchanged

Easy Read can be configured under Print Rules.

📡 Watcher improvements

Background watchers now behave more defensively and respect module configuration.

  • FritzBox WiFi watcher skips execution when the WiFi module is disabled
  • FritzBox configuration validation avoids unnecessary connection attempts with placeholder or missing credentials
  • Storm warning watcher skips external requests when the Weather module is disabled
  • Improved handling around watcher execution and configuration

🎨 UI & technical improvements

  • Locally bundled Lucide SVG icons
  • Lucide icons distributed under the ISC License
  • Improved reusable UI components and spacing
  • Improved button, list and form consistency
  • Better focus and interaction states
  • Updated German and English translations
  • Updated German and English READMEs
  • PyUSB/import cleanup
  • Various smaller UI and runtime improvements

Upgrade notes

No configuration migration is required.

All existing modules remain enabled by default, so existing installations retain their previous functionality after upgrading.

Module availability can be configured under Settings → Modules.

ReceiptPi is still in alpha.

v0.1.8-alpha1 – Offline Games, Easy Read & Core Improvements

Choose a tag to compare

@HostisHumani HostisHumani released this 09 Aug 15:52
5a45445

What's new

🎲 Offline Games

ReceiptPi now includes a new Games section with printable activities that work completely offline.

  • Sudoku with Easy, Medium and Hard difficulty
  • Sudoku puzzles are generated locally with a unique solution
  • Optional solution printout
  • Printable Dice Score sheets
  • Printable Tic-Tac-Toe boards
  • Optimized layouts for 80 mm receipt paper
  • Games are integrated with print history and existing print restrictions

No internet connection or external API is required — generate, print and play.

👓 Easy Read

A new Easy Read option improves readability both on screen and on printed receipts.

  • Larger body text on supported printouts
  • Larger headings while preserving the existing layout
  • Larger Web UI text
  • Single-column tile layout when Easy Read is enabled
  • Normal mode remains unchanged
  • Configurable under Print Rules

⚙️ Core improvements

This release also includes a larger internal review and cleanup of ReceiptPi.

  • Improved error handling and runtime robustness
  • Print queue improvements
  • History handling improvements
  • Security-related improvements
  • Cleaner configuration handling
  • Improved watcher implementations
  • Explicit PyUSB runtime dependency
  • Code and documentation cleanup
  • Various print-path improvements

🌐 Languages

  • German and English translations updated for the new features

Notes

ReceiptPi is still in alpha. Existing installations should continue to use the normal text size unless Easy Read is explicitly enabled.

ReceiptPi v0.1.7-alpha1

Pre-release

Choose a tag to compare

@HostisHumani HostisHumani released this 07 Aug 18:22
53c5465

ReceiptPi v0.1.7-alpha1

This release expands ReceiptPi's weather capabilities with selectable weather providers and automatic severe weather alerts.

🌦️ Weather Providers

Weather reports are no longer tied to a single provider.

You can now select the weather data source directly in Settings → Weather:

  • DWD — Germany
  • Open-Meteo — Germany and Europe

The selected provider is used for regular weather reports and can be changed at any time.

⚠️ Severe Weather Alerts

ReceiptPi can now automatically monitor official weather warning services and print new severe weather alerts.

Supported providers:

  • 🇩🇪 DWD — Germany
  • 🇪🇺 MeteoAlarm — Europe
  • 🇺🇸 NWS — United States

A new background watcher checks for active warnings every 15 minutes.

Only new warnings are printed. ReceiptPi keeps track of previously seen alerts to prevent the same warning from being printed repeatedly.

Severe weather alerts can be completely enabled or disabled from the Weather settings.

🌙 Quiet Hours

Severe weather alerts have their own Ignore quiet hours setting.

When enabled, important weather warnings can still be printed while normal ReceiptPi jobs remain blocked by an active quiet-hours rule.

This bypass applies only to quiet hours. Rate limiting and duplicate protection remain active.

⚙️ Settings

The Weather settings page now includes configuration for:

  • Weather report provider
  • Severe weather alerts
  • Warning provider
  • Provider-specific region/location
  • Ignore quiet hours for severe weather alerts

Existing weather locations continue to work as before.

🔧 Technical

  • Added dedicated severe weather provider handling
  • Added a storm warning watcher
  • Added persistent state to prevent duplicate warning prints
  • Added a dedicated internal weather-alert print endpoint
  • Quiet-hours bypass is controlled server-side from ReceiptPi settings
  • No new Python dependencies

ReceiptPi is still in alpha. Feedback and bug reports are welcome.