49 Commits
Author SHA1 Message Date
euzuandGitHub fa5d3237f1 added docker ulimits, .env support, ptt fix (#867)
- **New Features**
  - Added automatic `.env` loading for secrets and environment variables, with custom file paths and existing-environment precedence.
  - Added a `--env-file` option and a sample environment configuration template.
  - Increased Docker file descriptor limits for improved reliability under high connection counts.

- **Bug Fixes**
  - Fixed title parsing for multi-byte UTF-8 characters, preventing crashes and incorrect volume extraction.

- **Documentation**
  - Added guidance for `.env` configuration, Docker usage, restart requirements, and resolving file descriptor exhaustion.
2026-09-15 12:51:09 +02:00
euzuandGitHub 9ec775b35b Feature/multi crate (#837)
Refactored to multi crate project
2026-08-27 15:36:23 +02:00
euzuandGitHub 16d32d1298 DVR Feature (#819)
feat: complete DVR and improve streaming, security, configuration, and UI

Complete the Digital Video Recorder subsystem and add a broad set of
reliability, security, streaming, configuration, processing, and Web UI
improvements across Tuliprox.

DVR:

* complete live recording and provider-aware VOD download support
* add recording queue, workers, scheduling, and recurring recording rules
* add conflict detection and capacity-aware scheduling
* add pause, resume, retry, edit, cancel, and delete workflows
* add recording quotas and configurable retention policies
* add crash recovery and startup reconciliation
* add durable lifecycle notifications with per-channel retries
* add DVR health monitoring and diagnostic tooling
* add secure access to recordings, thumbnails, and subtitles
* add WebSocket notifications for recording and rule changes
* add Web UI management for recordings, rules, progress, and task state
* add RBAC, configuration, documentation, and i18n support

Streaming and HLS:

* fix shared-stream idle handling and release dead provider streams correctly
* stop tee streams when both client and cache consumers are gone
* cancel provisioning probes when client streams terminate
* fix transient HLS origin work accounting and intermittent 503 responses
* make stream buffer byte limits configurable
* make shared subscriber idle timeout configurable
* make initial HLS manifest wait timeout configurable
* add configurable TS chunk packet count
* add configurable HLS refresh failure backoff
* centralize redirect limits and retry jitter handling
* improve provider DNS refresh behavior and failover tuning
* preserve UTF-8 characters in catchup templates
* improve stream history validation and persistence error handling

Security:

* use constant-time credential comparisons
* harden library and media path handling against traversal and symlink escapes
* only trust forwarded client IP headers from configured trusted proxies
* redact credentials and sensitive URL data from logs
* reject invalid authentication status-code configuration
* deny users with unresolved plans or invalid content filters
* improve authentication error handling across proxy and HLS endpoints

Configuration and reliability:

* prevent invalid api-proxy.yml reloads from terminating the running server
* fully validate API proxy configuration before persisting changes
* log configuration and EPG cleanup failures instead of silently discarding them
* keep the last valid configuration active after failed hot reloads
* align backend and shared media-server validation
* remove duplicated path and normalization logic
* improve DNS-store recovery and Windows rename fallback handling
* reject invalid duration, timestamp, and numeric conversions safely
* fix playlist bouquet save error handling
* fix provider record update detection
* fix cache boundary handling
* improve startup and persistence failure diagnostics

Filtering, search, sorting, and processing:

* add field-scoped playlist explorer search
* centralize shared stream-history search field definitions
* extend the filter DSL with string, set, and numeric operators
* add EPG ID, channel number, and detected quality as filterable fields
* add filter dry-run preview API with match statistics and samples
* report filter syntax errors with line and column information
* add natural numeric-aware sorting
* add quality-aware channel deduplication
* add accent-independent deduplication
* move natural sorting and quality detection helpers into shared code
* persist explorer search-field selection across reloads

User plans and content access:

* add reusable API user plans for capability tiers
* support inherited cluster and connection limits with per-user overrides
* add plan-level and user-level content filters
* enforce content filters across Xtream, M3U, direct playback, resource access,
  stream info, short EPG, categories, and XMLTV
* add trial plans with automatic expiry and Trial status
* add plan selection and content filtering to the user editor
* add full plan management to the API configuration Web UI
* migrate the API user database to schema V7 with plan and filter persistence

Web UI and accessibility:

* add live logging console to the stats page
* improve login error handling and prevent duplicate authentication requests
* add keyboard navigation to tabs, menus, tables, and search
* add ARIA roles, labels, validation state, and live-region feedback
* add confirmation dialogs for destructive actions
* add unsaved-change warnings and Ctrl/Cmd+S shortcuts
* add loading, progress, empty, and in-flight states across views
* improve dropdown and single-selection behavior
* add clipboard and credential-copy helpers
* persist table pagination and explorer search preferences
* improve error recovery when UI context providers are unavailable
* remove multiple panic-prone unwrap and browser API paths
* replace remaining hardcoded UI strings with translation keys

Maintenance:

* resolve backend and frontend compiler and Clippy warnings
* update packages and test fixtures
* consolidate duplicated helpers and validation logic
* improve documentation for configuration, filters, plans, DVR, and REST APIs
* add and update tests for migrations, filters, deduplication, sorting,
  configuration, streaming, and accessibility behavior
2026-08-21 14:50:12 +02:00
f16c3b24c1 fix: restore Windows builds for gnu/msvc targets (#806)
* fix: restore Windows builds for gnu/msvc targets

memmap2::Advice and Mmap::advise are Unix-only; add a portable Advice stub
on non-Unix. Fix GetDiskFreeSpaceExW output pointer types and wrap the
current-process pseudo-handle in a Send newtype so sys_usage can spawn on
tokio.

Co-authored-by: Cursor <cursoragent@cursor.com>

* windows support

* windows support

---------

Co-authored-by: MaxPain99 <maxpain99@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: euzu <euzu@proton.me>
Co-authored-by: euzu <33094714+euzu@users.noreply.github.com>
2026-07-30 18:47:16 +02:00
euzu b6c42fefc7 github ci update 2026-07-08 13:07:57 +02:00
euzu 42590e27ec github ci update 2026-07-08 12:31:09 +02:00
euzuandGitHub 49573dd6b1 Feature/UI improvements (#770)
* catchup fixes

* feat(frontend): bookmarkable views via URL hash deep linking

Persist the active view to the URL hash so views are bookmarkable and
survive a page refresh. Restore the view from the hash on load, sync the
hash on navigation, and handle browser back/forward via a hashchange listener.

* feat(dev): add dev container for reproducible development

* feat(frontend): interactive multi-series metric sparklines on stats cards

* feat(frontend): aggregate status health banner with capacity breakdown

* feat(frontend): add guided empty states with hints

* chore(devcontainer): add gh CLI, dev tooling, cache volumes, and tasks

- Install GitHub CLI, git, build-essential, clang, lld, mold, jq
- Add cargo-watch, cargo-llvm-cov, cargo-deny, cargo-machete
- Persist cargo registry, target, and gh config via named volumes
- Fix volume ownership for the dev user in post-create

* chore(vscode): add tasks and launch configs for dev workflow

- tasks.json: backend/frontend dev servers, test, lint, fmt, coverage, deps checks, docs
- launch.json: CodeLLDB configs for backend and workspace tests

* a11y: add accessible labels to inputs and collapsed sidebar buttons

- Input: add aria_label prop, falling back to placeholder when no visible label
- Sidebar: pass translated hint + aria_label to collapsed-mode icon buttons

* feat(frontend): warn on unsaved config changes before page unload

* feat(frontend): handle session expiry with client-side logout

Schedule a client-side logout when the JWT expires, showing a
notification and returning the user to the login screen instead of
silently failing with 401s.

* chore(vscode): update tasks.json

* New Features

Session expiration detection with proactive logout warning
Real-time health status banner showing connectivity and provider status
Live metric sparklines for CPU, memory, and network usage
Deep-linkable views via URL hash with back/forward browser support
Enhanced empty states with guided messages across app sections

Improvements

Faster system metrics sampling (2-second intervals)
Archive and catchup-aware EPG handling for accurate program guides

* New Features

Session expiration detection with proactive logout warning
Real-time health status banner showing connectivity and provider status
Live metric sparklines for CPU, memory, and network usage
Deep-linkable views via URL hash with back/forward browser support
Enhanced empty states with guided messages across app sections

Improvements

Faster system metrics sampling (2-second intervals)
Archive and catchup-aware EPG handling for accurate program guides
2026-06-04 18:00:37 +02:00
knylbyteandGitHub 81ca391ac4 feat: add per-user output clusters (#722)
add per-user output clusters
2026-04-21 19:45:53 +02:00
euzu 26232aa5be tag after dev build 2026-04-16 14:48:54 +02:00
euzuandGitHub ba16a66c2b Feature/stream history (#718)
* stream history refactoring
* tag develop after build
2026-04-16 14:40:38 +02:00
euzuandGitHub 9ce3e7a313 Feature/download (#700)
- Download manager
- Stream history fixes
- Stream history docs updated
2026-04-03 16:23:15 +02:00
euzu 6dbd0d2658 Merge remote-tracking branch 'github/master' into develop 2026-04-02 20:10:34 +02:00
euzuandGitHub 6c32deb4c3 Stream History (#667)
Stream history qos
2026-04-02 20:03:49 +02:00
euzuandGitHub 7c85d5f7f2 Release/v3.3.0 (#699)
Release/v3.3.0
2026-04-02 14:31:53 +02:00
euzuandGitHub f08c75f9c0 Release v3.3.0
Release v3.3.0
2026-04-02 14:09:21 +02:00
euzu 28d7b5d957 release-pr.yml 2026-04-02 14:05:15 +02:00
euzuandGitHub 8929942b10 fix reset workspace version to 3.2.180 (#695)
Release v3.3.0
2026-04-02 13:41:22 +02:00
euzu 4aaea6869c master release ci pipe 2026-04-02 12:18:19 +02:00
euzu 5ddf3e86de master release ci pipe 2026-04-02 12:05:29 +02:00
euzu edd50a0eb5 master push triggers release 2026-04-02 11:13:26 +02:00
euzuandGitHub d31c05463e refactored documentation (#645)
* refactored documentation
2026-03-15 10:15:08 +01:00
euzu fcfc86a28a version inc fixed 2026-03-13 15:30:05 +01:00
euzuandGitHub 9b742997b0 initial setup (#601)
Initial Setup Wizard
2026-02-23 11:46:21 +01:00
euzuandGitHub 7b8bdaa49b Feature/stream probe (#585)
Stream probe
2026-02-14 17:52:35 +01:00
Marco FranssenandGitHub 3958ff5f12 Markdownlint (#584)
* Fix all markdownlint errors on README.md

* Add markdownlint to ci and makefile

* Fix all markdownlint errors on CHANGELOG.md

* Fix all markdownlint errors on CONTRIBUTING.md

* Fix all markdownlint errors on TODO.md

* Fix all markdownlint errors on docker/README.md

* Fix all markdownlint errors on docker/debug/HOWTO.md

* Fix all markdownlint errors on .github/ISSUE_TEMPLATE/bug_report.md

* Remove TODO.md
2026-02-14 15:13:11 +01:00
euzuandGitHub 38813bb672 Feature/makefile ci and log with local time (#582)
- Add Makefile to simplify installing required tools
- Add CONTRIBUTING.md welcome new contributors
- Add fmt, lint, test tasks to makefile and update CONTRIBUTING.md
- Add CI workflow
-  Log with local date
2026-02-14 12:12:59 +01:00
euzuandGitHub 6a3e446883 Update docker-build.yml
Reverted build changes for image pushing
2026-01-27 09:42:18 +01:00
euzuandGitHub 9196892d6c Update docker-build.yml
Added GITHUB_IO_TOKEN for pushing images
2026-01-27 09:13:05 +01:00
knylbyteandGitHub 59297a8185 feat: set patch version and create major or minor releases full automatically (#542)
set version automatically during builds
2026-01-27 00:16:40 +01:00
euzuandGitHub b65dd284b4 Update trunk installation command with RUSTFLAGS 2025-11-13 14:43:53 +01:00
euzuandGitHub 4f13a5ec7f Update docker-build.yml 2025-10-02 12:11:26 +02:00
euzuandGitHub 110391b836 Update docker-build.yml
try to fix dev build
2025-10-02 11:47:34 +02:00
euzuandGitHub dceda1f4ee Update docker-build.yml
fixing version for cross images
2025-10-01 18:51:23 +02:00
GoldyandGitHub 1ca352bc83 Update docker-build.yml 2025-08-19 00:47:01 +02:00
GoldyandGitHub 8a19192881 Update docker-build.yml 2025-08-19 00:33:38 +02:00
GoldyandGitHub 4945c8f268 only install ffmpeg if no cache 2025-08-19 00:28:00 +02:00
GoldyandGitHub 74a8fb9a1f test cache 2025-08-19 00:21:07 +02:00
GoldyandGitHub a827f7ef7b fix workflow 2025-08-18 23:58:22 +02:00
Goldy 529c8889f6 Install ffmpeg in GitHub Actions workflow and update build script to handle resource creation failures gracefully 2025-08-17 18:30:14 +02:00
Goldy 9670e31aca Enhance Docker build workflow and script for improved caching and resource management
- Updated caching strategy in the GitHub Actions workflow to include additional paths and keys for cargo tools, dependencies, and frontend resources.
- Modified the build script to check if resources are already built before executing the build process, improving efficiency.
- Implemented cache handling for frontend builds and cross-compilation tools to optimize build times.
- Adjusted Dockerfile to improve layer caching by copying dependency files first and creating dummy source files for pre-building dependencies.
2025-08-17 18:04:37 +02:00
Goldy 2b514ff1eb Enhance Docker build workflow to create and utilize a multi-platform builder with Buildx 2025-08-17 16:53:49 +02:00
Goldy 7b3a620bd1 Update Docker build workflow to set up QEMU and specify platforms for Buildx 2025-08-17 16:30:58 +02:00
Goldy c9781f077b Update Docker build workflow to include WebAssembly target in Rust installation 2025-08-17 15:50:49 +02:00
Goldy b89957fd41 Enhance Docker build workflow with caching for cargo tools and registry 2025-08-17 15:46:13 +02:00
Goldy ee52d65667 Make build script executable in Docker workflow 2025-08-17 15:41:50 +02:00
Goldy 350aa6319e Refactor Docker build workflow to consolidate jobs and improve caching
- Merged master and develop build jobs into a single `docker-build` job.
- Updated steps for installing Rust and caching cargo registry.
- Introduced a new script `build_docker.sh` for building and pushing Docker images.
- Removed obsolete scripts `build_github_docker_aarch64.sh` and `build_github_docker_beta.sh`.
2025-08-17 15:34:08 +02:00
Goldy 959dc79a97 Update trunk version in Docker build workflow to v0.21.14 2025-08-17 15:06:36 +02:00
Goldy 7b0601127c Add GitHub Actions workflow for Docker build and push 2025-08-17 14:58:00 +02:00
euzuandGitHub 7c259e35f5 Update issue templates 2021-10-09 15:23:16 +02:00