Internal
Public Access
Adds a production manifest (packaging/flatpak/flathub/) using a pinned git source instead of the local-dir source the dev manifest uses, so Flathub's build infrastructure can reproduce the build independently. Narrows the dev and production manifests' filesystem permission from --filesystem=home to --filesystem=~/.ssh (read-write, needed for SSH known_hosts/config) after confirming in the actual sandbox that: SSH already works there (provided by the KDE runtime base, no extra packaging needed), RDP needs no filesystem access at all (its certificate trust never touched disk even before today's fix), and QFileDialog's private-key/export pickers route through the desktop portal rather than needing static filesystem access. Expands AppStream metainfo with bugtracker/vcs-browser URLs, a developer block, a releases entry, an OARS content rating, and three screenshots (profiles view, an active SSH session, an active RDP session) using real test-system profiles. Adds docs/FLATHUB.md tracking overall submission readiness. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
182 lines
4.3 KiB
Markdown
182 lines
4.3 KiB
Markdown
# OrbitHub
|
|
|
|
OrbitHub is a cross-platform native desktop app for managing and launching remote sessions from one place.
|
|
|
|
It is implemented in C++17 with Qt6 Widgets and built with CMake.
|
|
|
|
Supported target platforms:
|
|
- Windows
|
|
- Linux
|
|
- macOS
|
|
|
|
## Current Status
|
|
|
|
OrbitHub is in active development.
|
|
|
|
- Milestones completed: M0-M5, and M7-M9
|
|
- Current milestone: Milestone 10 (v1.0 Stabilization)
|
|
- Deferred milestone: Milestone 6 (VNC Fully Working)
|
|
- Latest checkpoint tag: `v2026.9.8`
|
|
- VNC implementation milestone (M6) is currently deferred
|
|
|
|
Progress and milestone details:
|
|
- [docs/PROGRESS.md](docs/PROGRESS.md)
|
|
|
|
Latest release (installers for Windows, Linux, and macOS):
|
|
- [v2026.9.8](https://git.darksingularity.org/DarkSingularity/orbithub/releases/tag/v2026.9.8)
|
|
|
|
## Screenshots
|
|
|
|

|
|
|
|
Profiles organized into folders, with protocol, host, and tags shown at a glance. (Sample data shown; not real hosts.)
|
|
|
|

|
|
|
|
An interactive SSH terminal session in a tab, with the event log below.
|
|
|
|

|
|
|
|
An embedded RDP session in a tab.
|
|
|
|
## Implemented Features
|
|
|
|
### Profile Management
|
|
|
|
- SQLite-backed profile storage
|
|
- Create, edit, delete profiles
|
|
- Protocol-aware profile validation (SSH/RDP/VNC)
|
|
- Profile search and sorting
|
|
- Tags support
|
|
- Folder/subfolder support
|
|
- `List` and `Folders` profile views
|
|
- Right-click profile tree actions:
|
|
- New Folder
|
|
- New Connection
|
|
- Drag-and-drop profile moves between folders with persistence
|
|
|
|
### Session Experience
|
|
|
|
- Multi-tab session window
|
|
- Auto-connect on tab open
|
|
- Disconnect on tab close
|
|
- Session state indicators on tabs
|
|
- Timestamped event log with filtering and export
|
|
|
|
### SSH
|
|
|
|
- Embedded interactive terminal (in-app typing)
|
|
- Theme support (`Dark`, `Light`, `Solarized Dark`)
|
|
- Password and private-key auth flows
|
|
- Known-hosts policy support
|
|
|
|
### RDP
|
|
|
|
- Embedded in-window RDP rendering surface (no external launcher)
|
|
- Keyboard/mouse input forwarding
|
|
- Resize handling and resolution renegotiation
|
|
- Domain-aware authentication support
|
|
- RDP security/performance profile options
|
|
|
|
### App UX
|
|
|
|
- App icon and themed About dialog
|
|
- `File` menu:
|
|
- New Profile
|
|
- New Folder
|
|
- Quit
|
|
- `Help` menu:
|
|
- About OrbitHub
|
|
|
|
## Build and Run
|
|
|
|
Detailed platform instructions:
|
|
- [docs/BUILDING.md](docs/BUILDING.md)
|
|
|
|
Quick start (Linux/macOS with Ninja):
|
|
|
|
```bash
|
|
cmake -S . -B build -G Ninja
|
|
cmake --build build
|
|
./build/orbithub
|
|
```
|
|
|
|
## Packaging
|
|
|
|
Detailed packaging instructions for all platforms:
|
|
- [docs/BUILDING.md](docs/BUILDING.md)
|
|
|
|
Linux (`.deb`):
|
|
|
|
```bash
|
|
./packaging/linux/build-deb.sh
|
|
```
|
|
|
|
Linux (Flatpak):
|
|
|
|
```bash
|
|
./packaging/flatpak/build-flatpak.sh
|
|
```
|
|
|
|
Windows (Inno Setup installer):
|
|
|
|
```powershell
|
|
.\packaging\windows\build-installer.ps1
|
|
```
|
|
|
|
macOS (`.dmg`):
|
|
|
|
```bash
|
|
./packaging/macos/build-dmg.sh
|
|
```
|
|
|
|
## Dependencies
|
|
|
|
Core dependencies:
|
|
- Qt 6 (Widgets, SQL)
|
|
- CMake 3.21+
|
|
- C++17 toolchain
|
|
|
|
Protocol/runtime dependencies:
|
|
- SSH client (`ssh`) available on `PATH` for SSH sessions
|
|
|
|
Bundled/vendored third-party components:
|
|
- KodoTerm
|
|
- libvterm
|
|
- FreeRDP/WinPR
|
|
|
|
## Licensing
|
|
|
|
Project license:
|
|
- MIT (see [LICENSE](LICENSE))
|
|
|
|
License links:
|
|
- MIT License: <https://opensource.org/licenses/MIT>
|
|
- GNU LGPLv3: <https://www.gnu.org/licenses/lgpl-3.0.html>
|
|
- Apache License 2.0: <https://www.apache.org/licenses/LICENSE-2.0>
|
|
|
|
Important third-party license notes:
|
|
- Qt6 is dynamically linked in this project build setup.
|
|
- Qt6 is used under LGPLv3 terms in this project build setup.
|
|
- KodoTerm and libvterm are MIT-licensed.
|
|
- FreeRDP/WinPR is Apache-2.0 licensed.
|
|
|
|
Repository license files:
|
|
- Project: [LICENSE](LICENSE)
|
|
- KodoTerm: [third_party/KodoTerm/LICENSE](third_party/KodoTerm/LICENSE)
|
|
- FreeRDP: [third_party/FreeRDP/LICENSE](third_party/FreeRDP/LICENSE)
|
|
|
|
See in-app `Help -> About OrbitHub` for license links and third-party inventory.
|
|
|
|
## Repository Structure
|
|
|
|
- `src/` - application source code
|
|
- `docs/` - build guide, spec, and progress tracking
|
|
- `third_party/` - vendored third-party dependencies
|
|
- `build/` - local build output (generated)
|
|
|
|
## Notes
|
|
|
|
- Passwords are requested at connect time and are not stored in the profile database.
|
|
- This repository currently prioritizes integrated SSH and RDP workflows while VNC implementation is pending.
|