Skip to content
/ IShare Public

IShare, a clean and elegant macOS file sharing service management application

License

Notifications You must be signed in to change notification settings

Fan-7SZ/IShare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IShare

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.

Features

Core Capabilities

  • 🎨 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)

System Requirements

  • macOS 26.0

Installation

Build from Source

  1. Clone the repository:
git clone https://github.com/Fan-7SZ/IShare.git
cd IShare
  1. Open the project in Xcode:
open IShare.xcodeproj
  1. Select target device and run in Xcode. Choose archive to export compile output.

via Releases

Download the latest release from GitHub Releases.

⚠️ Important: First Launch Instructions

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:

  1. Try to open IShare normally (it will be blocked)
  2. Go to System Settings → Privacy & Security
  3. 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.

Apache Server Installation

Install Apache using Homebrew (recommended):

brew install httpd

After 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.

Quick Start Guide

1. Add Apache Server

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)

2. Create a Share Instance

  • 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

3. Start Sharing

  • In the dashboard, click the toggle for your share instance
  • Copy the URL to share with others

4. Access Your Share

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

Configuration Files

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

FAQ

Q: Share won't start?

A: Please check:

  • Apache path is correct
  • Port is not already in use
  • Share directory has read permissions
  • View error details for specific reason

Q: Other devices cannot access?

A: Please confirm:

  • Firewall allows the port
  • Network access type settings are correct
  • IP address is within allowed range

Q: Authentication failed?

A: Please verify:

  • Username and password are correct
  • Authentication mode matches
  • Client supports the authentication method

Contributing

Issues and Pull Requests are welcome!

Future plan

  • 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?

License

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)

poster