2400 Commits
Author SHA1 Message Date
rustdesk 56f9310ca2 blog: add RustDesk 1.5.0 WebRTC and QoS update in all locales 2026-10-15 00:41:46 +08:00
rustdeskandClaude Opus 5.5 6eb8e29990 seo: localize blog metadata and FAQ, expand llms.txt, guard blog facts in tests
Open Graph locale, JSON-LD language and the blog breadcrumb follow the
post's language, the FAQ heading is translated, and time elements use
ISO dates. llms.txt and llms-full.txt list core capabilities next to the
licensing and deployment boundaries. New tests keep FAQ answers plain
text and in step with the English, catch repeated paragraphs, overlong
meta descriptions and "prorated" upgrade wording, and a build verifier
checks the rendered blog. IndexNow no longer reports success when a
sitemap cannot be read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:38:05 +08:00
rustdeskandClaude Opus 5.5 f9ab65ef7d blog: make post claims accurate and citable, resync all translations
English posts state the licensing, upgrade, traffic, compliance and
platform facts precisely (upgrades extend to a full year rather than
being prorated, Server OSS vs proprietary Server Pro, iOS controller
only, Wayland multi-monitor since 1.4.3) while answering FAQs directly.
The ten translations are realigned paragraph by paragraph with the
English, replacing stale claims, pasted template paragraphs and
find-and-replace errors. The console guide now documents configurable
audit-log retention.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:37:56 +08:00
rustdeskandClaude Opus 5.5 1ad15e22b7 seo: bring meta descriptions into Bing's range, and add IndexNow
Bing Webmaster Tools flags meta descriptions under roughly 90-100
characters. It counts characters, so most Chinese, Japanese and Korean
pages failed even when the text read fine.

- Hand-written descriptions for the key site pages in 11 languages:
  home, pricing, support, team, the blog index and its categories. Plus
  16 docs pages whose text is too short to extend from.
- scripts/fit-meta-descriptions.mjs runs after both builds (v3/build.sh,
  deploy.sh and the docs workflow). It brings every other description to
  120-160 characters, using the page's opening sentences.
- Category descriptions now resolve for the transliterated zh/ja/ko
  slugs. Before, those pages only ever showed the generic text.
- IndexNow: the key file ships with the site from v3/public, and
  scripts/indexnow.mjs submits the live sitemaps. After deploying, each
  workflow submits its own half: the site or the docs.
- Translate the bodies of the Spanish team page and the German support
  page, which were still in English.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:07:55 +08:00
RustDesk 70338dc058 Merge pull request #639 from jamalkamaladdin/az-locale
docs(az): add Azerbaijani cookie consent translation
2026-10-10 16:56:01 +08:00
RustDesk 491eff2317 Merge pull request #573 from 21pages/rename-python-scripts
rename python filename
2026-10-08 12:40:37 +08:00
21pages 5a7155ea64 rename python filename
Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-10-08 11:46:34 +08:00
RustDesk dadbefb7cb Merge pull request #629 from 21pages/update-doc
docs: clarify self-host port usage
2026-10-05 20:01:30 +08:00
RustDesk cbef333d9c Merge pull request #642 from 21pages/control_role
docs: document privacy mode control role requirements
2026-10-05 20:01:04 +08:00
RustDesk 382d402289 Merge pull request #644 from 21pages/more-network-options
docs: document P2P options and correct self-hosted defaults
2026-10-05 20:00:51 +08:00
21pages ebbfb3acd3 docs: document P2P options and correct self-hosted defaults
Correct the UDP hole punching default and document TCP hole punching, WebRTC, and relay fallback delay across all 12 languages. Note that WebRTC requires RustDesk Server Pro 1.8.7.
2026-10-04 19:30:56 +08:00
21pages 9427c1f752 docs: document privacy mode control role requirements 2026-09-23 23:38:49 +08:00
rustdesk 6fb9f561e7 fix term again 2026-09-17 00:04:51 +08:00
RustDesk d1c0665fde Merge pull request #641 from fufesou/fix/oidc-azure-remove-unecessary-step
fix(oidc): Azure, remove unnecessary step to avoid ambiguity.
2026-09-16 10:50:08 +08:00
fufesou a074b1b1b6 fix(oidc): Azure, remove useless step
Signed-off-by: fufesou <linlong1266@gmail.com>
2026-09-15 23:07:12 +08:00
fufesou f6ee8240a5 fix(oidc): Azure, remove unnecessary step to avoid ambiguity.
Signed-off-by: fufesou <linlong1266@gmail.com>
2026-09-15 22:51:30 +08:00
rustdeskandClaude Opus 5 e9fce7d458 web: load Google Analytics only after the visitor accepts it
Analytics.astro rendered <GoogleAnalytics> whenever config.yaml carried a
measurement id, so gtag ran and the _ga cookies were set on the first page
view, before the banner was answered and whatever the visitor went on to
choose. The analytics service in the consent config was never wired up to
anything -- its onAccept was a `// TODO: load ga4` -- so consent decided
nothing either way. The privacy policy says the opposite, that cookies are
used on the basis of consent given through the banner.

