Sync your bookmarks across browsers via Nextcloud, WebDAV or a local file (and thus any file sync solution)
The goal of this project is to build a browser extension that syncs your browser data across browser vendors.
News: Floccus can now sync with the local file system using LoFloccus (read below).
Talk to us on gitter!
The following sync methods are available:
- WebDAV: If you have a WebDAV server at hand, like any version of nextcloud/owncloud, box.com or with any other WebDAV server, commercial or self-hosted.
- Nextcloud Bookmarks: Nextcloud in particular also sports a dedicated bookmarks app, which allows you to also access your bookmarks via a nice web UI.
- Local file and more: You can also just sync with a local file, using the companion desktop app LoFloccus. You can then also sync that file to other computers using your favorite file syncing solution, like Dropbox, Syncthing, rsync, etc. You can also create a WebDAV Server on the local machine using Docker in GNU/Linux, check out the project Floccus-WebDavDocker.
Once your server or the LoFloccus app is ready, read on for the browser of your choosing.
Note: It is recommended to not enable native bookmark synchronization built into your browser, as it is known to cause issues.
Note: Please avoid installing the bookmarks_fulltextsearch app in nextcloud as it is known to cause issues with newer versions of the bookmarks app.
Note: If you feel floccus is missing a sync backend and you'd like to chip in, check out the Quick Intro to creating an adapter. I'm happy to accept your pull request! :)
Floccus is regularly tested with the following setups:
Syncing via WebDAV should work with any Nextcloud version.
Alternatively, you can still install it by downloading the Chrome package from the latest release and dropping it into Chrome's extension page.
You can install it via AMO.
(Note that AMO has to review all new releases, though, so you might need to wait a bit before you can install the latest release on firefox.)
Upgrading from v3.x to v4.x
See "Switching from tag-based to folder-based syncing"
Updating from v2.x to v3.0
It is recommended to remove all of your bookmarks from your accounts before using the new version, deleting the accounts and then to create them again, in order to prevent unforeseen problems!
Updating from v3.0 to v3.1
When using a WebDAV account, there's nothing you need to do to benefit from the new order preservation feature. If you are using the nextcloud adapter, it is recommended that you switch to the new nextcloud adapter, which works with the Bookmarks folders feature and also preserves ordering.
Switching from tag-based to folder-based syncing
The first sync method available with floccus syncs folders by creating associated tags on the server, which contain the folder's path. Since then the Nextcloud Bookmarks app supports folders natively and floccus has a new matching sync method. Here's how you switch to the new method:
- Back up your browser bookmarks
- Remove the active floccus account for your nextcloud in all browsers
- Remove all bookmarks on nextcloud (there's an option for that in the settings)
- Setup a new floccus sync account with the adapter that says "with folders" (as opposed to "legacy") in one browser
- Trigger a sync run to create the bookmarks and folders on the server
- Make sure everything is as expected on the server
- Setup floccus sync accounts in all other browsers with the "with folders"-adapter
Floccus requests the following permissions:
|storage, unlimitedStorage||Necessary for maintaining a cache and mappings between server and browser bookmarks|
|alarms||Necessary for triggering synchronization in regular intervals|
|bookmarks||Necessary for creating and reading bookmarks|
|Unlimited web access||Necessary for accessing your self-hosted server. This cannot be limited, because everybody's server has a different URL. Unfortunately, the way webextensions work currently, floccus also gets access to all the data the browser has collected on those websites. However, floccus makes no use of that data and doesn't in any way collect information about you.|
- The accounts panel; After installation the accounts pane will pop up allowing you to create and manage accounts. You will be able to access this pane at all times by clicking the floccus icon in the browser tool bar.
- Your accounts: You can setup multiple accounts and select a bookmark folder for each, that should be synced with that account. Floccus will keep the bookmarks in sync with the server you selected whenever you add or change them and will also sync periodically to pull the latest changes from the server.
- Syncing the root folder: If you want to sync all bookmarks in your browser you need to select the topmost untitled folder in the folder picker. (In case you're wondering: Syncing the root folder across browsers from different vendors is now possible out of the box, because the built-in folder names are now normalized).
The server path: Mapping folders / Profiles
When using the nextcloud Bookmarks adapter, you can specify a 'server folder' in your floccus account setup. This is like the target folder of a copy or rsync command. While the local sync folder you have selected from your browser bookmarks will normally end up being synced to the root bookmark path on your server, you can change that to an arbitrary sub-directory, e.g. /Toolbar, with the 'server folder' setting. If you are using the WebDAV/XBEL adapter, you can do the same by specifying a specific xbel file in the settings.
This way it is possible to sync Firefox' 'Bookmarks Menu' folder to Chrome, which doesn't have a Menu folder out of the box: Simply set up a separate account for each of the main folders in firefox, each with a separate server folder, e.g.:
- Fx '/Bookmarks Toolbar' <=> '/Toolbar'
- Fx '/Other Bookmarks' <=> '/Others'
- Fx '/Bookmarks Menu' <=> '/Menu'
Then, in Chrome you can setup the folders as follows:
- GC '/Bookmarks Toolbar' <=> '/Toolbar'
- GC '/Bookmarks Toolbar/Menu' <=> '/Menu' (You need to create this folder yourself, of course.)
- GC '/Other Bookmarks' <=> '/Others'
- Note that currently you cannot sync the same folder with multiple nextcloud accounts in order to avoid data corruption. If you sync the root folder with one account and sync a sub folder with a different account, that sub-folder will not be synced with the account connected to the root folder anymore.
Performance is an aspect that I try to tackle with gradual improvements. The latest development here is the "parallel sync" option that processes multiple branches of the bookmarks tree in parallel. The benchmark results in this case are as follows:
|adapter||cold initial sync (4000 Bookmarks)||warm sync with no changes (4000 Bookmarks)|
Note: The cold sync performance of the nextcloud-folders adapter depends to an extent on the server's resources as well, such that the times may vary with your setup.
Floccus will sync your bookmarks as-is, including any dupes that are in different folders. If you need to find and remove duplicates in your bookmarks, try something like bookmark-dupes.
- Emojis: MySQL doesn't support emojis out of the box, so if you're syncing to nextcloud and getting Error code 500 from nextcloud, check the nextcloud log for SQL errors and proceed as explained in the nextcloud docs if you get charset errors.
If you need help sorting out problems, try the gitter chat room: https://gitter.im/marcelklehr/floccus
Is this a good idea? I think so. If you'd like to know more, check out the considerations file
What's with the name?
Cirrus floccus is a type of cloud, that
can sync your browser data looks very nice.
If you'd like to support the creation and maintenance of this software, please consider donating. :)
This project exists thanks to all the people who contribute.
This project follows the all-contributors specification.
All contributions, code, feedback and strategic advice, are welcome. If you have a question you can contact me directly via email or simply open an issue on the repository. I'm also always happy for people helping me test new features -- see the issues for announcements of beta versions.
Translations can now be provided over at transifex.
Setting up a dev environment
- Clone this repository.
- Install node.js and npm
- In the root of your floccus repo, run
npm install && npm install -g gulp
- Install firefox developer edition and prepare it as follows: https://developer.mozilla.org/en-US/Add-ons/Setting_up_extension_development_environment
Thank you to all our backers!
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]
(c) Marcel Klehr
MPL-2.0 (see LICENSE.txt)