Skip to content

Horizontal-org/Tella-Desktop

Repository files navigation

Tella Desktop

A desktop version of the Tella app made to share files offline via p2p. This application enables secure, encrypted file transfers between devices without relying on external servers, prioritizing privacy and security for sensitive data exchange.

Prerequisites

  • Go 1.24 or later
  • Node.js 20.11.1 or later
  • Wails CLI (v2.10.1+)

To install Wails:

go install github.com/wailsapp/wails/v2/cmd/wails@latest

Development

  1. Clone the repository
  2. Install frontend dependencies:
cd frontend
npm install
  1. Run in development mode:
wails dev

For Linux systems, you may need to use:

wails dev -tags webkit2_41

This will start both the backend server and frontend development server with hot reload.

Building

To build a production version:

wails build

The built application will be in the build/bin directory.

Building for Windows

We can leverage the Zig toolchain to easily cross-compile golang projects with CGO dependencies, as demonstrated in article 1, article 2 and combine that with Wails manual builds.

  • Install the Zig compiler
  • Run the script build-for-windows.sh

The Windows executable will be saved as tella.exe.

build-for-windows.sh

#!/bin/bash
CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CC="zig cc -target x86_64-windows" CXX="zig cc -target x86_64-windows" go build -tags desktop,production -ldflags "-w -s -H windowsgui" -o tella.exe

Protocol Support

The application implements the Tella P2P protocol with the following endpoints:

  • Default Port: 53317 (user configurable if unavailable)
  • POST /api/v1/ping - Initial handshake for manual connections
  • POST /api/v1/register - Device registration with PIN authentication
  • POST /api/v1/prepare-upload - Prepare file transfer session
  • PUT /api/v1/upload - File upload with binary data

Platform-Specific Notes

macOS Code Signing

The application is configured for code signing on macOS for distribution outside the App Store:

  • Uses Developer ID Application certificate for notarization
  • Includes hardened runtime options for security
  • Requires valid Apple Developer account for signing

To build a signed version for macOS:

  • Update the identity in wails.json with your Developer ID
  • Ensure you have a valid Developer ID Application certificate
  • Run wails build - the app will be automatically signed during build

Compatibility

  • Mobile: Compatible with Tella iOS and Android apps using the same P2P protocol
  • Network: Requires devices to be on the same local network (Wi-Fi)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •