chore: bump version to 3.5.56 [version-bump]

This commit is contained in:
github-actions[bot]
2026-08-23 13:27:37 +00:00
parent f354e83a14
commit b08762b2df
21 changed files with 40 additions and 32 deletions
+8
View File
@@ -1,5 +1,12 @@
## [Unreleased]
### Changed
- _(none yet)_
---
## [3.5.56] — 2026-08-23
### Fixed
- **Relay pair timeout when the target is `connType=tcp` but still heartbeats on UDP (#382):** TCP `RegisterPk` (logged-in GUI) stamped `ConnTCP` and later UDP heartbeats did not restore `ConnUDP`. PunchHole/RequestRelay then called `sendToPeer`, which ignored `UDPAddr` and dropped the message (`TCPConn` is never set). The initiator connected to relay; the target never did. Delivery now prefers UDP when `UDPAddr` is set, heartbeats restore `ConnUDP` (without overriding WebSocket), and `"forwarded"` is logged only when a transport accepted the message. Ships via panel update (Go signal restart). Verify: WAN session to a logged-in native target reaches `[relay] Pair established`; server log shows PunchHole/RequestRelay forwarded; no `Pair timeout` for that UUID.
- **Registration notifications in UX 3.5:** Pending LAN and managed enrollment requests now update the global badge, appear in the topbar notification center, and refresh the registrations page without opening the tab. The panel event stream has a polling fallback and remains restricted to users with `enrollment.approve`.
@@ -3055,3 +3062,4 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
[3.5.53]: https://github.com/UNITRONIX/BetterDesk/compare/v3.5.52...v3.5.53
[3.5.54]: https://github.com/UNITRONIX/BetterDesk/compare/v3.5.53...v3.5.54
[3.5.55]: https://github.com/UNITRONIX/BetterDesk/compare/v3.5.54...v3.5.55
[3.5.56]: https://github.com/UNITRONIX/BetterDesk/compare/v3.5.55...v3.5.56
+1 -1
View File
@@ -58,7 +58,7 @@ FROM node:22.23.2-alpine3.24
LABEL maintainer="UNITRONIX"
LABEL description="BetterDesk — All-in-One (Go Server + Node.js Console)"
LABEL version="3.5.55"
LABEL version="3.5.56"
# Install runtime packages (retry for transient DNS failures)
RUN apk add --no-cache \
+1 -1
View File
@@ -28,7 +28,7 @@ FROM node:22.23.2-alpine3.24
LABEL maintainer="UNITRONIX"
LABEL description="BetterDesk Console - Web Management Panel"
LABEL version="3.5.55"
LABEL version="3.5.56"
WORKDIR /app
+1 -1
View File
@@ -34,7 +34,7 @@ FROM alpine:3.22
LABEL maintainer="UNITRONIX"
LABEL description="BetterDesk Server - RustDesk-compatible signal + relay"
LABEL version="3.5.55"
LABEL version="3.5.56"
RUN apk add --no-cache \
ca-certificates \
+1 -1
View File
@@ -9,7 +9,7 @@
![License](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)
![Go](https://img.shields.io/badge/Go-1.21+-00ADD8.svg)
![Node.js](https://img.shields.io/badge/Node.js-18+-339933.svg)
![Version](https://img.shields.io/badge/version-3.5.55-brightgreen.svg)
![Version](https://img.shields.io/badge/version-3.5.56-brightgreen.svg)
![Security](https://img.shields.io/badge/Security-TLS%20%2B%20NaCl%20%2B%20TOTP%20%2B%20E2EE-green.svg)
![Database](https://img.shields.io/badge/DB-SQLite%20%2B%20PostgreSQL-blue.svg)
![CDAP](https://img.shields.io/badge/CDAP-v1.0-orange.svg)
+1 -1
View File
@@ -1 +1 @@
3.5.55
3.5.56
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "betterdesk-desktop"
version = "3.5.55"
version = "3.5.56"
edition = "2021"
description = "Independent BetterDesk Desktop operator client"
license = "AGPL-3.0-only"
+1 -1
View File
@@ -1,7 +1,7 @@
name: betterdesk_desktop
description: Independent BetterDesk Desktop operator client.
publish_to: "none"
version: 3.5.55+1
version: 3.5.56+1
environment:
sdk: ">=3.4.0 <4.0.0"
+2 -2
View File
@@ -1,7 +1,7 @@
#!/bin/bash
#===============================================================================
#
# BetterDesk Console Manager v3.5.55
# BetterDesk Console Manager v3.5.56
# All-in-One Interactive Tool for Docker
#
# Features:
@@ -28,7 +28,7 @@
set -e
# Version
VERSION="3.5.55"
VERSION="3.5.56"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Default paths (can be overridden by environment variables)
+1 -1
View File
@@ -1 +1 @@
3.5.55
3.5.56
@@ -1 +1 @@
3.5.55
3.5.56
+2 -2
View File
@@ -1,7 +1,7 @@
#Requires -RunAsAdministrator
<#
.SYNOPSIS
BetterDesk Console Manager v3.5.55 - All-in-One Interactive Tool for Windows
BetterDesk Console Manager v3.5.56 - All-in-One Interactive Tool for Windows
.DESCRIPTION
Features:
@@ -110,7 +110,7 @@ param(
# Configuration
#===============================================================================
$script:VERSION = "3.5.55"
$script:VERSION = "3.5.56"
$script:ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
# Auto mode flags
+2 -2
View File
@@ -1,7 +1,7 @@
#!/bin/bash
#===============================================================================
#
# BetterDesk Console Manager v3.5.55
# BetterDesk Console Manager v3.5.56
# All-in-One Interactive Tool for Linux
#
# Features:
@@ -36,7 +36,7 @@
set -e
# Version
VERSION="3.5.55"
VERSION="3.5.56"
# Bump when installer control-flow changes must apply mid-session after Update (#219).
BETTERDESK_SH_REVISION="20260725-console-start-306"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+3 -3
View File
@@ -34,7 +34,7 @@
services:
server:
image: ghcr.io/unitronix/betterdesk-server:${BETTERDESK_IMAGE_TAG:-3.5.55}
image: ghcr.io/unitronix/betterdesk-server:${BETTERDESK_IMAGE_TAG:-3.5.56}
container_name: betterdesk-server
hostname: betterdesk-server
command: ["/usr/local/bin/betterdesk-server", "-mode", "all", "-api-port", "21114", "-key-file", "/opt/rustdesk/id_ed25519"]
@@ -76,7 +76,7 @@ services:
start_period: 60s
console:
image: ghcr.io/unitronix/betterdesk-console:${BETTERDESK_IMAGE_TAG:-3.5.55}
image: ghcr.io/unitronix/betterdesk-console:${BETTERDESK_IMAGE_TAG:-3.5.56}
container_name: betterdesk-console
# Shares server network stack — panel and RustDesk ports use MACVLAN_IPV4.
network_mode: service:server
@@ -116,7 +116,7 @@ services:
- PGID=${PGID:-10001}
- BETTERDESK_UPDATE_MODE=image
- BETTERDESK_DOCKER_LAYOUT=split
- BETTERDESK_IMAGE_TAG=${BETTERDESK_IMAGE_TAG:-3.5.55}
- BETTERDESK_IMAGE_TAG=${BETTERDESK_IMAGE_TAG:-3.5.56}
- TZ=${TZ:-UTC}
depends_on:
# service_started (not healthy): avoids deadlock with auth.db on first boot (#138, #186).
+2 -2
View File
@@ -32,7 +32,7 @@
services:
betterdesk:
image: ghcr.io/unitronix/betterdesk:${BETTERDESK_IMAGE_TAG:-3.5.55}
image: ghcr.io/unitronix/betterdesk:${BETTERDESK_IMAGE_TAG:-3.5.56}
container_name: betterdesk
hostname: betterdesk
volumes:
@@ -59,7 +59,7 @@ services:
- PGID=${PGID:-10001}
- BETTERDESK_UPDATE_MODE=image
- BETTERDESK_DOCKER_LAYOUT=single
- BETTERDESK_IMAGE_TAG=${BETTERDESK_IMAGE_TAG:-3.5.55}
- BETTERDESK_IMAGE_TAG=${BETTERDESK_IMAGE_TAG:-3.5.56}
- AUTH_DB_PATH=/app/data/auth.db
- INIT_ADMIN_USER=${ADMIN_USERNAME:-admin}
- INIT_ADMIN_PASS=${ADMIN_PASSWORD:-}
+4 -4
View File
@@ -5,7 +5,7 @@
# Go server + Node.js console in one container (recommended for all deployments).
#
# Image tag (aligned with CHANGELOG / git tag):
# Default: 3.5.55 | Rolling: BETTERDESK_IMAGE_TAG=latest
# Default: 3.5.56 | Rolling: BETTERDESK_IMAGE_TAG=latest
#
# Usage (automated — recommended):
# curl -fsSL https://raw.githubusercontent.com/UNITRONIX/BetterDesk/main/install.sh | sudo bash
@@ -15,7 +15,7 @@
# docker compose pull && docker compose up -d
#
# Pin a specific release:
# BETTERDESK_IMAGE_TAG=3.5.55 docker compose up -d
# BETTERDESK_IMAGE_TAG=3.5.56 docker compose up -d
#
# Web Console: http://localhost:5000
# RustDesk client API: http://localhost:21121 (Go server — all-in-one default port)
@@ -35,7 +35,7 @@
services:
betterdesk:
image: ghcr.io/unitronix/betterdesk:${BETTERDESK_IMAGE_TAG:-3.5.55}
image: ghcr.io/unitronix/betterdesk:${BETTERDESK_IMAGE_TAG:-3.5.56}
container_name: betterdesk
hostname: betterdesk
ports:
@@ -78,7 +78,7 @@ services:
- PGID=${PGID:-10001}
- BETTERDESK_UPDATE_MODE=image
- BETTERDESK_DOCKER_LAYOUT=single
- BETTERDESK_IMAGE_TAG=${BETTERDESK_IMAGE_TAG:-3.5.55}
- BETTERDESK_IMAGE_TAG=${BETTERDESK_IMAGE_TAG:-3.5.56}
- DB_TYPE=${DB_TYPE:-sqlite}
- DATABASE_URL=${DATABASE_URL:-}
- DB_URL=${DATABASE_URL:-}
+3 -3
View File
@@ -38,7 +38,7 @@
services:
# BetterDesk Server (Go) — handles signal, relay, and API
server:
image: ghcr.io/unitronix/betterdesk-server:${BETTERDESK_IMAGE_TAG:-3.5.55}
image: ghcr.io/unitronix/betterdesk-server:${BETTERDESK_IMAGE_TAG:-3.5.56}
container_name: betterdesk-server
hostname: betterdesk-server
command: ["/usr/local/bin/betterdesk-server", "-mode", "all", "-api-port", "21114", "-key-file", "/opt/rustdesk/id_ed25519"]
@@ -96,7 +96,7 @@ services:
# BetterDesk Console — Web Management Interface
console:
image: ghcr.io/unitronix/betterdesk-console:${BETTERDESK_IMAGE_TAG:-3.5.55}
image: ghcr.io/unitronix/betterdesk-console:${BETTERDESK_IMAGE_TAG:-3.5.56}
container_name: betterdesk-console
hostname: betterdesk-console
ports:
@@ -136,7 +136,7 @@ services:
- PGID=${PGID:-10001}
- BETTERDESK_UPDATE_MODE=image
- BETTERDESK_DOCKER_LAYOUT=split
- BETTERDESK_IMAGE_TAG=${BETTERDESK_IMAGE_TAG:-3.5.55}
- BETTERDESK_IMAGE_TAG=${BETTERDESK_IMAGE_TAG:-3.5.56}
networks:
- betterdesk-net
depends_on:
+1 -1
View File
@@ -8,7 +8,7 @@ set -e
echo "========================================"
echo " BetterDesk Console - Container Startup"
echo " Version: ${BETTERDESK_IMAGE_VERSION:-3.5.55} (Node.js)"
echo " Version: ${BETTERDESK_IMAGE_VERSION:-3.5.56} (Node.js)"
echo "========================================"
# Public Docker examples use ADMIN_*; the Node.js console seeds from DEFAULT_ADMIN_*.
+1 -1
View File
@@ -9,7 +9,7 @@ ensure_betterdesk_user
echo "========================================"
echo " BetterDesk All-in-One Container"
echo " Version: ${BETTERDESK_IMAGE_VERSION:-3.5.55}"
echo " Version: ${BETTERDESK_IMAGE_VERSION:-3.5.56}"
echo "========================================"
echo ""
echo "Components:"
+2 -2
View File
@@ -18,7 +18,7 @@
# --docker | --native Installation mode (default: docker)
# --split Legacy two-container layout (server + console images)
# --install-dir PATH Install directory (default: /opt/betterdesk)
# --version TAG Docker image tag / release baseline (default: 3.5.55)
# --version TAG Docker image tag / release baseline (default: 3.5.56)
# --branch BRANCH Git branch for native install (default: this installer channel)
# --relay-mode auto|local|public Relay auto-detection strategy
# --relay-servers IP[:port] Fixed relay address (overrides --relay-mode)
@@ -46,7 +46,7 @@ BETTERDESK_REPO="${BETTERDESK_REPO:-UNITRONIX/BetterDesk}"
# --branch / BETTERDESK_BRANCH. Flip to "main" when releasing this file on main.
BETTERDESK_INSTALLER_CHANNEL="dev"
BETTERDESK_BRANCH="${BETTERDESK_BRANCH:-$BETTERDESK_INSTALLER_CHANNEL}"
BETTERDESK_VERSION="${BETTERDESK_VERSION:-3.5.55}"
BETTERDESK_VERSION="${BETTERDESK_VERSION:-3.5.56}"
BETTERDESK_RAW_BASE="${BETTERDESK_RAW_BASE:-https://raw.githubusercontent.com/${BETTERDESK_REPO}/${BETTERDESK_BRANCH}}"
INSTALL_DIR="${INSTALL_DIR:-/opt/betterdesk}"
INSTALL_MODE="docker"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "betterdesk-console",
"version": "3.5.55",
"version": "3.5.56",
"description": "BetterDesk Console - Professional Web Management Panel for BetterDesk Server",
"main": "server.js",
"scripts": {