* refactor(auth): replace dashboard sessions with stateless tokens * feat(auth): harden session issuance and distributed enforcement * fix(proxy): preserve trusted proxy compatibility defaults * refactor: address dashboard auth review feedback * refactor: remove classic frontend and flatten web app
New API Electron Desktop App
This directory contains the Electron wrapper for New API, providing a native desktop application with system tray support for Windows, macOS, and Linux.
Prerequisites
1. Go Binary (Required)
The Electron app requires the compiled Go binary to function. You have two options:
Option A: Use existing binary (without Go installed)
# If you have a pre-built binary (e.g., new-api-macos)
cp ../new-api-macos ../new-api
Option B: Build from source (requires Go) TODO
2. Electron Dependencies
cd electron
npm install
Development
Start the backend, the frontend, and Electron in separate terminals:
# Repository root
go run main.go
# Repository root
make dev-web
# electron/
npm run dev-app
This will:
- Use the Go backend on port 3000
- Use the Rsbuild frontend development server on port 5173
- Open an Electron window with DevTools enabled
- Create a system tray icon (menu bar on macOS)
- Store database in
../data/new-api.db
Building for Production
Quick Build
# From electron/, build the frontend, Go binary, and desktop package
./build.sh
# Or package an existing binary for the current platform
npm run build
# Platform-specific builds
npm run build:mac # Creates .dmg and .zip
npm run build:win # Creates .exe installer
npm run build:linux # Creates .AppImage and .deb
Build Output
- Built applications are in
electron/dist/ - macOS:
.dmg(installer) and.zip(portable) - Windows:
.exe(installer) and portable exe - Linux:
.AppImageand.deb
Configuration
Port
Default port is 3000. To change, edit main.js:
const PORT = 3000; // Change to desired port
Database Location
- Development:
../data/new-api.db(project directory) - Production:
- macOS:
~/Library/Application Support/New API/data/ - Windows:
%APPDATA%/New API/data/ - Linux:
~/.config/New API/data/
- macOS: