Wanna deploy a file sharing service on macOS, but can't stand on its built-in SMB sharing approach and have no idea about using Docker or terminal to control Apache Server. IShare, a clean and elegant macOS file sharing service management application, may be a choice.
- 🎨 Native GUI Interface: User-friendly interface built with native macOS SwiftUI, following Apple's design guidelines - no configuration file editing needed
- 🚀 Quick Share: Create file sharing instances with one click, Apache server auto-configured
- 🔐 Secure Authentication: Support for HTTP Basic and authentication with username/password
- 🌐 Network Control: Flexible access control (localhost, public network, private network, custom IP ranges)
- 📁 Symbolic Links: Link multiple directories to a single share instance
- 🎯 Permission Management: Fine-grained user permission control (read-only/read-write)
- macOS 26.0
- Clone the repository:
git clone https://github.com/Fan-7SZ/IShare.git
cd IShare- Open the project in Xcode:
open IShare.xcodeproj- Select target device and run in Xcode. Choose archive to export compile output.
Download the latest release from GitHub Releases.
Since IShare is not notarized by Apple, macOS Gatekeeper will prevent it from opening on first launch. This is normal for open-source applications. You need to bypass this security check:
- Try to open IShare normally (it will be blocked)
- Go to System Settings → Privacy & Security
- Scroll down and click "Open Anyway" next to the IShare warning
After the first successful launch, macOS will remember your choice and open IShare normally in the future.
Install Apache using Homebrew (recommended):
brew install httpdAfter installation, Apache binary is typically located at:
- Homebrew (Apple Silicon):
/opt/homebrew/bin/httpd
In most case, IShare will scan common Apache installation directory, and automatically import them. If you have a specific condition, you can add it via Server dashboard.
On first launch, IShare will automatically scan and import Apache servers from common installation paths. If not detected:
- Click "Add Server" or use ⌘⇧N
- Enter a name for your server
- Select the Apache binary path (
httpd)
- Click "Add Share" or use ⌘N
- Configure your share:
- Name: Give it an identifiable name
- Port: Choose an available port (e.g., 8080)
- Share Root: Select the folder to share
- Network Access: Choose who can access (localhost, LAN, custom IPs)
- Authentication: Optional - set up user authentication
- In the dashboard, click the toggle for your share instance
- Copy the URL to share with others
From macOS Finder:
- Press ⌘K
- Enter:
http://your-ip:port - If authentication is enabled, enter username and password
From Web Browser:
- Simply open:
http://your-ip:port
From Windows:
- Open File Explorer → Right-click "This PC" → "Add a network location"
- Enter the WebDAV address
Application data is stored at the following locations:
- Server config:
~/Library/Application Support/IShare/servers.json - Share instance config:
~/Library/Application Support/IShare/{id}/config.json - Apache config files:
~/Library/Application Support/IShare/configs/{id}/httpd.conf - Authentication files:
~/Library/Application Support/IShare/configs/{id}/htpasswd
A: Please check:
- Apache path is correct
- Port is not already in use
- Share directory has read permissions
- View error details for specific reason
A: Please confirm:
- Firewall allows the port
- Network access type settings are correct
- IP address is within allowed range
A: Please verify:
- Username and password are correct
- Authentication mode matches
- Client supports the authentication method
Issues and Pull Requests are welcome!
- Support more macOS systems with lower versions. In this initial version, the guideline I followed using some OS26 exclusive components APIs, making it only supports macOS 26. The next part development will focus on designing an additional interface to broaden the compatibility.
- Maybe more protocols support, like adding SMB server?
This project is licensed under the MIT License - see the LICENSE file for details
Note: This application is intended for file sharing in LAN or trusted network environments. For public internet deployment, ensure HTTPS configuration and strong passwords (Using nginx proxy manager can be a easy approach)



