A self-hosted solution to keep your browser's bookmarks synchronized without limiting yourself to one provider.
- Multi-browser support: If your browser speaks WebExtensions, you're in!
- KISS: Download the latest database or upload your current bookmarks. No "incremental" blah blah with extensive calculations etc.
- Open Source: Trust nobody (including me)!
ymarkswill clone your latest two databases in case you fucked it up.
You'll need a decent C compiler and the
cc -I . -I /usr/local/include -o ymarks 3rdparty/cJSON.c src/backup.c src/main.c -lsqlite3
Your exact compiler command could vary, depending on your library and include paths.
build.cmd file for a clue about how to compile with Clang on Windows.
SILENTif you want the server to shut the fuck up while running, otherwise
ymarkswill log incoming requests to
NO_BACKUPif you do not want
ymarksto automatically create backup files.
KEEP_VISIBLEif you do not want to hide the server window after the start. (By default, it'll disappear after a successful start.)
Just grab the extension for your preferred WebExtension-capable browser from ymarks.org.
Set up the server
- Run the executable. It will run on port 8888 by default. If you'd prefer to use a different port, please change the
constants.h, recompile and try it again.
- (Optional) Place a file named
PIN.txtin the same folder as the compiled binary is in order to change your PIN from "12345" to something else. It will have to be a number though.
Set up the browser extension(s)
Right now, we support Firefox and Chrome (less so, Vivaldi). Grab the extension as usual. :-)
- Support synchronization of bookmark tags. There does not seem to be a WebExtensions API for that yet.
The server part of
ymarks comes with a number of third-party libraries (see
/server/3rdparty), licensed under the terms of the BSD resp. MIT licenses. Everything else in this repository is original work, licensed under the terms of the WTFPL license. Please refer to the
server/COPYING file for details. Feel free to do whatever you want with it.