GithubHelp home page GithubHelp logo

jarontf / floccus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from floccusaddon/floccus

1.0 1.0 0.0 4.92 MB

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

Home Page: https://floccus.org

License: Mozilla Public License 2.0

JavaScript 99.51% HTML 0.49%

floccus's Introduction

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

Build Status

Chrome Webstore Mozilla Addons

Community

Talk to us on gitter! ๐Ÿ‘‹

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.
  • 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! :)

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

Android

Floccus is not supported by Firefox for Android yet. But, why wait for mozilla, if you can use Kiwi Browser, which supports floccus! Install instructions are the same as for Chrome.

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 initial sync (4000 Bookmarks) warm sync with no changes (4000 Bookmarks)
nextcloud-folders ~7min ~20s
webdav ~4min ~10s

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.

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

If you need help sorting out problems, try the gitter chat room: https://gitter.im/marcelklehr/floccus

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

This project exists thanks to all the people who contribute.

Bernd Wechner
Bernd Wechner

๐Ÿ› ๐Ÿค” โš ๏ธ
jlbprof
jlbprof

๐Ÿ’ป ๐Ÿ› โš ๏ธ
TeutonJon78
TeutonJon78

๐Ÿ› ๐Ÿค”
Scott P.
Scott P.

๐Ÿ› ๐Ÿค”
Lantizia
Lantizia

๐Ÿ› ๐Ÿค”
TCB13
TCB13

๐Ÿ’ป ๐Ÿค” ๐Ÿ”Œ ๐ŸŒ
gohrner
gohrner

๐Ÿ›
Tank-Missile
Tank-Missile

๐Ÿ›

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.

Translating

Translations can now be provided over at transifex.

Development

Setting up a dev environment

Building

  • gulp

Releasing

  • gulp release

Backers

Thank you to all our backers! ๐Ÿ™ [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

License

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

floccus's People

Contributors

marcelklehr avatar jlbprof avatar transifex-integration[bot] avatar dependabot-preview[bot] avatar dependabot-support avatar marlluslustosa avatar monkeywithacupcake avatar tcb13 avatar ljoonal avatar

Stargazers

zhengjiren avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.