A powerful and user-friendly macOS application that provides simple management of SMB network shares through both a GUI interface and a menubar app. Perfect for users who need to regularly connect to SMB shares and want a streamlined experience. It lets you connect to a nas that uses a coudflared or directly to a ip/hostname.
-
Dual Interface Options:
- Full GUI window for comprehensive management
- Menubar quick access for convenient connections
-
Advanced Connection Management:
- Secure password storage using system keyring
- Support for Cloudflared tunnels
- Custom mount points
- Auto-mount capabilities
-
Security:
- Credentials stored securely in macOS Keychain
- Support for encrypted tunnel connections
- No plaintext password storage
-
System Integration:
- Native macOS menubar integration
- Launch at login option
- Native SMB mounting using system commands
- macOS 10.13 or later
- Python 3.6 or later
- Git (for installation)
- Xcode Command Line Tools
- Download the installer script:
curl -O https://raw.githubusercontent.com/Obili69/SMB-manager/refs/heads/main/install.sh
- Make the script executable:
chmod +x install.sh
- Run the installer:
./install.sh
The installer will:
- Check for system requirements
- Install necessary dependencies
- Optionally install Cloudflared for tunnel support
- Build the application
- Create a symlink in your Applications folder
After installation, you can find SMB Manager in your Applications folder.
If you prefer to install manually or need to customize the installation:
- Clone the repository:
git clone https://github.com/obili69/smb-manager
cd smb-manager
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On macOS/Linux
- Install the required dependencies:
pip install -r requirements.txt
- Build the application:
python setup_app.py py2app
The built application will be available in the dist
directory.
If you plan to use tunnel connections and didn't install it through the installer script:
# Using Homebrew
brew install cloudflare/cloudflare/cloudflared
# Verify installation
cloudflared --version
There are two ways to start SMB Manager:
- Using the Application Bundle (Recommended):
- Open Finder
- Navigate to Applications folder
- Double-click "SMB Manager"
- Running from Source (Development):
# Menubar Mode (Default)
python src/main.py
# GUI Mode
python src/main.py --gui
- Launch the application
- Click "Open Manager" from the menubar icon
- Configure your server settings:
- Hostname (SMB server address)
- Port (default: 8445)
- Optional: Enable Cloudflared tunnel
- Optional: Enable start at login
- Open the manager window
- Fill in the "Add New Share" section:
- Username
- Password
- Share Path
- Click "Add Share"
Via GUI:
- Select shares in the list
- Click "Connect All" or use the context menu to mount individual shares
Via Menubar:
- Click the menubar icon
- Select "Connect All" or manage individual shares
-
Installation Problems:
- Make sure Xcode Command Line Tools are installed:
xcode-select --install
- Ensure you have Python 3.6 or later:
python3 --version
- Check if Git is installed:
git --version
- Make sure Xcode Command Line Tools are installed:
-
Share Won't Mount:
- Verify server address and port
- Check credentials
- Ensure the share path is correct
- Verify network connectivity
-
Tunnel Connection Fails:
- Verify Cloudflared is installed
- Check hostname configuration
- Ensure Cloudflared has necessary permissions
-
Password Not Saving:
- Grant keychain access when prompted
- Try removing and re-adding the share
Logs are stored in:
~/Library/Logs/SMBManager/smbmanager_YYYYMMDD.log
To uninstall SMB Manager:
- Remove the application:
rm -rf ~/Applications/SMB\ Manager.app
- Remove configuration files:
rm -rf ~/.smb_manager_config.json
- Remove logs:
rm -rf ~/Library/Logs/SMBManager
This project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
For issues and feature requests, please create an issue in the GitHub repository.