A desktop app for managing Linux servers over SSH. Connect to a server and you get a live dashboard, a multi-tab terminal, an SFTP file browser with a built-in editor, plus process, cron and snippet management — all in one window.
Built with Tauri, React and a Node.js sidecar that handles the SSH/SFTP heavy lifting.
- Dashboard — live CPU, memory, disk and network metrics, uptime, and systemd service status
- Terminal — full xterm.js terminal with multiple tabs and one-click snippets
- Files — browse the remote filesystem, drag & drop uploads, edit files in place with CodeMirror
- Processes — list, filter and kill processes
- Cron — view, create and edit scheduled jobs, with log viewing
- Snippets — save frequently used commands and run them with a click
Passwords never touch disk in plain text — they go into the OS credential vault (Windows Credential Manager, GNOME Keyring, macOS Keychain). Private keys are read only at connection time; only their path is stored. Nothing is sent anywhere except your servers.
You'll need Node.js 18+, Rust (rustup) and your platform's Tauri build tools.
git clone https://github.com/ricardoborges/Nautilus.git
cd Nautilus
npm install
cd backend && npm install && cd ..
npm run tauri:devTo build installers for your platform:
Output lands in src-tauri/target/release/bundle/ (.msi, .deb/.AppImage or .dmg, depending on the OS you build on).
The Tauri shell launches a packaged Node.js backend as a sidecar. The React frontend talks to it over local HTTP, and the backend manages the SSH/SFTP sessions with ssh2. Connections and snippets are stored as JSON in the app data directory; credentials go to the system vault via keytar.
The target server just needs SSH plus the usual tools (ps, free, df, systemctl...) for the dashboard and process views to work.
Issues and pull requests are welcome. If you're reporting a bug, include your OS and steps to reproduce.
MIT — see LICENSE.

