Skip to content

Build from Source

S3 Manager is built with Electron Forge and Vite. These instructions are for developers who want to run or package the app from source.

RequirementVersion
Node.js22 or newer
npmbundled with Node.js

No native module compilation is required. S3 Manager uses node-sqlite3-wasm (a WebAssembly build of SQLite) specifically to avoid Electron ABI rebuilds.

Terminal window
git clone https://github.com/NoiXdev/s3Manager.git
cd s3Manager
npm install
Terminal window
npm start

This launches the app via electron-forge start with Vite’s dev server powering the renderer (hot-reload). Changes to main-process files require a full restart of npm start; renderer changes hot-reload automatically.

Terminal window
npm test

Runs the Vitest test suite once. To run in watch mode:

Terminal window
npm run test:watch
Terminal window
npm run lint
npm run typecheck

lint runs ESLint over all .ts and .tsx files. typecheck runs tsc --noEmit.

Terminal window
npm run make

npm run make runs electron-forge make, which packages the app and then builds platform-specific installers for the current OS:

PlatformArtifact
macOSDMG (via @electron-forge/maker-dmg)
WindowsSquirrel installer (via @electron-forge/maker-squirrel)
Linux.deb (via @electron-forge/maker-deb) and .rpm (via @electron-forge/maker-rpm)

Output lands in the out/ directory.

Terminal window
npm run package

Produces the platform-specific app bundle in out/ without wrapping it in an installer. Useful for quick smoke-testing the packaged build.

Code signing and notarization only run when Apple credentials are present in the environment (APPLE_API_KEY_ID, APPLE_API_KEY, APPLE_API_ISSUER). A local npm run make produces an unsigned build and is not affected by the absence of those variables.

See docs/macos-signing.md in the repository for CI setup details.