← Back to localsend

How to Deploy & Use localsend

LocalSend Deployment and Usage Guide

1. Prerequisites

Runtime & Tools:

  • Flutter SDK: LocalSend is built with Flutter (Dart). You need the Flutter SDK installed and configured on your development machine.
  • Platform-specific SDKs:
    • Android: Android SDK and adb (for building/running on Android).
    • iOS/macOS: Xcode (macOS only, for building iOS/macOS apps).
    • Windows: Visual Studio with the "Desktop development with C++" workload.
    • Linux: Common development libraries (e.g., clang, cmake, gtk3, liblzma, ninja-build, pkg-config).
  • Git: To clone the repository.

Accounts (for official store distribution only):

  • Google Play Console (for Android).
  • Apple Developer Account (for iOS/macOS App Store).
  • Microsoft Partner Center (for Microsoft Store).
  • Accounts for platform-specific package repositories (e.g., Snapcraft, Flathub) are optional for personal builds.

2. Installation

Download Pre-built Application (Recommended for Users)

The easiest way to use LocalSend is to install the official release from a trusted source. The app does not have auto-update, so using a package manager or app store is advised.

Select your platform and follow the link:

PlatformRecommended Source(s)
WindowsWinget, Scoop, Chocolatey, or download the latest EXE/Portable ZIP.
macOSApp Store, Homebrew Cask, or download the latest DMG.
LinuxFlathub, Snapcraft, or download the latest AppImage/TAR/DEB. For Arch Linux, use the AUR (localsend-bin).
AndroidGoogle Play Store or F-Droid. You can also sideload the latest APK.
iOSApp Store.
Fire OSAmazon Appstore.

Clone Source Code (For Development/Building)

To build from source, clone the repository and fetch its dependencies.

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

3. Configuration

LocalSend is designed for simplicity and requires minimal configuration. Settings are managed within the app's GUI.

Key In-App Settings:

  • Device Name: Customize your device's visible name on the local network.
  • Theme: Choose between Light, Dark, or System theme.
  • Save To: Set the default directory for received files.
  • Network Options: The app automatically discovers devices via multicast DNS (mDNS). Ensure all devices are on the same local network segment (same subnet/VLAN) and that firewalls allow traffic on the required ports.

No external API keys, environment variables, or configuration files are required for basic operation.

4. Build & Run

Ensure your Flutter environment is correctly set up (flutter doctor should show no major issues for your target platform).

For Development / Local Running

Run the app in debug mode on your connected device or emulator.

# For the default connected device (mobile)
flutter run

# To run on a specific device type, use the -d flag
# flutter run -d chrome  # for web (note: web is not a primary target)
# flutter run -d windows
# flutter run -d linux

Building for Production / Distribution

Follow the platform-specific instructions to produce release builds.

Android:

flutter build apk --split-per-abi
# Outputs: build/app/outputs/flutter-apk/app-<abi>.apk
# For App Bundle (for Play Store):
# flutter build appbundle

iOS & macOS: Requires a Mac with Xcode.

# iOS
flutter build ios
# Open the generated .xcworkspace in Xcode to archive and distribute.

# macOS
flutter build macos
# Outputs: build/macos/Build/Products/Release/LocalSend.app

Windows:

flutter build windows
# Outputs: build/windows/runner/Release/ with .exe and required DLLs.

Linux:

flutter build linux
# Outputs: build/linux/<build mode>/bundle/ with executable and libraries.

5. Deployment

LocalSend is a client application, so "deployment" refers to distributing the built binaries to end-users.

Recommended Distribution Channels:

  • App Stores (Easiest): Submit your built binaries (.aab for Play Store, .ipa for App Store, .msix/.appx for Microsoft Store) through the respective developer portals. This handles updates and trust for users.
  • Package Managers: For Linux/macOS/Windows, consider submitting your package to community repositories like Homebrew, Winget, Scoop, Chocolatey, Flathub, or Snapcraft. This provides a reliable update mechanism.
  • Direct Downloads: You can host the latest release binaries (.exe, .dmg, .AppImage, .apk) on your GitHub Releases page or website for users to download manually.

Deployment Platforms for the App Itself: Given the cross-platform Flutter/Dart stack, the app itself can be deployed to:

  • Mobile: iOS, Android
  • Desktop: Windows, macOS, Linux
  • (Note: Web is not a primary target for this file-sharing app.)

6. Troubleshooting

Devices Cannot See Each Other:

  1. Network Configuration: Ensure all devices are connected to the same Wi-Fi network or subnet. Corporate networks or guest networks with client isolation will block discovery.
  2. Firewall Rules: LocalSend uses mDNS (port 5353/UDP) for discovery and a random HTTPS port (typically in the 53317-53337 range) for file transfer. Ensure your firewall allows these protocols and ports on the local network.
    • Windows: Check Windows Defender Firewall. You may need to allow "LocalSend" through the firewall when prompted.
    • Linux: Configure ufw or firewalld to allow mDNS and the application port.
    • macOS: Ensure the application is allowed in System Settings > Privacy & Security > Firewall.
  3. Multicast DNS (mDNS): Verify mDNS is working. You can try using ping localhost.local or avahi-browse -a on Linux/macOS to test.

App Fails to Build from Source:

  1. Run flutter doctor -v and address all issues listed.
  2. Ensure you have the correct platform-specific dependencies installed (e.g., Visual Studio workloads, Xcode command line tools).
  3. Clean and rebuild:
    flutter clean
    flutter pub get
    flutter run
    

File Transfer Fails or is Slow:

  1. Check that no VPN is active, as it might route local traffic externally.
  2. Ensure you have sufficient storage space on the receiving device.
  3. Large files may take time; the app shows progress.

General Tips:

  • Restart the LocalSend app on all devices.
  • Restart your router/switch if network issues are suspected.
  • For the latest troubleshooting, check the project's GitHub Issues.