Skip to content

Repository files navigation

LocalShare

macOS 13+ Swift 5 Release License: MIT

Native Swift/AppKit app that turns a local folder or localhost website into a temporary shareable URL through Cloudflare Quick Tunnel.

LocalShare 是 macOS 原生小工具,可將本機資料夾或正在執行的 HTTP 網站暫時公開為 https://….trycloudflare.com 網址。

系統需求:macOS 13 或更新版本;同一份 App 支援 Apple Silicon 與 Intel Mac。

LocalShare macOS 使用介面

下載

下載最新版 LocalShare

目前的免費社群建置未使用付費 Apple Developer ID 公證。第一次開啟時,請確認檔案來自本儲存庫的官方 Release,並核對 Release 內的 SHA-256 校驗檔。

安裝與使用

  1. 開啟 LocalShare-1.3.0-macOS.dmg
  2. 將 LocalShare 拖到「應用程式」。
  3. 第一次開啟若 macOS 阻擋 App,請先嘗試開啟一次,再前往「系統設定 → 隱私權與安全性 → 強制打開」。
  4. 選擇網站資料夾,或輸入 http://localhost:3000 這類本機網址。
  5. 按「開始分享」。LocalShare 會先確認本機來源可連線;Cloudflare 建立公開網址後會立即顯示並自動複製。
  6. 分享期間請保持 LocalShare 開啟。App 會防止電腦因閒置而睡眠,並以低頻率在背景檢查公開網址。
  7. 按「停止分享」或關閉 App 後,公開網址立即失效;App 會先顯示確認提示。

公開網址沒有密碼保護。任何拿到網址的人都能讀取分享內容;請勿分享機密檔案、密碼、資料庫或管理後台。

為避免意外把區域網路服務暴露出去,網址模式只接受 localhost127.0.0.0/8::1;內建靜態伺服器也只監聽 127.0.0.1。直接輸入網址時不可夾帶帳號或密碼。

Quick Tunnel 適合臨時預覽與測試,不保證固定網址或服務可用率。每次重新啟動會產生不同網址,並有 200 個同時進行中請求的上限,且不支援 Server-Sent Events(SSE)。

遇到 502 時

  • 確認 LocalShare 仍開啟,而且沒有按過「停止分享」。
  • 若分享的是 http://localhost:3000,原本的開發伺服器也必須持續執行。
  • 已停止的 Quick Tunnel 舊網址不會恢復;請重新開始分享並使用新網址。
  • 新建立的 trycloudflare.com 網域可能需要一小段時間才會完成 DNS 傳播。LocalShare 會保持穿隧運行、顯示橘色等待狀態,驗證成功後自動轉成綠色;不會因本機暫時找不到新主機名稱而停止分享。
  • 詳細穿隧記錄位於 ~/Library/Logs/LocalShare/cloudflared.log

v1.3 改進

  • 重新設計原生 macOS 介面,加入透明標題列、卡片式資訊層級、狀態指示、SF Symbols、完整選單與鍵盤操作。
  • 支援將網站資料夾直接拖入輸入欄,並記住上次分享來源。
  • 靜態檔案改用 256 KB 分段串流,不會因分享大型檔案而一次占用同等大小的記憶體。
  • HEAD 健康檢查只讀取檔案資訊,不再載入檔案內容;背景檢查改為 20 秒並加入 Timer tolerance。
  • 使用專用的無快取 HTTP session;畫面記錄、子程序輸出及 cloudflared 診斷檔都會限制大小。
  • 隱藏檔無法透過直接網址讀取,符號連結也不能離開使用者選定的根資料夾。
  • 發行建置會在簽署前再次驗證兩個 cloudflared 執行檔的固定 SHA-256。

命令列

App 內的執行檔也可直接使用:

/Applications/LocalShare.app/Contents/MacOS/LocalShare --help
/Applications/LocalShare.app/Contents/MacOS/LocalShare --json doctor
/Applications/LocalShare.app/Contents/MacOS/LocalShare share ./public
/Applications/LocalShare.app/Contents/MacOS/LocalShare share http://localhost:3000

JSON 成功格式是 {"ok":true,"data":{…}};錯誤格式是 {"ok":false,"error":{"code":"…","message":"…"}},失敗時會傳回非零結束碼。

建置

需要 Xcode Command Line Tools 與網路連線。執行:

make fetch-cloudflared
make app
make test
make dmg

make fetch-cloudflared 會下載固定的 2026.7.2 官方 ARM/Intel 資產並驗證 SHA-256。make appmake testmake dmg 也會在封裝前重新核對固定雜湊;若透過 CLOUDFLARED_ARM64CLOUDFLARED_AMD64 指定其他檔案,雜湊不同就會中止建置。

Developer ID 簽署與公證

一般建置使用 ad-hoc 簽章,適合本機測試。正式對外發布前,請準備 Apple Developer Program 的 Developer ID Application 憑證與 notarytool keychain profile:

make SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" dmg
make SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
  NOTARY_PROFILE="LocalShare-Notary" notarize

notarize 會啟用 Hardened Runtime 與安全時間戳、提交 DMG 給 Apple、公證成功後 staple 並驗證票證。

送交 App Store Connect 或其他商店前,發行負責人仍應依當時 Cloudflare 的資料處理條款確認商店隱私問卷;內附的 Privacy Manifest 已採保守揭露。

第三方元件

本 App 內含 Cloudflare 的 cloudflared 2026.7.2 執行檔。使用該軟體及 Quick Tunnel 代表你同意 Cloudflare 的授權條款、服務條款與隱私權政策。詳見 THIRD_PARTY_NOTICES.mdTHIRD_PARTY_LICENSES/cloudflared-LICENSE.txt

LocalShare 本身不含分析、廣告或追蹤程式碼。建立分享時,公開流量會透過 Cloudflare Quick Tunnel 中繼;詳見 PRIVACY.md

參與開發

歡迎提交 Issue、Discussion 與 Pull Request。開始前請閱讀 CONTRIBUTING.md;安全問題請依 SECURITY.md 私下回報。

License

LocalShare 原始碼採 MIT License 授權。內含的 cloudflared 仍依 Cloudflare 的 Apache License 2.0 授權,詳見第三方授權文件。

About

原生 macOS 工具:將本機資料夾或 localhost 網站透過 Cloudflare Quick Tunnel 轉成可分享網址。Native Swift/AppKit local sharing app.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages