CodeDeployer is a desktop deployment assistant for developers who want local code changes to be uploaded automatically to one or more server directories.
Status: early Windows-focused prototype. The app is usable, but still needs more production hardening before it should be treated as unattended deployment infrastructure for critical systems.
- Watches local project folders and uploads changed files automatically.
- Supports FTP and SFTP, with SFTP recommended.
- Groups multiple directory mappings under one server workspace.
- Supports one local directory mapped to one remote directory, or one server workspace with many directory rules.
- Lets users browse local and remote directories instead of typing paths only.
- Provides manual upload sync and remote-to-local download comparison.
- Keeps upload/download activity in the transfer log panel.
- Supports per-mapping ignore rules for source-safe deployment.
- Stores saved passwords and key passphrases with Electron
safeStorage. - Runs in the tray so enabled watchers can continue after closing the window.
- Provides Chinese and English UI language switching.
CodeDeployer is designed for source-code deployment workflows:
- Remote files are not deleted by default.
- Common non-source files are ignored, including
.git/, dependencies, build output, logs, archives,.envfiles, and private keys. - SFTP uploads use a temporary remote file and then rename it into place.
- When replacing an existing SFTP file, the app tries to preserve the original remote file owner, group, and permissions if the server allows it.
Download the Windows installer from the project releases page when releases are published.
For a local build:
npm install
npm run dist:winThe installer is generated under release/.
Requirements:
- Node.js 20 or newer is recommended.
- Windows is the primary development target.
Commands:
npm install
npm run dev
npm run typecheck
npm run build
npm run icons
npm run dist:winCommand reference:
npm run devstarts the Vite renderer and Electron app.npm run typecheckchecks both main/preload and renderer TypeScript.npm run buildcreates the production Electron and renderer bundles.npm run iconsregenerates the app icons from the source asset.npm run dist:wincreates a Windows x64 NSIS installer.npm run pack:wincreates an unpacked Windows app for quick local checks.
src/main/ Electron main process, storage, transfer, tray, IPC
src/preload/ Safe renderer-to-main bridge
src/renderer/ React UI
src/shared/ Shared TypeScript types
assets/ App icon and brand assets
docs/ Product, architecture, and roadmap notes
scripts/ Icon generation and Windows packaging scripts
config/ Example profile configuration
- Profiles and workspaces are stored in Electron's
userDatadirectory. - Transfer logs are stored as
logs.jsonin Electron'suserDatadirectory. - Passwords and key passphrases are encrypted through Electron
safeStorage. - Ignore rules are configured independently for each mapping.
- FTP is supported for compatibility, but SFTP is the recommended protocol.
Issues and pull requests are welcome. Please read CONTRIBUTING.md before submitting changes.
CodeDeployer is released under the MIT License.