Analytics.astro now only defines window.loadGoogleAnalytics, and the ga4
service calls it from onAccept, so Google is first contacted after the visitor
accepts. Rejecting leaves the loader uncalled, and the library erases the _ga
cookies it already matches.

CookieConsent.astro skipped run() once its own localStorage flag was set,
which meant the library was not initialised on any later visit -- with the
loader moved behind consent that would have left analytics permanently dead
instead of permanently on, since re-applying a stored consent is what calls
onAccept. It now runs on every page load and lets the library decide whether
to show the banner.

Consent could also not be withdrawn: the preferences modal had no trigger
anywhere on the site, and the privacy policy offered browser settings instead,
which is not a withdrawal mechanism and is not as easy as giving consent was.
The footer now links to the modal and the policy points at it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EZ49AbZJYfm8NTp5yDPMab
2026-09-15 21:02:41 +08:00
rustdeskandClaude Opus 5 16224a61e1 legal: move governing law to Singapore and close the gaps around it
Section 9 still named The Cayman Islands although the contracting entity
has been Purslane Tech Pte. Ltd. for some time, so the choice of law no
longer matched the company it was chosen for.

Changing it surfaced the rest. The Terms defined "Software" circularly and
then forbade modifying, translating and reverse engineering it, which
contradicts the AGPL the client and Server OSS are released under; Section 2
is now split so the license restrictions fall away for those parts while the
conduct restrictions -- which is where the anti-fraud rules live -- apply
however the software was obtained. Termination was immediate on any breach
however small, with no refund and an order to destroy copies that the AGPL
does not permit us to give. The warranty disclaimer was unqualified, the
liability clause had no cap to fall back on and no carve-out for liability
that cannot be excluded, and there was no effective date, so nothing recorded
which version a customer had accepted.

The Privacy Policy stopped at section 3 (d) and was missing every mandatory
disclosure under GDPR Articles 13 and 14: who the controller is and how to
reach them, who the data is shared with, where it goes, how long it is kept,
what rights the data subject has, and where to complain. It also pointed at
an "Article 4" that does not exist.

