🎉 ThinLine Radio v7.0 Beta 2
Release Date: December 28, 2024
⚠️ Breaking Changes
MySQL/MariaDB Support Removed - PostgreSQL is now the only supported database backend. See the migration guide if you're upgrading from MySQL/MariaDB.
🚀 What's New in Beta 2
Build System Fixes
Fixed missing Angular component files that were accidentally excluded from the Git repository
Users building from source will no longer encounter the config-sync component error
Updated .gitignore to only ignore root-level config-sync folder
Email & Configuration
Re-added SMTP email support alongside existing Mailgun and SendGrid providers
Full TLS/SSL encryption support
Admin UI configuration for SMTP host, port, username, password
Option to skip certificate verification for self-signed certificates
Fixed SMTP configuration not saving properly in admin panel
Interactive Setup Wizard
Added comprehensive first-run setup wizard for easy installation
Automatically detects if PostgreSQL is installed locally
Guides users through PostgreSQL installation with platform-specific instructions
Supports both local PostgreSQL setup (auto-creates database and user) and remote PostgreSQL server configuration
Generates configuration file automatically based on user inputs
Beautiful ASCII art interface with branding
Radio Reference Import Improvements
Fixed duplicate key errors during talkgroup imports
Fixed groups and tags not being created/saved during imports
Added support for updating existing talkgroups while preserving custom settings (tones, alerts, delays)
Implemented upsert logic for sites (update existing or create new based on Radio Reference ID)
Added automatic config reload after import to sync database-assigned IDs
Added support for selecting multiple talkgroup categories simultaneously
Sorted talkgroup categories alphabetically for easier navigation
Added visual separators between dropdown options for improved readability
Improved import success messaging with created/updated counts
SDRTrunk Compatibility
Fixed SDRTrunk 0.6.0 test connection compatibility issue
Removed noisy test connection logs (now handled silently)
Added detailed diagnostic logging for incomplete call data uploads
Fixed talkgroup parsing to allow talkgroup=0 for test connections
Database & Performance
Dramatically improved call search performance - 420x speed improvement!
Added composite index on callUnits table for (callId, offset)
Reduced search query execution time from 23+ seconds to ~55ms
Fixed N+1 query problem in call search where correlated subquery was performing 201 sequential scans
Especially beneficial for mobile app call history searches
Added automatic PostgreSQL sequence reset to prevent duplicate key errors
Fixed sequence detection for case-sensitive table names (userGroups, registrationCodes)
Sequences now automatically reset to MAX(id) + 1 on server startup
Prevents duplicate key violations when creating new API keys, talkgroups, groups, tags, etc.
Bug Fixes
Fixed invalid user account creation and last login dates showing "invalid date" or "1/1/2000"
Fixed SDR Trunk auto-import issue where talkgroup name field was incorrectly set to talkgroup ID instead of label
Fixed Trunk Recorder radio ID -1 (unknown radio) causing database errors
Removed Cloudflare Turnstile CAPTCHA requirement from relay server registration
Documentation
Updated all platform build scripts (Linux, Windows, macOS, FreeBSD, OpenBSD, NetBSD, Solaris)
Enhanced README with clear setup options (Interactive Wizard vs Manual)
Updated comprehensive setup and administration documentation
All distribution packages now include updated setup instructions
📦 Installation
Prerequisites
PostgreSQL 12+ (required - MySQL/MariaDB no longer supported)
FFmpeg for audio processing
Node.js 16+ (only for building from source)
Go 1.21+ (only for building from source)
Quick Start
Download the appropriate package for your platform below
Extract the archive
Run the interactive setup wizard: ./thinline-radio (it will guide you through setup)
Follow the platform-specific setup instructions in the SETUP.md file included in each package
For detailed installation and configuration instructions, see the Setup and Administration Guide.
📥 Download
Choose the appropriate package for your platform: