Skip to content

☁️ Sync your bookmarks across browsers via Nextcloud, WebDAV or a local file (and thus any file sync solution)

License

Notifications You must be signed in to change notification settings

jellykells/floccus

Β 
Β 

Repository files navigation

Floccus

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).

Chrome Webstore| Mozilla Addons |-------------------|----------------------------| |

Install

At least one browser and the floccus browser extension.

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. For this to work with floccus, you need v0.11 of the Bookmarks app installed (which requires at least nextcloud v12).
  • 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.

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.

Chrome

You can install it via the Chrome Web store

Alternatively, you can still install it by downloading the Chrome package from the latest release and dropping it into Chrome's extension page.

Firefox

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.)

Firefox for Android

Floccus is not supported by Firefox for Android yet.

Ugrading

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:

  1. Back up your browser bookmarks
  2. Remove the active floccus account for your nextcloud in all browsers
  3. Remove all bookmarks on nextcloud (there's an option for that in the settings)
  4. Setup a new floccus sync account with the adapter that says "with folders" (as opposed to "legacy") in one browser
  5. Trigger a sync run to create the bookmarks and folders on the server
  6. Make sure everything is as expected on the server
  7. Setup floccus sync accounts in all other browsers with the "with folders"-adapter
  8. Done.

Permissions

Floccus requests the following permissions:

Permission Explanation
storage 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.

Usage

  • 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'

Limitations

  • 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

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 sync (3000 Bookmarks) warm sync (3000 Bookmarks)
nextcloud-folders ~20min ~4min
webdav ~3min ~2min

Note: The cold sync performance of the nextcloud-folders adapter depends to an extent on the server's resources as well, such that parallel syncing is not always faster in this case.

Finding duplicates

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.

Troubleshooting

  • 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.

Considerations

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.

Donate

If you'd like to support the creation and maintenance of this software, please consider donating. :)

Contributors

Bernd Wechner
Bernd Wechner

πŸ› πŸ€” ⚠️
jlbprof
jlbprof

πŸ’» πŸ› ⚠️
TeutonJon78
TeutonJon78

πŸ› πŸ€”
Scott P.
Scott P.

πŸ› πŸ€”
Lantizia
Lantizia

πŸ› πŸ€”
TCB13
TCB13

πŸ’» πŸ€” πŸ”Œ

This project follows the all-contributors specification.

Contribute

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.

Setting up a dev environment

Building

  • gulp

Releasing

Firefox expects a zip, for chrome do the following: https://developer.chrome.com/extensions/packaging (private key necessary!)

License

(c) Marcel Klehr
MPL-2.0 (see LICENSE.txt)

About

☁️ Sync your bookmarks across browsers via Nextcloud, WebDAV or a local file (and thus any file sync solution)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.4%
  • HTML 0.6%