Repository navigation
ServerUI v0.2.0
·
27 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
A major update to ServerUI focused on making server management feel more like a desktop environment.
What's new since v0.1.0, the first public release.
🚀 File Manager
Files now works like Finder.
- One unified toolbar with back/forward navigation, folder name, Icons/List view, Upload, New Folder, Download, Delete, More, and Search.
- Icon view is now the default, with folder and document icons, type badges, selection highlights, rubber-band selection, and drag-to-move.
- List view shows Name, Date Modified, Size, and Kind.
- Sidebar with Favorites and Locations. Files can be dragged directly onto sidebar locations.
- Path bar and selection status, such as
2 of 17 selected. - Right-click empty space to create a folder, create a file, or upload.
- Home resolves to the signed-in user's actual home directory, including
/rootand homes outside/home.
Selection & File Operations
- Rectangle selection, Shift-click ranges, and Cmd/Ctrl-click multi-selection.
- Select All and Clear Selection.
- Download or delete multiple selected items.
- Download progress with individual retry support for failed items.
- Drag files and folders onto folders,
.., breadcrumbs, or sidebar locations to move them remotely. - Copy, cut, and paste using the context menu or Cmd/Ctrl+C, X, and V.
- Conflict handling with Cancel, Replace, Rename, or Keep Both.
- Replace operations use temporary files first, preventing a failed operation from destroying the original.
- Long folder listings scroll correctly, including empty space after the final row.
..can be opened by double-clicking, just like any other folder.
Archives
- Compress selections to ZIP, TAR, TAR.GZ, TGZ, TAR.BZ2, TAR.XZ, or 7Z.
- Automatically fall back to TAR.GZ when
zipor7zis unavailable. - Extract ZIP, TAR, TAR.GZ, TGZ, TAR.BZ2, TBZ2, TAR.XZ, TXZ, and 7Z archives.
- Extraction supports Cancel, Replace, and Keep Both when files already exist.
- Archives are inspected before extraction and unsafe entries are rejected, including absolute paths, path traversal, escaping links, and device files.
- Password-protected archives are rejected.
- Extraction happens in a private temporary directory before moving files into place.
- Failed or cancelled extraction leaves the destination unchanged.
- Downloading a folder automatically compresses it on the server first.
- Copy, move, compress, and extract operations run over SSH on the remote host.
🖥️ Servers
Test Connection
- Test Connection on Add Server and Edit Server validates the details you entered without saving them.
- Clear green/red connection results when a tested field is edited.
- When editing an existing server, leaving the password or key blank reuses the saved credential.
- Saved credentials are never sent back to the browser.
Validation & SSH Errors
- Inline validation for individual fields.
- Validation runs when leaving a field and when saving or testing.
- The first invalid field is automatically focused.
- Forms scroll to invalid fields while actions remain pinned.
- Invalid IP-like hosts containing only digits and dots are rejected.
- Hostnames and usernames have length limits.
- Usernames cannot contain spaces,
:,@, or/. - SSH failures now provide actionable error categories:
- Invalid host
- Connection refused
- Timeout
- Unreachable host
- Connection reset
- Not an SSH server
- Authentication failed
- Invalid key
- Passphrase required
Desktop Server Fixes
- Editing a server in the desktop app now correctly persists changes.
- Fixed SQLite persistence issues where renames and status changes could disappear and result in "server not found".
- Host and username fields no longer autocapitalize or autocorrect, preventing values such as
rootfrom becomingRoot.
🎨 Desktop Experience
- Dashboard has been upgraded to System Monitor with CPU, memory, disk, network, processes, and services.
- Choose a desktop wallpaper from Settings.
- The selected wallpaper is shared across the desktop, boot, and logout screens.
- Redesigned frosted-glass dock.
- Dock icons magnify on hover with centered tooltips.
- New Files and Terminal icons.
- Mac-style traffic lights with hover glyphs.
- Files places window controls in the sidebar while the toolbar can be used to drag the window.
- Minimized windows now use a genie animation into the dock.
- Updated glass window surfaces.
- Redesigned Dock icon with a rounded Mac-style tile.
🐛 Fixes
- Production TypeScript builds now complete successfully again.
- Fixed macOS desktop builds failing because of the PostgreSQL setup used by the web deployment.
- Packaged desktop builds continue to use local SQLite.
🔀 Pull Requests
- #30 — Finder-style Files window, Dock restyle, and real home folder
- #24 — Copy, cut, paste, compress, extract, and download queue
- #23 — Test Connection and inline validation
- #19 — Multi-select file operations
- #20 — Drag and drop to move files and folders
- #18 — Stop autocapitalize on server fields
What's next?
ServerUI is still early, and there's a lot more coming.
We're working toward making ServerUI a complete local desktop workspace for managing servers — without turning the server itself into another heavy management layer.
GitHub: https://github.com/rakhechashubham/serverui
Website: https://serverui.dev
Discord: https://discord.gg/CTt2qFGFET
What's Changed
- fix: prevent autocapitalization in server fields by @tejjasdev in #18
- Add Drag and Drop Support for Moving Files and Folders by @Aryan1092raj in #20
- feat(files): add multi-select file operations (closes #9) by @isreeharim in #19
- feat: test connection and inline validation in Add/Edit Server by @SiddaramMetri in #23
- feat(files): copy/cut/paste, compress/extract, folder-aware downloads and context menu by @Snox-dev1 in #24
- feat(ui): Finder-style Files window, Dock restyle, and real home folder by @SiddaramMetri in #30
New Contributors
- @tejjasdev made their first contribution in #18
- @Aryan1092raj made their first contribution in #20
- @isreeharim made their first contribution in #19
- @SiddaramMetri made their first contribution in #23
- @Snox-dev1 made their first contribution in #24
Full Changelog: v0.1.0...v0.2.0