mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-25 00:36:31 +02:00
- Added event tracking for desktop app activation and quitting. - Introduced analytics bridge in preload script to handle user identification and event capturing. - Updated IPC channels to support analytics-related actions. - Enhanced analytics functionality in the main process to track user interactions and application updates. - Integrated analytics tracking for folder watching and deep link handling. - Improved connector setup tracking in the web application. This commit enhances the overall analytics capabilities of the application, ensuring better user behavior insights and event tracking across both desktop and web environments. |
||
|---|---|---|
| .. | ||
| assets | ||
| scripts | ||
| src | ||
| .env | ||
| .env.example | ||
| .gitignore | ||
| .npmrc | ||
| electron-builder.yml | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| tsconfig.json | ||
SurfSense Desktop
Electron wrapper around the SurfSense web app. Packages the Next.js standalone build into a native desktop application with OAuth support, deep linking, and system browser integration.
Prerequisites
- Node.js 18+
- pnpm 10+
- The
surfsense_webproject dependencies installed (pnpm installinsurfsense_web/)
Development
pnpm install
pnpm dev
This starts the Next.js dev server and Electron concurrently. Hot reload works — edit the web app and changes appear immediately.
Configuration
Two .env files control the build:
surfsense_web/.env — Next.js environment variables baked into the frontend at build time:
surfsense_desktop/.env — Electron-specific configuration:
Set these before building.
Build & Package
Step 1 — Build the Next.js standalone output:
cd ../surfsense_web
pnpm build
Step 2 — Compile Electron and prepare the standalone output:
cd ../surfsense_desktop
pnpm build
Step 3 — Package into a distributable:
pnpm dist:mac # macOS (.dmg + .zip)
pnpm dist:win # Windows (.exe)
pnpm dist:linux # Linux (.deb + .AppImage)
Step 4 — Find the output:
ls release/