Commit Graph

2172 Commits

Author SHA1 Message Date
Abdellatif Anaflous d6a4200b36 feat(filetransfer): allow file deletion and add user delete config option (#683)
* feat(filetransfer): allow file deletion and add user delete config option

* fix(client): make user_delete required boolean in payload

* lint.

* feat(filetransfer): add confirmation dialog for file deletion.

* feat(filetransfer): add delete file confirmation messages in multiple languages

* lint.

---------

Co-authored-by: Miroslav Šedivý <sedivy.miro@gmail.com>
2026-08-07 18:12:02 +02:00
Sadok Barbouche 30d8e1c595 feat: add ?scroll query param to set scroll sensitivity on load (#681)
Follows the same pattern as the existing ?volume param. Lets users
bake a preferred scroll sensitivity into the URL (useful for cast/embed
setups where the settings panel isn't reachable), and it's persisted
to localStorage afterwards so it sticks on future visits.

Fixes #607
2026-08-05 23:09:53 +02:00
Abdellatif Anaflous 613647c72c fix(filetransfer): allow non-admin file uploads and downloads (#679)
* fix(filetransfer): remove auth.AdminsOnly middleware wrapper from routes

* fix(filetransfer): add config option to allow non-admin users to download and upload files.

* fix(filetransfer): implement user permissions for file download and upload in client.

---------

Co-authored-by: Miroslav Šedivý <sedivy.miro@gmail.com>
2026-08-05 22:33:17 +02:00
Miroslav Šedivý e843961c37 chore: update release notes for v3.1.5, adding new features and fixes.. 2026-08-05 17:26:14 +02:00
Miroslav Šedivý 395ca1a6f6 fix: correct LegacyIsHost boolean logic (#675)
* fix: broken LegacyIsHost method.

* fix: improve LegacyIsHost logic for better access control.
v3.1.5
2026-08-05 16:28:51 +02:00
Miroslav Šedivý bce6c57b6a fix: update CORS handling to log warnings for wildcard usage and disable cors by default. (#674) 2026-08-05 16:28:42 +02:00
Miroslav Šedivý 165bf575c4 feat: add GitHub Actions workflow for building branch test images. 2026-08-04 16:15:06 +02:00
Miroslav Šedivý f0f375934a fix: update Dockerfile to correctly fetch and extract ungoogled-chromium. (#676) 2026-08-04 16:01:53 +02:00
Ruben Vereecken dafda5bd5c XInput keyboard: dispatch via XTestFakeDeviceKeyEvent (#642)
GDK3 (used by Firefox/Camoufox) selects XI2 for the seat keyboard at
startup and ignores core-protocol KeyPress events. XTestFakeKeyEvent
produces core events, so typed characters from the Neko viewer silently
never reach Firefox.

Fix: discover the "Virtual core XTEST keyboard" XInput1 device at
startup, cache it, and dispatch key events via XTestFakeDeviceKeyEvent
which goes through the XI path. Falls back to the old core XTest path
if the device isn't found.

Requires -lXi (libxi-dev at build, libxi6 at runtime).
2026-08-04 15:44:18 +02:00
Budovi dfc41f73d6 Add support for H265 encoded streams (#648)
* Add H265 support

Adds H265 as a selectable video codec with software (x265enc), VAAPI
(vah265enc), and NVENC (nvh265enc) pipeline paths in both the legacy
pipeline builder and the RTPCodec definition.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Replace legacy vaapih264enc with vah264enc

The gstreamer-vaapi plugin suite (vaapih264enc) is superseded by the va
plugin (vah264enc) in gst-plugins-bad. Switch to it and update the
parameters accordingly: CBR instead of VBR for lower-latency streaming,
key-int-max instead of keyframe-period, and target-usage instead of
quality-level.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Unify keyframe interval to 60 frames for NVENC H264/H265 encoder paths

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-04 15:16:33 +02:00
Miroslav Šedivý 827944349b fix: reduce audio jitter buffer latency (#673)
* fix: reduce audio jitter buffer latency

- Release listenersMu before dispatching samples to listeners
- Buffer Track.sample channel (size 2) with non-blocking WriteSample
- Buffer pipeline.sample channel (size 4) to unblock GStreamer thread
- Add leaky=downstream max-size-buffers=5 to audio queue to prevent burst accumulation
- Set sync=false on appsink to deliver buffers immediately without clock wait

These changes break the backpressure chain that caused the GStreamer
streaming thread to stall. When the Go scheduler has a hiccup, buffered
frames were delivered in a burst, causing the browser audio jitter buffer
to grow to ~10 seconds over time.

Fixes: #598

* fix: log message when dropping samples due to full track channel
2026-08-04 14:59:11 +02:00
Miroslav Šedivý db8452416b refactor: replace custom array search utility with slices.Contains for improved readability and performance. 2026-08-04 12:49:38 +02:00
cdxii d2ec13a236 Install Widevine for Arm64 (#660)
* chromium arm64 widevine

* brave arm64 widevine

* firefox arm64 widevine

* vivaldi arm64 widevine

* Update browser.md for arm64 drm

* add link to instruction

* add widevine-installer

* widevine base image, tools in utils, move files for chromiums

* include installer in runtime

* add runtime/widevine-installer in repo-structure
2026-08-03 13:55:42 +02:00
Miroslav Šedivý 4764dcbb05 docs: add warning about using localhost for NEKO_WEBRTC_NAT1TO1 and common WebRTC connection errors. (#672) 2026-07-31 15:01:03 +02:00
Miroslav Šedivý c804b1ac24 docs: add single-user setup section to UI customization (#671) 2026-07-31 14:28:41 +02:00
Miroslav Šedivý 81deea72fb docs: add warning about persistent profile volume and session management for Firefox (#670) 2026-07-31 14:28:30 +02:00
Miroslav Šedivý e6239d6a51 feat: update video encoding to use nvautogpuh264enc for NVIDIA driver 590+ support. (#667) 2026-07-31 14:28:19 +02:00
Miroslav Šedivý baf6eee8a9 fix: prevent overriding video pipelines with legacy settings. (#666) 2026-07-31 14:28:06 +02:00
Miroslav Šedivý 3bb1959a55 feat: sync clipboard on window focus. (#662) 2026-07-31 14:27:48 +02:00
Miroslav Šedivý 97b0513e89 docs: enhance build instructions with custom Docker image guidance (#665) 2026-07-31 11:34:48 +02:00
Miroslav Šedivý 2f9c20bb97 docs: add Brave singleton lock fix to troubleshooting (closes #609) (#663) 2026-07-31 11:34:20 +02:00
Miroslav Šedivý b1a4055228 docs: add Safari not-available section with Apple TOS note (closes #634) (#664) 2026-07-31 11:34:02 +02:00
Miroslav Šedivý a257b75304 fix: disable CommandLineFlagSecurityWarnings in policies for multiple browsers. (#668) 2026-07-31 11:14:53 +02:00
Miroslav Šedivý 98e5d0a685 docs: update developer guide with build instructions and add local development setup. (#661) 2026-07-30 17:08:21 +02:00
ycsi d74052bb84 feat: auto focus displayname (#654) 2026-06-14 08:05:10 +02:00
Miroslav Šedivý 2c124c506e Upgrade go dependencies (#644)
* update pion WebRTC from v3 to v4.

* update mapstructure dependency to use go-viper version.

* update go-chi dependency to v5.
2026-04-25 15:20:43 +02:00
Miroslav Šedivý fdb0be3426 add scam warning alert to homepage. 2026-04-17 21:28:12 +02:00
Miroslav Šedivý 2e28ec5c5a Add latest version check and update logic for GHCR workflows (#637)
* feat: add latest version check and update logic for GHCR workflows.

* feat: implement latest version checks in GHCR workflows and update related logic.
v3.1.4
2026-04-10 10:59:40 +02:00
Miroslav Šedivý a545115156 fix regression #639, #638. 2026-04-10 10:58:34 +02:00
Miroslav Šedivý c9b184c1ae update docker compose. 2026-04-10 10:19:27 +02:00
Miroslav Šedivý dbc22063ae go mod tidy. v3.1.3 2026-04-08 15:27:49 +02:00
Miroslav Šedivý 920c34bbe8 update dependencies in go.mod and go.sum. 2026-04-08 15:19:03 +02:00
Miroslav Šedivý a4f1cfbe0d refactor: standardize constant names and improve goroutine handling across multiple files. 2026-04-08 15:16:47 +02:00
Miroslav Šedivý 79e498090d chore: upgrade Go version to 1.25. 2026-04-08 14:59:31 +02:00
Miroslav Šedivý c54bcf1ee2 fix(api): update profile handling to ensure only the name field is modified. v3.1.2 2026-04-06 20:41:07 +02:00
Miroslav Šedivý 716c60af28 remove support for linux/arm/v7. v3.1.1 2026-04-02 15:33:37 +02:00
Miroslav Šedivý a597d44680 Upgrade to debian trixie (#581)
* move flavored bookworm dockerfile to a new trixie dockerfile.

* fix opera openbox selector.

* fix remmina dependencies.

* remove chromium explicit bookworm source.

* Update apps to work with trixie (#624)

Co-authored-by: yesBad <me@bad.cash>

* remove SYS_ADMIN capability requirement for Chromium-based Docker images and update documentation accordingly.

* fix chromium package.

* change uBlock Origin to uBlock Origin Lite.

* restore waterfox in build matrix for GHCR workflows.

---------

Co-authored-by: Bad <87938689+yesBad@users.noreply.github.com>
Co-authored-by: yesBad <me@bad.cash>
v3.1.0
2026-04-02 15:12:21 +02:00
Miroslav Šedivý a2f5f7ec79 feat(docs): add related projects section and VRChat streaming integration. 2026-03-14 20:36:13 +01:00
Miroslav Šedivý f84740f6da replace discord join link. 2026-03-08 12:32:23 +01:00
Dark 6c743c9c73 fix(i18n): Complete and standardize all locale translations (#549)
- Added missing translation keys across all language files
- Completed file_transfer lock translations for all locales
- Added missing control section translations (has/hasnot)
- Fixed inconsistent translations and improved accuracy
- Ensured all locale files match the English key structure
- Corrected grammar errors and typos in various languages
- Added broadcast_title, reconnecting, kicked translations
- Standardized translation quality across all supported languages

Languages updated: zh-cn, es-sp, fr-fr, de-de, ja-jp, ko-kr, ru-ru,
fi-fi, sv-se, nb-no, sk-sk
2026-02-17 17:08:50 +01:00
Hani bc19ab866f feat(client): add microphone passthrough button to controls toolbar (#620)
* feat(client): add microphone passthrough button to controls toolbar

Add mic toggle button to the bottom controls bar that enables users to
share their local microphone with the remote neko session via WebRTC.

The server already supports microphone capture (capture.microphone.enabled)
but the legacy client had no UI to trigger getUserMedia and send an audio
track to the peer connection.

Changes:
- base.ts: Add enableMicrophone/disableMicrophone methods that call
  getUserMedia and addTrack/removeTrack on the RTCPeerConnection.
  Mic is cleaned up automatically on disconnect.
- controls.vue: Add mic button (fa-microphone/fa-microphone-slash) between
  play/pause and volume controls with tooltip and error handling.
- en-us.ts: Add i18n strings for mic tooltips and error dialog.

* if the error is not io.EOF, log it. Otherwise, it's a normal closure of the track.

* tie microphone to active host and auto-disable on control loss

---------

Co-authored-by: h1n054ur <admin@haniumer.com>
Co-authored-by: Miroslav Šedivý <sedivy.miro@gmail.com>
2026-02-17 17:02:51 +01:00
Bad 902c849f22 Add vlc-plugin-skins2 to VLC (#623)
Without this you cannot use custom themes.


PS; Should move neko/apps/vlc to -> neko-apps/vlc
2026-02-17 00:05:30 +01:00
Miroslav Šedivý 3f42ad9e78 fix build script --no-cache. v3.0.10 2026-01-24 11:25:06 +01:00
4g0tt3nSou1 c11e7f35b9 Clarify authentication module implementation status (#617)
* Clarify authentication module implementation status

Added a note regarding the implementation status of LDAP, OIDC, and other subsystems.

* use warning box.

---------

Co-authored-by: Miroslav Šedivý <sedivy.miro@gmail.com>
2026-01-24 10:47:42 +01:00
LDwise 76051c47d9 fix(server): include path prefix in legacy API calls (#615) (#618)
Resolves 404 errors by correctly routing legacy requests when a path
prefix is configured.
2026-01-24 10:43:28 +01:00
Miroslav Šedivý 7624bbb6c1 fix again opera build.
it seems that the latest opera build is not the latest chromium version anymore and thats why ffmpeg is not compatible with the current version.
v3.0.9
2025-12-09 11:16:21 +01:00
Miroslav Šedivý 552e6225cf fix opera build.
the latest release does not contain linux package, only mac. we need to swtch from taking the latest version to getting last 10 versions, looping through them and see which one actually has linux package.
2025-10-20 09:52:58 +02:00
Miroslav Šedivý ddd5ebfc2c change heartbeat interval from 120 to 10 seconds. #585 2025-09-24 21:00:55 +02:00
Iskierek100 341bbc296b Add Polish (pl) translation (#582)
* Create pl-pl.ts

* Update index.ts

* Update client/src/locale/index.ts

---------

Co-authored-by: Miroslav Šedivý <sedivy.miro@gmail.com>
2025-09-18 20:16:37 +02:00
Miroslav Šedivý 3a6b961c8a ungoogle even more. 2025-09-16 21:33:36 +02:00