Skip to content

zocs/DufsHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

171 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DufsHub

The hub for dufs. — dufs 的多端中枢。

Release License Downloads Flutter Windows Android Linux macOS Build F-Droid

中文文档 · Privacy Policy · 📥 Releases


A Dufs-based, lightweight cross-platform file distribution GUI optimized for air-gapped LANs and restricted industrial environments. Built on dufs. Zero config, zero barrier — share a folder or a single file from one device, and anyone with a browser can access and transfer it. The other side needs no app.


📱 Screenshots

Screenshots


✨ Why DufsHub?

The other side doesn't need an app. Install DufsHub on ONE device, start the server, and anyone with a browser can upload and download files.

Feature
📱 One device is enough The rest use a browser
📄 Folder or single file Share a full directory or just one file
⬆️⬇️ Bidirectional Upload AND download, not just send
🔗 Just open a link QR code or URL — that's all the other side needs
🔐 Secure Optional password auth, CORS control
🔀 Fine-grained permissions Upload, delete, search, archive download — toggle each one
🎨 Customizable 6 color schemes + dark / light mode
🌐 Multilingual 简体中文 · 繁體中文 · English
📦 Zero setup Self-contained — no external dependencies

💡 Use Cases

Scenario How
🏭 Factory / industrial offline transfer One PC starts → operators scan → distribute firmware / logs / docs
🏠 Home file sharing Phone hotspot → browser access → transfer photos / docs
💼 Office quick transfer One PC starts → colleagues scan → share project files
🎓 Classroom distribution Teacher starts → students scan → download courseware
🔧 Device debugging Embedded device → phone hotspot → download logs
📷 Photo dump Camera/phone starts → PC bulk downloads

🚀 Quick Start

Download

Platform File
🪟 Windows dufshub-*-windows-x64-setup.exe (installer) or .zip (portable) ✅ Tested
🤖 Android dufshub-*-android-arm64.apk ✅ Tested
🐧 Linux x64 .AppImage (zero deps) or .deb ✅ Tested
🐧 Linux ARM64 .AppImage or .deb (Kylin/UOS compatible) ✅ Tested
🍎 macOS DufsHub-*-macos-arm64.zip ⚠️ Untested

📥 Download latest release

🤖 Also available on F-Droid (pending review)

Steps

  1. Pick a folder or a single file
  2. Tap "Start Server"
  3. Scan QR code or enter URL in browser (port required)
  4. Share files — done!

Recent builds also add a smoother start/stop transition state, so slower devices feel less abrupt when the embedded file server is starting or shutting down.


🌐 Network

Simplest setup: All devices on the same WiFi or hotspot.

Environment
🏠 Same WiFi Just connect and share
📱 Phone hotspot One device creates a hotspot, others join — no router needed
🌍 Remote access Works with ZeroTier, Tailscale, EasyTier, or any VPN

🔒 All transfers happen directly between your devices. No data passes through third-party servers.


🔒 Security

⚠️ DufsHub binds to all network interfaces by default (0.0.0.0)

Network Recommendation
Home WiFi ✅ Safe — LAN only
Public WiFi ⚠️ Enable password auth
Corporate network ⚠️ Watch firewall policies
Public internet ❌ Not recommended — use VPN instead

Best practices:

  1. Enable auth in public environments
  2. Stop the server when done
  3. Review access logs periodically

🔧 Troubleshooting

Android — Storage Permission

Symptom: Can't list files, "Need all files access permission"

Fix: Settings → Apps → DufsHub → Permissions → Allow "All files access"

Port in Use

Symptom: Start fails, "Port XXX already in use"

Fix: Change port (try 8080–9000 range) or kill the occupying process

Linux — AppImage Won't Launch

Symptom: Double-click does nothing

Fix:

chmod +x dufshub-*.AppImage
./dufshub-*.AppImage

macOS — Developer Verification Blocked

Symptom: "Can't verify developer" on open

Fix:

xattr -d com.apple.quarantine DufsHub.app

Windows — Firewall Blocking

Symptom: Other devices can't connect

