Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
185 commits
Select commit Hold shift + click to select a range
b5d13c3
Fix private AI custom endpoints (#1299)
ZacharyZcR Aug 23, 2026
a4b61cc
Fix Proxmox credential guest imports (#1300)
ZacharyZcR Aug 23, 2026
780cfb5
Fix Fleet command results layout (#1301)
ZacharyZcR Aug 23, 2026
c42cd40
Fix synced client tunnel endpoints (#1302)
ZacharyZcR Aug 23, 2026
0a9086f
Fix Proxmox sync jump host persistence (#1303)
ZacharyZcR Aug 23, 2026
f1226b1
Fix command palette keyboard navigation (#1304)
ZacharyZcR Aug 23, 2026
5e76aec
Add accessible interface font choices (#1306)
ZacharyZcR Aug 23, 2026
433ede0
Add selectable host temperature sensors (#1307)
ZacharyZcR Aug 23, 2026
9ee50d6
Improve file manager navigation and compact layout (#1308)
ZacharyZcR Aug 23, 2026
cad7520
Add configurable global hotkeys (#1305)
ZacharyZcR Aug 23, 2026
ad26695
fix: restore split layout selection (#1310)
ZacharyZcR Aug 23, 2026
fa0fa7f
fix: support macOS VNC connections (#1311)
ZacharyZcR Aug 23, 2026
2675781
fix: use matching Undici fetch for private AI providers (#1309)
singhangadin Aug 23, 2026
20eca69
feat: support additional TOTP authenticators (#1312)
ZacharyZcR Aug 23, 2026
c476ef6
feat: add VNC display zoom controls (#1314)
ZacharyZcR Aug 23, 2026
b3cc66e
feat: add host context menu actions (#1315)
ZacharyZcR Aug 23, 2026
c4c9b51
fix: force classic auth for macOS VNC (#1313)
neooriginal Aug 23, 2026
30d7255
fix: harden HTTP trust boundaries (#1316)
ZacharyZcR Aug 23, 2026
2de9bb2
fix: harden application trust boundaries (#1317)
ZacharyZcR Aug 23, 2026
f0cb81c
fix: verify OPKSSH binary integrity (#1318)
ZacharyZcR Aug 23, 2026
e5ea61e
Fix remote desktop connection timeout (#1319)
ZacharyZcR Aug 24, 2026
488e3f0
chore(deps): bump node in /docker in the docker-major-updates group (…
dependabot[bot] Aug 24, 2026
cc68fe5
chore(deps-dev): bump the dev-patch-updates group with 15 updates (#1…
dependabot[bot] Aug 24, 2026
f3e09d4
chore(deps): bump the prod-patch-updates group with 5 updates (#1324)
dependabot[bot] Aug 24, 2026
fafd428
chore(deps): bump motion in the major-updates group (#1326)
dependabot[bot] Aug 24, 2026
69002e6
feat: add semantic motion system (#1320)
ZacharyZcR Aug 24, 2026
f3a1087
feat: enforce RBAC and harden collaboration features (#1327)
ZacharyZcR Aug 24, 2026
f06d540
fix: reject malformed Guacamole tokens safely (#1329)
ZacharyZcR Aug 24, 2026
d35458f
fix: allow approved private notification hosts (#1330)
ZacharyZcR Aug 24, 2026
81d79cc
feat: collaboration rooms with switchable presenter (#1328)
ZacharyZcR Aug 24, 2026
dc47c4c
fix: restore RDP clipboard paste across browsers (#1331)
ZacharyZcR Aug 24, 2026
c51c3a9
fix: show the full command line in the process inspector (#1334)
ZacharyZcR Aug 24, 2026
8260af2
fix: harden collaboration room access (#1332)
ZacharyZcR Aug 24, 2026
672f5ba
fix: make RDP drive redirection writable on the stock deployment (#1333)
ZacharyZcR Aug 24, 2026
4046088
feat: quick connect for RDP and VNC (#1335)
ZacharyZcR Aug 24, 2026
c17134a
fix: authenticate unwatched hosts during the status probe (#1337)
ZacharyZcR Aug 24, 2026
ae9cce4
feat: compact snippet list option (#1339)
ZacharyZcR Aug 24, 2026
8d0bcb3
fix: guide users to Auto-Tmux when a persisted session expires (#1336)
ZacharyZcR Aug 24, 2026
0ab7cf2
feat: improve collaboration rooms (#1338)
ZacharyZcR Aug 24, 2026
32d77fc
feat: Step CA SSH certificates as a host authentication type (#1340)
ZacharyZcR Aug 24, 2026
5f55289
feat: 1Password Connect secret sources for SSH credentials (#1341)
ZacharyZcR Aug 24, 2026
8214394
feat: share credentials with users and roles, inherit data on account…
ZacharyZcR Aug 24, 2026
302ac19
feat: folder shares apply to hosts added later (#1343)
ZacharyZcR Aug 24, 2026
f848dee
fix: package sharp for both macOS architectures (#1344)
ZacharyZcR Aug 26, 2026
6406c3a
fix: prompt shared RDP users for credentials (#1345)
ZacharyZcR Aug 26, 2026
6323459
feat: add terminal copy-on-select option (#1346)
ZacharyZcR Aug 26, 2026
19d4d91
fix: retry protected file reads with sudo (#1349)
ZacharyZcR Aug 26, 2026
ef4e666
fix: stop SSH-authenticating hosts during routine status polling (#1347)
YatoVoid Aug 26, 2026
6277d15
fix: preserve omitted host protocol settings (#1350)
ZacharyZcR Aug 27, 2026
50f1882
fix: surface remote sync reauthentication failures (#1351)
ZacharyZcR Aug 27, 2026
14d4128
fix: harden file reads and timer cleanup (#1352)
ZacharyZcR Aug 28, 2026
703e8cd
fix: enforce SSH pool connection limits (#1353)
ZacharyZcR Aug 28, 2026
c129666
fix: harden connection, payload, and persisted state handling (#1354)
ZacharyZcR Aug 28, 2026
bf67f56
fix: recover expired dashboard metrics sessions (#1355)
ZacharyZcR Aug 28, 2026
0f39ce6
fix: upload files to redirected RDP drives (#1356)
ZacharyZcR Aug 28, 2026
9a8f0ba
fix: unify connection toolbar visibility (#1357)
ZacharyZcR Aug 28, 2026
363e619
fix: reset host virtualizer after editing (#1358)
ZacharyZcR Aug 28, 2026
5582087
test: update Guacamole toolbar display mock (#1360)
ZacharyZcR Aug 28, 2026
6f387f1
fix: reflect live SSH sessions in host status (#1359)
ZacharyZcR Aug 28, 2026
0f949c5
fix: support Vault auth in file manager (#1361)
ZacharyZcR Aug 28, 2026
9706426
fix: allow exec on shared hosts (#1362)
ZacharyZcR Aug 28, 2026
24fde10
fix(file-manager): align chunked upload contract (#1371)
ZacharyZcR Aug 31, 2026
a58d775
fix(file-manager): make bulk uploads resilient (#1373)
ZacharyZcR Aug 31, 2026
629080d
fix(terminal): disable local echo on alternate screen (#1372)
ZacharyZcR Aug 31, 2026
cb49b44
fix(homepage): validate clock widget timezones (#1374)
nasif-naseef Aug 31, 2026
954bcd1
fix(hosts): preserve connection origin in editor (#1376)
ZacharyZcR Aug 31, 2026
7e1e87c
fix(remote-sync): expose local login notification (#1375)
ZacharyZcR Aug 31, 2026
ad282ed
fix(auth): allow passkeys in desktop login (#1378)
ZacharyZcR Sep 3, 2026
2208d98
fix(proxmox): elevate guest discovery commands (#1379)
ZacharyZcR Sep 3, 2026
fa7028d
Fix permanent file-transfer completion toasts (#1383)
ZacharyZcR Sep 3, 2026
c06d0f0
fix(hosts): allow clearing SSH key type (#1384)
ZacharyZcR Sep 3, 2026
ce94b96
fix(terminal): suppress local echo for contextual password prompts (#…
ZacharyZcR Sep 3, 2026
1217103
fix(desktop): surface a failed embedded backend start (#1382)
nasif-naseef Sep 3, 2026
7446939
Add white label branding settings (#1386)
neooriginal Sep 5, 2026
a615d5b
fix(backend): report port conflicts on the service ports (#1388)
nasif-naseef Sep 5, 2026
01cf915
feat(desktop): allow RDP/VNC/Telnet to originate from this device (#1…
nasif-naseef Sep 5, 2026
029b0f0
feat(local-terminal): add copy/paste support (#1391)
vietanhtwdk Sep 7, 2026
4a2b9b5
fix(file-manager): keep name column visible on narrow viewports in li…
inontz Sep 7, 2026
a445bc0
feat(desktop): local filesystem and transfer bridge for the file mana…
maxser0v Sep 9, 2026
d671e4e
chore: update package lock
LukeGus Sep 10, 2026
89bdac5
feat(file-manager): Termius-style Local | Remote dual pane with drag-…
Sep 8, 2026
467dcfe
docs: point security note to the docs root (old /security page is gon…
ssmurfgg04-gif Sep 15, 2026
d0ac13f
fix: use i18n for host status tooltip labels (#1403)
slsgzs-cloud Sep 15, 2026
d7a4088
fix(workspaces): fall back when randomUUID is unavailable (#1397)
ZacharyZcR Sep 15, 2026
b1bcf0f
fix(terminal): preserve macOS Alt digit characters (#1398)
ZacharyZcR Sep 15, 2026
e7a2c30
fix(ssh): verify resolved server host identity (#1419)
ZacharyZcR Sep 15, 2026
531ce26
fix: add principals to Termix ID certificates (#1421)
anshtsolanki-sketch Sep 15, 2026
f3a77b1
fix(deps): resolve transitive security advisories (#1412)
ZacharyZcR Sep 15, 2026
30b7c84
fix(sync): map nested host parent references (#1418)
ZacharyZcR Sep 15, 2026
68b23df
fix(metrics): surface SSH host key changes (#1404)
ZacharyZcR Sep 15, 2026
af2fcd2
fix(guacamole): coalesce VNC wheel floods and label meta keys by devi…
neooriginal Sep 15, 2026
6c1ed04
fix(file-manager): keep downloaded files inside the selected local fo…
Sep 16, 2026
61d9dd5
feat(file-manager): right-click context menu for the local pane
Sep 5, 2026
cd548c6
feat(file-manager): resizable list-view columns in both panes
Sep 5, 2026
632cc93
feat(file-manager): pinned ".." parent entry in both panes
Sep 5, 2026
6330e65
feat(file-manager): show/hide list-view columns from the header
Sep 5, 2026
5bd8f14
feat(file-manager): sidebar toggle works on desktop too
Sep 5, 2026
052fe01
feat(file-manager): resizable directories sidebar
Sep 5, 2026
45b54b7
fix(metrics): support macOS/WIN hosts in stats collection (#1430)
neooriginal Sep 16, 2026
fe60dc4
fix(file-manager): contain downloads within selected directories
ZacharyZcR Sep 16, 2026
13d2d92
fix(file-manager): integrate safe local downloads and current dev
ZacharyZcR Sep 16, 2026
ffe59c6
fix(file-manager): integrate safe local downloads and current dev
ZacharyZcR Sep 16, 2026
b17f71f
fix(file-manager): integrate safe local downloads and current dev
ZacharyZcR Sep 16, 2026
9c26824
fix(file-manager): integrate safe local downloads and current dev
ZacharyZcR Sep 16, 2026
19fd1a8
fix(file-manager): integrate safe local downloads and current dev
ZacharyZcR Sep 16, 2026
7bcf242
fix(file-manager): integrate safe local downloads and current dev
ZacharyZcR Sep 16, 2026
854abd1
feat(file-manager): Termius-style Local | Remote dual pane with drag-…
maxser0v Sep 16, 2026
8b4ded6
chore: align stacked PR ancestry with merged local pane
ZacharyZcR Sep 16, 2026
ab1f5b4
fix(terminal): persist Ctrl+/- font zoom so it survives option refres…
tcezarl Sep 16, 2026
c1221fd
Fix macOS terminal packaging and keyboard shortcuts. (#1417)
DevelopIdeas Sep 16, 2026
f3ff295
fix(auth): skip TOTP only after verified WebAuthn user verification (…
neooriginal Sep 16, 2026
37a42fc
feat(file-manager): right-click context menu for the local pane (#1414)
ZacharyZcR Sep 16, 2026
2303d55
feat(file-manager): resizable list-view columns in both panes (#1393)
ZacharyZcR Sep 16, 2026
a9e3055
feat(file-manager): pinned ".." parent entry in both panes (#1394)
ZacharyZcR Sep 16, 2026
7edd6a2
feat(file-manager): show/hide list-view columns from the header (#1395)
ZacharyZcR Sep 16, 2026
3c2418f
feat(file-manager): sidebar toggle works on desktop too (#1415)
ZacharyZcR Sep 16, 2026
9961066
feat(file-manager): resizable directories sidebar (#1396)
ZacharyZcR Sep 16, 2026
898281e
feat(hosts): add per-host Web Endpoints (direct or SSH-tunnelled web …
nasif-naseef Sep 16, 2026
af35f2d
fix(tunnel): preserve local status when remote names collide (#1431)
ZacharyZcR Sep 16, 2026
6f103db
fix(desktop): honor remote sync certificate setting (#1432)
ZacharyZcR Sep 16, 2026
1048445
fix(file-manager): interpolate preview download filename (#1433)
ZacharyZcR Sep 16, 2026
eeb1bcd
fix(automations): dispatch SSH login events to triggers (#1434)
ZacharyZcR Sep 16, 2026
74eba16
fix(hosts): preserve imported settings and remap jump hosts (#1435)
ZacharyZcR Sep 16, 2026
a33ce17
fix(ssh): preserve agent framing after unsupported extensions (#1436)
ZacharyZcR Sep 16, 2026
f4cf229
fix(guacamole): return tokens before awaiting the client handshake (#…
ZacharyZcR Sep 16, 2026
599313a
fix(sidebar): unmount the host tree while its panel is hidden (#1438)
ZacharyZcR Sep 16, 2026
db3731a
fix(terminal): leave macOS Option characters enabled by default (#1439)
ZacharyZcR Sep 16, 2026
4b3f993
fix(dashboard): open the enabled remote desktop protocol (#1440)
ZacharyZcR Sep 16, 2026
d0f61c3
fix(version): preserve local version when update checks fail (#1441)
ZacharyZcR Sep 16, 2026
f511460
fix(sftp): create uploaded directories without shell access (#1442)
ZacharyZcR Sep 16, 2026
9f63281
fix(desktop): honor explicit GPU acceleration opt-out (#1443)
ZacharyZcR Sep 16, 2026
ade04b7
fix(desktop): exclude remote-only host IDs from local tab persistence…
ZacharyZcR Sep 16, 2026
7eb5505
Enhance SFTP and terminal flows, stabilize desktop sync (#1377)
elhak Sep 17, 2026
baba408
chore: increment ver
LukeGus Sep 17, 2026
c192e9f
fix: allow any origin by default when CORS_ALLOWED_ORIGINS is unset
LukeGus Sep 17, 2026
792e61e
feat(file-manager): parallel local transfers (#1446)
maxser0v Sep 17, 2026
5a1bc24
fix(sftp): complete streamed uploads and stop pre-parsing chunk bodies
maxser0v Sep 17, 2026
0061026
fix(desktop): stop setting Content-Length on local download requests
maxser0v Sep 17, 2026
e7addb4
fix(file-manager): keep drop overlays in view when the list is scrolled
maxser0v Sep 17, 2026
ecf13b5
fix(file-manager): let remote rows be dropped on the local pane
maxser0v Sep 17, 2026
26666aa
fix(desktop): authenticate local transfers with the renderer's token
maxser0v Sep 17, 2026
6f57f35
chore: update release notes
LukeGus Sep 17, 2026
60d5bfd
chore: remove unused gitlab ci and argocd deploy configs
LukeGus Sep 17, 2026
dd3b314
chore: remove unused files
LukeGus Sep 17, 2026
38d0407
feat: improve loading animation
LukeGus Sep 17, 2026
d52c584
fix(shell): stop tab reorder from resetting terminals and tab indicator
LukeGus Sep 17, 2026
5aa48fb
fix(shell): hand-roll the tab indicator instead of a shared layoutId
LukeGus Sep 17, 2026
6316be2
fix(hosts): fix right-click menu position and unwanted tray expand
LukeGus Sep 17, 2026
1d48a52
chore: update release notes
LukeGus Sep 17, 2026
c0a4386
fix(terminal): stop autosuggestion ghost text overlapping typed input
LukeGus Sep 17, 2026
0ed4584
chore: update release notes for v2.8.0
LukeGus Sep 17, 2026
d23262e
fix(sftp): rebuild transfer tab for web, fix menu offset bug
LukeGus Sep 17, 2026
284c947
fix(file-manager): shrink oversized .. entry, navigate on single click
LukeGus Sep 17, 2026
a78a74c
fix: make select2 component use rounded corners
LukeGus Sep 17, 2026
74d84c2
fix: rebuild terminal AI assistant on the real backend
LukeGus Sep 17, 2026
76803b3
fix(file-manager): remove duplicate borders in toolbar view toggle
LukeGus Sep 18, 2026
e8741bc
fix: separate registration toggle from step ca settings
LukeGus Sep 18, 2026
9b89c83
fix: collab room bugs and add room deletion
LukeGus Sep 18, 2026
2058a3e
refactor: move host-identity helpers to hosts core
LukeGus Sep 18, 2026
c576c60
refactor: move host-session-status singleton to hosts core
LukeGus Sep 18, 2026
524e00f
refactor: split generic automation event notify out of metrics
LukeGus Sep 18, 2026
075070e
feat: add plugin system schema and repositories
LukeGus Sep 18, 2026
6c5445c
feat: add runtime rail item and tab component registries for plugins
LukeGus Sep 18, 2026
7da52a1
feat: support runtime-registered permission groups
LukeGus Sep 18, 2026
6ab95de
feat: add plugin-api nginx route and dispatcher stub
LukeGus Sep 18, 2026
b847e5d
feat: add plugin manifest schema and validator
LukeGus Sep 18, 2026
0d7c9ab
chore: update release notes
LukeGus Sep 18, 2026
e7889b1
chore: update i18n for local/remote file manager
LukeGus Sep 18, 2026
97fb831
feat: add toggle to show/hide app rail pin button
LukeGus Sep 18, 2026
3ee7cf3
feat(host-metrics): add NVIDIA GPU metrics card (#1452)
Adelzu Sep 18, 2026
7647ada
fix: annotate local transfer plan type to fix CI type-check
LukeGus Sep 18, 2026
7e24da2
fix: move connection toolbar settings to bottom of host editor genera…
LukeGus Sep 18, 2026
a13cb4f
chore: add debug logging for macOS sharp packaging failure
LukeGus Sep 18, 2026
4708bd4
fix: correct macOS sharp verify script for universal build layout
LukeGus Sep 19, 2026
8c6c038
fix: update sharp verify test fixtures for universal build layout
LukeGus Sep 19, 2026
48186e2
chore: update readme
LukeGus Sep 19, 2026
d73e138
fix: guard against missing rooms array in collab list response
LukeGus Sep 19, 2026
80cb4f2
fix: distinct guac connection log stages, RDP black screen before fai…
LukeGus Sep 19, 2026
6f749ff
fix: proxy /collab routes in nginx configs
LukeGus Sep 19, 2026
5b2c1c0
fix: stop tab-switch flash and host metrics/proxmox reconnect
LukeGus Sep 19, 2026
78fa55f
fix: tab bar flashing, growing, and merged separators
LukeGus Sep 19, 2026
84ba7b2
fix: match select trigger height to inputs in web UI editor
LukeGus Sep 20, 2026
373d75b
chore: lint, format, and bump version to 2.8.0
LukeGus Sep 20, 2026
424c162
Merge remote-tracking branch 'origin/main' into dev-2.8.0
LukeGus Sep 20, 2026
7545e57
chore: sync Crowdin translations for 2.8.0
LukeGus Sep 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
17 changes: 17 additions & 0 deletions .github/workflows/electron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,7 @@ jobs:
npm ci
npm install --force @rollup/rollup-darwin-arm64
npm install dmg-license
node scripts/install-macos-sharp.cjs

- name: Check for Code Signing Certificates
id: check_certs
Expand Down Expand Up @@ -538,6 +539,14 @@ jobs:
fi
npx electron-builder --mac dmg --universal --x64 --arm64 --publish never

- name: Verify macOS sharp packaging
run: |
artifacts=(release/termix_macos_*_dmg.dmg)
if [ -f release/termix_macos_universal_mas.pkg ]; then
artifacts+=(release/termix_macos_universal_mas.pkg)
fi
node scripts/verify-macos-sharp.cjs "${artifacts[@]}"

- name: Upload macOS MAS PKG
if: steps.check_certs.outputs.has_certs == 'true' && hashFiles('release/termix_macos_universal_mas.pkg') != '' && (inputs.artifact_destination == 'file' || inputs.artifact_destination == 'release' || inputs.artifact_destination == 'submit')
uses: actions/upload-artifact@v7
Expand Down Expand Up @@ -923,6 +932,9 @@ jobs:
echo "dmg_name=$DMG_NAME" >> $GITHUB_OUTPUT
echo "checksum=$CHECKSUM" >> $GITHUB_OUTPUT

- name: Verify macOS sharp packaging
run: node scripts/verify-macos-sharp.cjs release_asset/termix_macos_universal_dmg.dmg

- name: Prepare Homebrew submission files
run: |
VERSION="${{ steps.package-version.outputs.version }}"
Expand Down Expand Up @@ -1013,6 +1025,7 @@ jobs:
npm ci
npm install --force @rollup/rollup-darwin-arm64
npm install dmg-license
node scripts/install-macos-sharp.cjs

- name: Check for Code Signing Certificates
id: check_certs
Expand Down Expand Up @@ -1154,6 +1167,10 @@ jobs:
BUILD_VERSION="${{ steps.build_number.outputs.build_version || github.run_number }}"
npm run build && npx electron-builder --mac mas --universal --config.buildVersion="$BUILD_VERSION"

- name: Verify macOS sharp packaging
if: steps.check_certs.outputs.has_certs == 'true'
run: node scripts/verify-macos-sharp.cjs release/termix_macos_universal_mas.pkg

- name: Generate App Store release notes
id: asc_notes
if: steps.check_certs.outputs.has_certs == 'true' && steps.check_asc_creds.outputs.has_credentials == 'true'
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/helm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@ on:
paths:
- "charts/**"
- ".github/workflows/helm.yml"
- "deploy/**"
push:
branches: [main]
paths:
- "charts/**"
- ".github/workflows/helm.yml"
- "deploy/**"
workflow_dispatch:
inputs:
publish:
Expand Down
2 changes: 0 additions & 2 deletions .gitlab-ci.yml

This file was deleted.

27 changes: 9 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ Local, remote, and dynamic SOCKS forwarding with auto reconnect and health check
<td width="50%" valign="top">

**File Manager:**
Browse, edit, upload, download, rename, move, and delete files over SFTP, with sudo support. View and edit code, images, audio, and video. Copy files straight from one server to another, with the fastest route picked for you and transfers checked for integrity.
Browse, edit, upload, download, rename, move, and delete files over SFTP, with sudo support. View and edit code, images, audio, and video. Copy files straight from one server to another in a dedicated transfer tab, with the fastest route picked for you and transfers checked for integrity. The desktop app also has a side-by-side local and remote view.

</td>
</tr>
Expand All @@ -111,7 +111,7 @@ Save and organize hosts with tags and nested folders you can name and color. Reu
<td width="50%" valign="top">

**Host Metrics:**
CPU, memory, disk, network, temperature, uptime, processes, ports, logins, and system info on most Linux servers, with history graphs. Manager cards let you handle services, cron jobs, packages, users, firewall rules, WireGuard, Tailscale, SSL certs, logs, and health checks without leaving Termix.
CPU, memory, disk, network, temperature, NVIDIA GPU, uptime, processes, ports, logins, and system info on most Linux servers, with history graphs. Manager cards let you handle services, cron jobs, packages, users, firewall rules, WireGuard, Tailscale, SSL certs, logs, and health checks without leaving Termix.

</td>
<td width="50%" valign="top">
Expand Down Expand Up @@ -214,20 +214,6 @@ Save a set of tabs with their split layout and reopen the whole thing in one cli
</td>
<td width="50%" valign="top">

**Guided Setup:**
A short setup walks you through picking an interface preset, your theme, the features you want, and your first host. Simple mode hides what you do not use, and you can rerun setup or switch presets any time.

</td>
</tr>
<tr>
<td width="50%" valign="top">

**Desktop Standalone and Sync:**
The desktop app runs on its own with a local backend and database, no server needed. You can also connect it to a Termix server for two-way sync of hosts, credentials, snippets, and more, and choose whether connections start locally or through the server.

</td>
<td width="50%" valign="top">

**Command Line Interface:**
A `termix` CLI for your shell and your scripts. Open terminals, run a command on one host or a whole fleet, move files over SFTP, and manage hosts, snippets, and credentials. Install with `npm install -g @termix-cli/cli` or grab a standalone binary. See the [CLI docs](https://docs.termix.site/cli).

Expand All @@ -237,7 +223,7 @@ A `termix` CLI for your shell and your scripts. Open terminals, run a command on
<td width="50%" valign="top">

**Security:**
Passwords, keys, and other secrets are encrypted per user, and the database files themselves can be encrypted on disk. See the [docs](https://docs.termix.site/security) for how it works.
Passwords, keys, and other secrets are encrypted per user, and the database files themselves can be encrypted on disk. See the [docs](https://docs.termix.site/features/authentication/security/) for how it works.

</td>
<td width="50%" valign="top">
Expand Down Expand Up @@ -267,8 +253,13 @@ Around 30 languages built in, managed through [Crowdin](https://docs.termix.site
- **Keyboard Shortcuts** - Move between tabs, close tabs, and more, all rebindable
- **Wake-on-LAN** - Wake a machine from Termix or from an automation step
- **Trusted Proxy Auth** - Let a reverse proxy handle sign-in and pass the user through
- **SSH Feature Rich** - Jump hosts, Warpgate, TOTP prompts, SOCKS5, host key verification, password autofill, [OPKSSH](https://github.com/openpubkey/opkssh), tmux, port knocking, terminal logging, agent forwarding, Bitwarden SSH agent, HashiCorp Vault SSH signing, and more
- **White Label** - Admins can rebrand the instance with their own name, logo, and colors
- **Web Endpoints** - Open a host's own web UI, like a router admin page, embedded inside Termix instead of a separate tab
- **Collaboration Rooms** - Persistent rooms where a group can jump between sessions together, with a presenter stage and invites
- **SSH Feature Rich** - Jump hosts, Warpgate, TOTP prompts, SOCKS5, host key verification, password autofill, [OPKSSH](https://github.com/openpubkey/opkssh), tmux, port knocking, terminal logging, agent forwarding, Bitwarden SSH agent, HashiCorp Vault SSH signing, Step CA, 1Password Connect, and more
- **Termix ID** - A built-in take on sshid.io. Claim a handle, publish your public keys at a resolver URL, and issue SSH certificates from the built-in CA
- **Command History Autosuggestions** - Inline suggestions in the terminal as you type, based on your command history
- **Desktop Standalone and Sync** - The desktop app runs on its own with a local backend and database, and can optionally sync with a Termix server

</details>

Expand Down
133 changes: 93 additions & 40 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!-- SUMMARY -->

Credential cloning, a WSL local terminal, Helm and GitOps deployment, an editable file manager path bar, download progress bars, and a large batch of connection, sync, and remote desktop fixes.
A side-by-side local and remote file manager for desktop, a new tab for transferring files straight between two servers, collaboration rooms, Step CA and 1Password credential support, per-host Web Endpoints, credential sharing with users and roles, and a large batch of connection, sync, and remote desktop fixes.

<!-- /SUMMARY -->

Expand All @@ -12,49 +12,102 @@ https://youtu.be/lngaePO96tM

<!-- UPDATE_LOG -->

- Added the ability to clone an existing credential
- Added a WSL option for the local terminal
- Added Helm charts and a GitOps deployment setup
- Added an editable path bar to the file manager
- Added a progress bar for file downloads in the file manager
- Added an identity file option so agent authentication stops after the right key
- Added an environment variable to turn on silent OIDC login
- Added editable model settings for AI providers
- Improved tmux monitor performance when aggregating sessions
- Improved Linux packaging with standard icon sizes
- Added a side-by-side local and remote view to the desktop file manager
- Added a dedicated tab for transferring files directly between two servers
- Added a dedicated Port Forwarding tab to the desktop app sidebar
- Added inline autosuggestions in the terminal using command history
- Added collaboration rooms for sharing a terminal or remote desktop session with a group
- Added Step CA as an SSH authentication type
- Added 1Password Connect as a credential source for SSH
- Added the ability to share credentials with specific users and roles
- Added automatic sharing for hosts added to an already-shared folder
- Added per-host Web Endpoints
- Added quick connect for RDP and VNC
- Added a button to pin the sidebar rail open instead of it auto-collapsing
- Added a compact snippet list option
- Added copy/paste support to the local terminal
- Added a terminal copy-on-select option
- Added tab switching and command palette actions to custom keybindings
- Added selectable host temperature sensors
- Added accessible interface font choices
- Added VNC display zoom controls
- Added more actions to the host right-click context menu
- Added white label branding for admins
- Added support for additional TOTP authenticator apps
- Added the ability to open RDP, VNC, and Telnet sessions directly from the desktop app
- Improved file manager navigation
- Improved motion and transition animations throughout the app
- Improved macOS packaging and terminal keyboard shortcuts
- Improved the terminal AI assistant with a toggle for terminal context
- Began plugin backend work (cut cross feature imports, added plugin DB tables, made the rail/tab system use registries, and updated nginx and manifests for plugins)

<!-- /UPDATE_LOG -->

<!-- BUG_FIXES -->

- Passkey sign in not showing up on the login screen
- Connections through jump hosts failing
- Jump hosts and remote desktop hosts not resolving after a sync
- Malformed websocket messages crashing the server
- Encrypted file manager keys not prompting for a passphrase
- SSH agent forwarding not working with the in-memory agent
- Two factor prompts rejecting codes longer than six digits
- OIDC lockout with no way to recover from environment settings
- Tailscale requests failing on some setups
- Terminal clipboard shortcuts not working on non-QWERTY layouts
- Rapid mobile terminal input being sent one keystroke at a time
- HTTPS not being able to share the configured port
- Portable imports failing on remote databases
- Host status not showing when metrics collection is off
- Proxmox guest credential usernames being wrong
- File drops not working for RDP in the browser
- Duplicate Docker HTTPS listener on startup
- Remote sync server probe ignoring the certificate setting
- Runtime SSL settings not being preserved
- Automation notifications missing host details
- Connection screens crashing outside the connection log provider
- better-sqlite3 failing in Docker on some platforms
- Host action rows shifting at large font sizes
- Sidebar height jumping when hosts or credentials have tags
- Gaps between host rows in the sidebar list
- Rounded corners on the host list search bar
- Image storage settings text wrapping to one word per line
- Unclear wording on the click-to-expand host setting
- Dragging a folder into the file manager failing to upload
- Private AI custom endpoints failing to connect
- Proxmox credential guest imports not working correctly
- Fleet command results layout being broken
- Synced client tunnel endpoints not matching the source host
- Proxmox jump host settings not persisting after a sync
- Command palette keyboard navigation not working correctly
- Split layout selection not being restored
- macOS VNC connections failing to establish
- Rapid VNC scroll wheel input queuing up and making the remote desktop keep scrolling after you stop
- Remote desktop connections timing out unexpectedly
- RDP clipboard paste not working across some browsers
- Process inspector command column showing truncated commands
- RDP drive redirection uploads failing on the default deployment
- A terminal session that expired silently reconnected without explaining Auto-Tmux as an option
- Host status wrongly showing as offline when nothing was actively watching it
- Shared RDP users not being prompted for credentials when required
- Protected file reads failing without a sudo retry
- Host status polling unnecessarily authenticating over SSH
- Some host protocol settings being dropped when left unset
- Remote sync reauthentication failures not being surfaced to the user
- Dashboard metrics sessions not recovering after expiring
- RDP file uploads to redirected drives failing
- Connection toolbar visibility being inconsistent
- Host list scroll position resetting incorrectly after editing a host
- Live SSH sessions not being reflected in host status
- Vault authentication not working in the file manager
- Running snippets and commands on shared hosts being blocked
- Chunked file uploads failing due to a contract mismatch
- Bulk uploads failing partway through
- Local echo not being disabled on the terminal alternate screen
- Invalid timezones in the clock widget crashing the homepage
- Connection origin setting not being preserved when editing a host
- Local login notifications not appearing after a remote sync
- Passkey login not working in the desktop app
- Proxmox guest discovery commands failing without elevated permissions
- File transfer completion toasts staying on screen permanently
- SSH key type not being clearable once set
- Local echo appearing during password prompts inside other programs
- The desktop app hanging on a loading screen with no message when the embedded backend's port was in use
- Backend ports silently failing to bind, leaving a feature dead with no error in the logs
- Imported host settings and jump host references being lost or broken after import
- SSH agent forwarding breaking after certain unsupported extensions
- Sidebar host tree continuing to render while hidden, wasting resources
- macOS Alt+digit tab shortcuts producing characters instead of switching tabs
- macOS Option key producing Meta/escape sequences instead of special characters by default
- Dashboard not opening the correct remote desktop protocol
- Version checks overwriting the local version number on failure
- SFTP directory creation relying on shell access
- GPU acceleration opt-out setting being ignored on desktop
- Remote-only hosts leaking into local tab persistence on desktop
- Host metrics not being collected correctly on macOS and Windows hosts
- CORS rejecting requests by default when no allowed origins were configured
- Streamed SFTP uploads not completing correctly
- The SSH connection pool not enforcing its connection limits, letting stale connections pile up
- Local connections to shared hosts being blocked
- Client-to-server tunnels using the wrong bind or target address in some setups
- SSH host key changes not being surfaced as a warning
- Nested subhost parent references breaking after a remote sync
- Termix ID certificates missing principals needed for some servers to accept them
- TOTP being skipped without a fully verified WebAuthn check
- SSH connections not verifying the resolved server's host identity
- The OPKSSH binary not having its integrity verified before use
- Several transitive dependency security advisories
- Various HTTP and application trust boundary hardening (CSP, Docker, config defaults)

<!-- /BUG_FIXES -->
18 changes: 18 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,21 @@
## Reporting a Vulnerability

Please report any vulnerabilities to [GitHub Security](https://github.com/Termix-SSH/Termix/security/advisories).

## External secret storage

By default, a single-container installation generates its keys in the Termix
data directory for ease of recovery. Production deployments that keep backups
or database files outside a trusted encrypted volume should set
`TERMIX_REQUIRE_EXTERNAL_SECRETS=true` and provide all four keys through a
secret manager:

- `JWT_SECRET` (at least 64 characters)
- `DATABASE_KEY` (64 hexadecimal characters)
- `ENCRYPTION_KEY` (64 hexadecimal characters)
- `INTERNAL_AUTH_TOKEN` (at least 32 characters)

Each value can instead be mounted as a Docker or Kubernetes secret and supplied
with its corresponding `_FILE` variable, such as `ENCRYPTION_KEY_FILE`.
Hardened mode fails closed instead of writing a replacement key beside the
encrypted database.
4 changes: 4 additions & 0 deletions charts/termix/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ env:
PORT: "8080"
DATA_DIR: /app/data
NODE_ENV: production
TERMIX_REQUIRE_EXTERNAL_SECRETS: "false"
GUACD_RECORDING_PATH: /termix-data/session_recordings/guacamole
GUACD_RECORDING_BACKEND_PATH: /app/data/session_recordings/guacamole

Expand All @@ -86,6 +87,9 @@ secrets:
name: ""
data:
JWT_SECRET: ""
DATABASE_KEY: ""
ENCRYPTION_KEY: ""
INTERNAL_AUTH_TOKEN: ""
DATABASE_URL: ""
GUACAMOLE_ENCRYPTION_KEY: ""

Expand Down
25 changes: 0 additions & 25 deletions deploy/argocd/application-traefik.yaml

This file was deleted.

25 changes: 0 additions & 25 deletions deploy/argocd/application.yaml

This file was deleted.

Loading
Loading