A cross-platform desktop application built with ElectronJS for synchronizing files to Cloud storage services.
Note: Because the server is deployed on Render, the first login may take a few seconds while the server starts up. Please wait for the loading indicator before proceeding.
- Cross-platform support (Windows, macOS, Linux)
- Seamless file synchronization with Cloud storage services like Google Drive, Box,...
- Real-time updates and conflict resolution
- User-friendly interface built with React and styled using TailwindCSS
- All synchronized files and folders are stored inside a folder named
__ticklabfs_backup
in your Cloud storage — please do not rename, move, or delete this folder, as doing so will break future backups.
- Node.js
- npm
- A Google Cloud Platform account
- A Box Platform account
-
Clone the repository:
git clone https://github.com/BaoDuong254/file-synchronizer.git cd file-synchronizer
-
Install Electron-vite dependencies:
npm install
-
Install backend dependencies:
cd src/server npm install
-
Install frontend dependencies:
cd src/renderer npm install
Note: You can also download a release package for your operating system from the repository’s Releases page.
-
Copy the example environment file:
cp .env.example .env
-
Edit
.env
and set the following variables:GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET
BOX_CLIENT_ID
BOX_CLIENT_SECRET
BACKEND_URL
-
Setup credentials in Google Cloud Platform:
- Create or select a project
- Enable the Google Drive API and OAuth2
- Create OAuth2 credentials for a Web Application
- Copy the Client ID and Client Secret into your
.env
Note: The setup steps are similar for other cloud providers—simply create the corresponding credentials and update the variables above.
-
Start the backend server:
npm run server
-
Start the Electron app (in a separate terminal):
npm run dev
-
Login and sync:
- The Electron window will open
- Sign in with your Cloud account
- Choose files or folders to synchronize
We welcome contributions! To contribute:
-
Fork the repository
-
Create a branch for your feature or fix:
git checkout -b feature/your-feature-name
-
Make your changes and commit:
git commit -m "Add feature X"
-
Push to your branch:
git push origin feature/your-feature-name
-
Open a Pull Request on GitHub and describe your changes.
If you encounter any bugs or errors, please open an issue on GitHub and include:
- Steps to reproduce the problem
- Expected vs. actual behavior
- Relevant logs or error messages
Note: This application is currently in development. If you find any issues or have suggestions for improvements, please report them or contribute via pull requests. We appreciate your feedback!