I'm using this myself daily, to sync notes and other files between between desktop and tablet (Using Cryptomator, since one can't trust Amazon. If you do use Cryptomater, you "MUST" switch from WebDAV to WinFsp in the settings!)
As a general rule - don't change/delete files unless the client is idle (green icon or no log output)! (It's fine to e.g. drag and drop a ton of files but you will probably run into a problem particularly if you edit the same file repeatedly within a few seconds.)
Make backups of your data regularly!
If you want the tray icon to look prettier, you have to manually enable the compatibility setting -> high DPI -> scaling behavior performed by: application.
If you can test and confirm any of the ?
, please let me know! (Even if it doesn't work. Especially if it doesn't work... π)
"UI" (Tray icon) | CLI | |
---|---|---|
Windows | β | β |
Linux | ? | β |
Mac | ? | ? |
<your server>/sns
. Then configure your S3 bucket to send notifications to that SNS topic.pnpm install
pnpm start:client
cli
.node-sea
You have to install the signing feature of the Windows SDK and possibly change the path in build-sea.bat
.
I've been going back and forth between node:sea
and pkg
. Because of that, I am keeping the code for both - for the time being at least. The latest is that with node:sea
, one gets brief command prompt popups here and there, while one doesn't with pkg
.
This should probably structured like a monorepo - separate client, server and shared. But since this was just supposed to be a quick project, I won't do that for now. (This is why I've put dependencies needed by the client into devDependencies
- they are not necessary for server deployment and will exist when building the client locally anyway.)
Tray icon DPI nonsense: I tried to attach a manifest to both pkg
and node:sea
.exes using both mt
and rcedit
. The pkg
exe shrinks by 4 MB and doesn't work any more. With the node:sea
exe, rcedit
freezes. mt
works but would require a environment variable override: "Node.js is only supported on Windows 8.1, Windows Server 2012 R2, or higher. Setting the NODE_SKIP_PLATFORM_CHECK environment variable to 1 skips this check, ...". Since it's not possible to bake environment variables into the .exe with node:sea
, this is obviously not acceptable either. The only thing I can think of to resolve this would be to create a non-node wrapper that runs the .exe. Or maybe bun
or deno
become a viable alternative at some point (As of October 2024, I don't consider either of them anywhere near production ready. bun
can't handle windows paths, at least in with projects like this one. deno
still doesn't clean up unneeded npm packages.)
Multiple strategies are needed to prevent infinite loops:
ignoreFiles
in global state.tsimp
fails without providing an error message, tsx
works. π€·ββοΈ
> tsimp .
βELIFECYCLEβ Command failed with exit code 13.