Termination, the change mechanism and the one-way jurisdiction clause follow
what AnyDesk and TeamViewer do, so the position is no weaker than theirs. The
liability cap matches Splashtop's. Payment and renewal terms are still absent
and are left for later.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EZ49AbZJYfm8NTp5yDPMab
2026-09-15 20:25:59 +08:00
Jamal dfb41340fe docs(az): fix genitive suffix and use Performans for the analytics category 2026-09-11 02:05:54 +04:00
Jamal 010e943c1c docs(az): add Azerbaijani cookie consent translation 2026-09-10 21:48:16 +04:00
RustDesk 75f98217bd Merge pull request #636 from 21pages/admin_role_control_role_scripts
docs: document admin and control role API scripts
2026-09-02 21:47:27 +08:00
21pages 91990cbf84 docs: document admin and control role API scripts
- document admin role permissions and usage
  - clarify control role protobuf limitations

Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-09-02 18:27:31 +08:00
RustDesk 54128024dc Merge pull request #635 from 21pages/update-relay-doc
docs(relay): document hbbr key configuration options
2026-08-27 09:27:09 +08:00
21pages 63497c2be6 docs(relay): document hbbr key configuration options
- add relay-only Docker Compose configuration
  - document KEY and key-file setup methods
  - clarify legacy -k _ behavior and Pro 1.8.6 changes
  - update all translations

Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-08-26 23:27:13 +08:00
rustdeskandClaude Opus 5 694bb328c5 add hide-general-settings advanced option
https://github.com/rustdesk/rustdesk-server-pro/issues/1001

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 10:44:08 +08:00
rustdesk 992d5295fd related 2026-08-17 10:37:54 +08:00
RustDesk c9c36bd8da Merge pull request #633 from fufesou/doc/remove-linux-headless
remove opt-in Linux headless support
2026-08-17 09:30:40 +08:00
fufesou 0a5ee0d3fc docs(linux): clarify pre-login and headless access guidance
Signed-off-by: fufesou <linlong1266@gmail.com>
2026-08-16 12:46:45 +08:00
fufesou e1ce0b9aed docs(zh-tw): clarify hbbs rendezvous service terminology
Signed-off-by: fufesou <linlong1266@gmail.com>
2026-08-15 22:21:01 +08:00
fufesou 0d390a8001 docs: simplify Linux headless and pre-login guidance
Signed-off-by: fufesou <linlong1266@gmail.com>
2026-08-15 22:04:19 +08:00
fufesou e60ab07b37 remove opt-in Linux headless support
Signed-off-by: fufesou <linlong1266@gmail.com>
2026-08-15 10:59:18 +08:00
rustdesk d9471c00f6 fix href reloc 2026-08-14 23:35:52 +08:00
rustdesk 2a09e9a58b new blog 2026-08-14 23:20:09 +08:00
21pages 83532b7f3c docs: clarify self-host port usage
Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-07-31 19:47:10 +08:00
RustDesk d7de5fc3e9 Merge pull request #627 from 21pages/update-doc
docs: add recording advanced settings
2026-07-30 12:04:57 +08:00
21pages 23fbacfe0b docs: add recording advanced settings
Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-07-30 11:34:08 +08:00
rustdesk 4f6c2b5217 https://github.com/rustdesk/rustdesk-server/issues/634 2026-07-21 07:08:26 +08:00
RustDesk 20b83101c9 Merge pull request #624 from 21pages/update-doc
update audit logs doc
2026-07-16 16:46:08 +08:00
21pages 8597f1d1bb update audit logs doc
Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-07-16 16:23:30 +08:00
rustdesk 20cd2eb496 id-whitelist 2026-07-14 18:46:12 +08:00
rustdesk 1a7c9a5b01 fix sitemap 2026-07-14 18:40:09 +08:00
rustdesk 5a77f04db4 fix robots 2026-07-14 17:33:00 +08:00
rustdesk 9a2c21a08f fix menu 2026-07-13 10:37:43 +08:00
rustdesk ea24a321a1 webp 2026-07-13 08:57:11 +08:00
rustdesk 193871ba5d fix link and menu 2026-07-13 08:45:38 +08:00
rustdesk e1eb623d3f mobile fix 2026-07-13 08:35:58 +08:00
rustdesk f3da420b7b og 2026-07-13 08:07:18 +08:00
RustDesk b6eb06419b Merge pull request #623 from 21pages/audit-logs-doc
add audit logs doc
2026-07-13 00:10:33 +08:00
rustdesk acb5ee36d5 blogs 2026-07-12 23:56:01 +08:00
21pages 0c1a25c602 fix review
Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-07-12 08:52:50 +08:00