mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-25 00:36:31 +02:00
| .. | ||
| assets | ||
| scripts | ||
| src | ||
| .env | ||
| .gitignore | ||
| 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/