| # 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)** | |
| ```bash | |
| # 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 | |
| ### 3. Electron Dependencies | |
| ```bash | |
| cd electron | |
| npm install | |
| ``` | |
| ## Development | |
| Run the app in development mode: | |
| ```bash | |
| npm start | |
| ``` | |
| This will: | |
| - Start the Go backend on port 3000 | |
| - 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 | |
| ```bash | |
| # Ensure Go binary exists in parent directory | |
| ls ../new-api # Should exist | |
| # Build for 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: `.AppImage` and `.deb` | |
| ## Configuration | |
| ### Port | |
| Default port is 3000. To change, edit `main.js`: | |
| ```javascript | |
| 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/` | |