Fix: Allow DufsHub through Windows Firewall (you'll be prompted on first launch)


❓ FAQ

Q: Does the other side need DufsHub? A: No! Only one device runs DufsHub. Others just open a browser.

Q: Can I share a single file instead of a whole folder? A: Yes. Choose a single file and DufsHub will expose just that file through the browser.

Q: Can I access it remotely? A: LAN by default. For remote access, use ZeroTier / Tailscale / EasyTier.

Q: Is HTTPS supported? A: Not yet. Planned for a future release.

Q: Max file size? A: No hard limit. Tested with a single 70GB+ archive over gigabit LAN — sustained full bandwidth throughout. Large downloads may have a brief delay while loading file info, which is normal. Actual speed depends on filesystem, disk I/O, and Wi-Fi throughput.

Q: How many devices can connect at once? A: No hard limit — depends on bandwidth and device performance.

Q: Are files uploaded to the cloud? A: No! Everything stays local. Transfers are device-to-device.


🛠️ Development

Requirements

  • Flutter SDK 3.41+
  • Windows: VS Build Tools 2022 (C++ workload)
  • Android: Android SDK, NDK
  • Linux: clang, lld, llvm, libgtk-3-dev
  • macOS: Xcode

Build

git clone https://github.com/zocs/dufshub.git
cd dufshub
flutter pub get

# Run (debug)
flutter run -d windows
flutter run -d android

# Build
flutter build windows --release
flutter build apk --release

Packaging Scripts

# Linux (x64 or ARM64)
bash scripts/build_linux.sh x86_64
bash scripts/build_linux.sh aarch64

# macOS (ARM64)
bash scripts/build_macos.sh aarch64

Output: AppImage, deb, rpm, tar.gz (Linux) and zip (macOS).

Local Docker Builds

# Android release APK (optionally pass signing env vars)
bash scripts/docker_build_android.sh

# Linux x64 packages
bash scripts/docker_build_linux.sh x86_64

Notes:

  • The Docker workflow currently supports Android and Linux x64 only.
  • Windows Docker packaging can be explored later.
  • macOS and iOS remain GitHub Actions-only because they require native Apple toolchains.
  • The Android Docker image generates android/local.properties inside the container so host SDK paths are not required.
  • Outputs land under docker_build/: docker_build/android/outputs/apk/ (APKs) and docker_build/linux/x86_64/outputs/packages/ (AppImage/deb/tar.gz).

CI/CD

GitHub Actions builds all platforms on tag push (v*) and creates a release automatically.

Project Structure

lib/
├── main.dart                       # Entry + window init
├── app.dart                        # MaterialApp + theming
├── constants.dart                  # Reverse-domain + MethodChannel constants
├── l10n/app_localizations.dart     # i18n (zh/en/zhTW)
├── models/
│   ├── server_config.dart          # Config model + persistence
│   └── transfer_log.dart           # Transfer log parser
├── pages/
│   ├── home_page.dart              # Home: dir / perms / start / QR
│   ├── settings_page.dart          # Settings: theme / color / language
│   ├── setup_wizard_page.dart      # First-run wizard
│   └── log_page.dart               # Transfer log viewer
└── services/
    ├── dufs_service.dart           # dufs lifecycle (platform dispatch)
    └── dufs_ffi.dart               # FFI bindings (desktop)
scripts/
├── build_dufs.sh                   # Cross-compile dufs (7 platforms)
├── build_linux.sh                  # Linux packaging (AppImage/deb)
├── build_macos.sh                  # macOS packaging
└── dufs-ffi/lib.rs                 # Rust FFI wrapper
android/app/src/main/kotlin/.../DufsForegroundService.kt  # Android native service
installer/dufshub.nsi               # Windows NSIS installer

Desktop builds embed dufs through Rust FFI; Android uses a foreground native service to survive Activity recreation on lower-memory devices.


🙏 Acknowledgments

DufsHub is built on top of dufs — a brilliant utility file server by sigoden. Without dufs, DufsHub wouldn't exist. Thanks for making file sharing so simple.


📄 License

MIT © 2026 zocs


DufsHub — the hub for dufs.

About

A Dufs-based, lightweight cross-platform file distribution GUI optimized for air-gapped LANs and restricted industrial environments.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors