HarbourOS  Changelog

Changelog

Release history for HarbourOS. Each version is tagged and available on GitHub Releases.

v1.1.0
Latest
May 2026

Production Flux CUMULUS node support. Run a Flux node on the same Raspberry Pi 5 as Plex — fully managed from the HarbourOS dashboard with no source patching required.

New Features

  • Flux node installer with hardware pre-flight checks (RAM, NVMe write speed, architecture)
  • Automatic flux.conf generation with Insight Explorer mode (insightexplorer=1, experimentalfeatures=1, addressindex=1, timestampindex=1, spentindex=1) — eliminates P2SH transaction crashes in FluxOS without source patching
  • Correct zelcash.service using explicit -datadir=/var/lib/fluxd -conf=/var/lib/fluxd/flux.conf flags, eliminating config path ambiguity between fluxd and FluxOS
  • Flux Node dashboard tab: node status (CONFIRMED/STARTED/EXPIRED), tier, sync progress, benchmark results, Docker container count
  • Wallet monitoring: balance with collateral note, earned today/total, last payout date, payout count
  • Explorer scanned height: live Insight Explorer indexing progress
  • Benchmark status card: CPU cores, RAM, disk write speed (MB/s), EPS, download/upload speeds, tier qualification
  • Node action buttons: Start, Stop, Restart — all via the UI
  • Flux install log streaming in the UI
  • Automatic fluxbenchd RPC credential correction (fluxbenchuser/fluxbenchpassword) matching FluxOS benchmarkService.js hardcoded values
  • P2SH compatibility patch script retained as legacy/emergency-use-only fallback
  • Loose reverse-path filtering (rp_filter=2) for correct Flux P2P peer routing through NAT/port forwarding

Bug Fixes

  • Install Updates button: Fixed silent failure — sudo bash -c "apt-get update && apt-get upgrade" was blocked by sudoers (only individual apt-get commands were permitted). Split into two separate calls.

Infrastructure

  • apply-update.sh now deploys Flux sudoers, install script, and patch script on every update
  • .gitignore hardened: wallet.dat, flux.conf, fluxnode.conf, *.dat, *.ldb, *.sst, migration-backup-*/
v1.0.8
Stable
March 2026

Dashboard UI overhaul — animated SVG ring gauges for system stats, System & Storage merged into one full-width card, glass polish across all cards, and icon colour fixes.

Improvements

  • Animated SVG ring gauges replace plain stat text — CPU, Memory, Temp, and Disk each fill to their live % with a smooth 0.6s transition (CasaOS-inspired)
  • System and Storage widgets merged into one full-width card with a single clean row of four rings
  • Glass card border opacity increased for better card definition and depth
  • Inset 1px top-edge highlight added to cards and app icons — premium lit-from-above look used by CasaOS and Umbrel
  • Border-radius standardised to a two-value system (16px primary / 12px secondary) — was five inconsistent values
  • Widget section titles more legible (0.6 → 0.7rem); stat labels 0.6 → 0.65rem
  • Widget padding standardised to 1rem (was asymmetric 0.9 / 1.1rem)

