A modern cross-platform desktop application for automating UniFi device adoption via SSH. Built with Rust and featuring a clean, intuitive GUI for network administrators managing UniFi deployments.
- Automatic IP Range Detection: Automatically detects your network and pre-fills the correct IP range on startup
- Network Scanning: Scan IP ranges to discover devices on your network
- SSH Port Detection: Automatically identifies devices with SSH enabled (port 22)
- MAC Address Lookup: Identifies device manufacturers using OUI database
- Visual Status Indicators: Color-coded SSH status (green for enabled, red for disabled)
- Single Device Adoption: Adopt individual UniFi devices with real-time SSH output logs
- Bulk Adoption: Select and adopt multiple devices simultaneously
- Dual Credential Support: Configure both default and alternative SSH credentials for re-adopting devices
- Real-time Logs: View SSH command output and adoption progress in real-time
- Expandable Device Rows: Click on devices to view detailed adoption logs
- Settings Panel: Easy-to-use settings interface with tabbed navigation
- Persistent Configuration: Settings saved to local config file
- Controller URL Configuration: Set your UniFi controller URL
- Multiple SSH Credentials: Support for default (ubnt) and alternative credentials to make re-adoption easy
- Language: Rust 2021 Edition
- GUI Framework: Iced v0.12 - A cross-platform GUI library
- Async Runtime: Tokio - Asynchronous runtime for handling concurrent operations
- SSH Library: ssh2 v0.9 - SSH client implementation
- Network Detection: get_if_addrs v0.5 - Cross-platform network interface detection
- Network Operations:
- Automatic network interface detection and IP range calculation
- Built-in async network scanning
- OUI database for MAC address vendor lookup
- Port scanning for SSH detection
The network scanner automatically discovers devices on your network, identifies Ubiquiti devices, and shows SSH availability:
View detailed logs for each device adoption, including SSH connection status and inform URL configuration:
- Launch the application
- Click the Settings button
- Configure the following:
- Controller URL: Your UniFi controller address (e.g.,
http://192.168.1.1:8080) - don't forget to include the:8080port in your URL
- Default Credentials:
- Username:
ubnt(default) - Password:
ubnt(default)
- Username:
- Alternative Credentials:
- Put your site credentials here so you can re-adopt devices
- macOS (tested)
- Windows (tested)
- Linux (untested)
GNU General Public License v3.0
Copyright (c) 2024
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Note: This is a utility tool for network administrators. Use at your own risk.
This project is built with Rust and uses modern async patterns. The codebase is organized into modules:
main.rs- Application entry point and state managementssh_handler.rs- SSH connection and command executionnetwork_interface.rs- Network interface detection and IP range calculationnetwork_scanner.rs- Network scanning and device discoveryoui_database.rs- MAC address vendor lookupconfig.rs- Configuration file managementviews.rs- UI view definitionsstyles.rs- UI styling and themingmodels.rs- Data models and enumsmessages.rs- Application message types
Built with:
- Iced - A cross-platform GUI library for Rust
- ssh2-rs - Rust bindings for libssh2
- Tokio - Asynchronous runtime for Rust
Development assisted by:
- Claude Code - AI-powered development assistant
- Gemini - Used for AI Photo editing
Development made possible by:
- 1 SYSTEMS installation - The #1 low voltage installation team for complex and modern installs.