Fixes

  • Movie and TV show library icons now match the “Running” blue (#2563eb) for visual consistency
  • “Running” and “Plex Running” status indicators restored to blue
v1.0.7
Stable
March 2026

Episode Manager, Plex session monitoring, one-line curl installer, CPU spike fixes, dashboard UI improvements, and core OS features: security tab, update transparency, mount diagnostics, storage health, backup/restore.

New Features

  • Episode Manager with show grid, colour-coded completion cards, and per-season breakdown
  • Missing episode detection with exact episode names and air dates
  • 185,000+ shows, 5.7 million episode database hosted on harbouros.eu (MySQL)
  • Pi queries only its own Plex shows (~4 MB) instead of downloading the full dataset
  • Search, filter (All / Incomplete / Complete / Unmatched), and sort controls
  • Plex session monitoring - live view of active streams with user, device, play mode (direct play / transcode), bitrate and resolution
  • Transcoding warning when any session is transcoding on the Pi
  • Security tab in System modal - fail2ban status, SSH configuration, password hygiene, banned IPs, failed login count
  • Mount diagnostics - "Diagnose" button on unmounted mounts runs ping, port check, share access test, and returns a plain-English error
  • Onboarding checks in setup wizard - Plex reachable, static IP recommendation, temperature, NAS mount count
  • Backup & restore - export config to JSON, restore on a fresh install

Improvements

  • Update transparency - changelog, previous/current version, last checked and last updated timestamps in Updates tab
  • Storage health - per-partition warnings at 80% and 90% usage, SD card tip to move Plex data to NAS
  • Self-update script now captures git log and includes it in the status JSON
  • Episode database migrated from flat JSON file (167 MB) to remote MySQL API
  • Plex sessions show full context: series name, season/episode number, and episode title
  • Dashboard widgets widened to 760px to match the app grid
  • Plex widget simplified - removed uptime and library count for a cleaner layout
  • File input in backup restore styled to match the rest of the UI
  • System stat values are now colour-coded: CPU/Temp green→yellow→red by load, Memory blue, Uptime purple
  • Library widget icons colour-coded by type: movies gold, TV shows blue, music purple
  • 100 tests passing

Fixes

  • Fix Plex active sessions not visible - harbouros user now has read access to Preferences.xml
  • Fix Plex session title truncated - text now wraps and shows user & device below title
  • Dead code sweep - removed unused API routes, deduplicated internal helpers, fixed subprocess calls that bypassed dev-mode mocking

Performance

  • Fix periodic CPU spikes - apt list --upgradable was running every 30 s; now cached with a 1-hour TTL
  • Plex token and service status reads are now cached (5 min and 30 s TTL respectively) to reduce sudo calls
  • Reduced gunicorn workers from 2 to 1 - eliminates per-process cache fragmentation on a single-user admin UI

Installation

  • One-line curl installer - curl -sL https://harbouros.eu/install.sh | sudo bash installs HarbourOS directly on the Pi, no git or make required
  • SSH password fallback in remote install - no longer requires pre-configured SSH keys; prompts for Pi password if keys are absent
v1.0.6
Stable
January 2026

Security hardening pass: CSRF protection, non-root service user, rate limiting, Plex log rotation, and fix for self-update git ownership errors.

Security

  • CSRF protection - Origin/Referer header validation on all state-changing API requests
  • Admin UI now runs as dedicated harbouros system user (non-root) with targeted sudoers
  • Login rate limiting - 5 attempts per minute per IP
  • Security response headers - X-Content-Type-Options, X-Frame-Options, Content-Security-Policy
  • Hardened sudoers - only specific commands allowed, no broad root access

Fixes

  • Fix self-update: resolve git safe.directory ownership failure after non-root deploy
  • Fix self-update: write success status before applying (survives restart)
  • Fix update UI stuck on "in progress" after service restart
  • Plex log rotation - prevent disk fill from runaway Plex logs
v1.0.5
Stable
January 2026

Backup and restore: export your full HarbourOS configuration to a JSON file and restore it on a fresh install.

New Features

  • Config export - download a versioned JSON backup of all settings
  • Config restore - validate and apply a backup file, including NAS remounting
  • Backup includes: password hash, all NAS mounts, network settings, HarbourOS version
  • Backup tab in System modal
v1.0.4
Stable
December 2025

Network configuration: set hostname, configure static IP or DHCP from the web dashboard.

New Features

  • Hostname configuration - change from harbouros to any name
  • Static IP configuration - set IP, gateway, DNS from the dashboard
  • DHCP mode - switch back to automatic addressing
  • Network app in the dashboard
v1.0.3
Stable
December 2025

NAS storage management: mount and manage NFS and SMB network shares from the web UI.

New Features

  • NAS mount management - add, mount, unmount, and remove NFS/SMB shares
  • Auto-discovery of NAS devices on the local network via mDNS
  • Persistent mounts using systemd .mount and .automount units
  • SMB credential support (username/password)
  • NAS app in the dashboard with mount status cards
v1.0.2
Stable
November 2025

Self-update system: HarbourOS pulls updates from GitHub every 6 hours and applies them automatically.

New Features

  • Automatic self-update via systemd timer (every 6 hours)
  • Manual update trigger from System modal
  • Update status shown in the Updates tab (current version, last checked)
  • Safe update with rollback on failure
v1.0.1
Stable
November 2025

Plex management controls and auto-update for Plex Media Server.

New Features

  • Plex start / stop / restart from the web UI
  • Real-time Plex service status
  • Plex log viewer
  • Plex auto-update - checks and installs new versions
  • Library counts shown on the dashboard widget
v1.0.0
Stable
October 2025

Initial release - HarbourOS as a custom Raspberry Pi OS image with a web-based admin UI, Plex pre-installed, and a first-boot setup wizard.

Initial Features

  • Custom Raspberry Pi OS image based on Bookworm
  • Plex Media Server pre-installed and configured
  • Web-based admin dashboard (Flask + Gunicorn, port 8080)
  • System monitoring: CPU, RAM, temperature, disk usage
  • Service status overview (Plex, fail2ban, SSH)
  • First-boot setup wizard: set password, connect NAS, verify Plex
  • Remote install option - deploy over SSH without re-flashing
  • Docker Plex migration tool - preserves libraries, watch history, metadata
  • fail2ban pre-configured for SSH brute-force protection
  • mDNS via avahi - accessible at harbouros.local