An open API service indexing awesome lists of open source software.

https://github.com/floccusaddon/floccus

:cloud: Sync your bookmarks privately across browsers and devices
https://github.com/floccusaddon/floccus

bookmark bookmarks browser-bookmarks chrome chrome-extension edge-extension firefox firefox-addon firefox-extension nextcloud nextcloud-bookmarks owncloud sync sync-solution syncing-bookmarks webdav webextension

Last synced: 13 days ago
JSON representation

:cloud: Sync your bookmarks privately across browsers and devices

Awesome Lists containing this project

README

        

# ![](https://raw.githubusercontent.com/marcelklehr/floccus/master/icons/logo.png) Floccus

![](https://raw.githubusercontent.com/marcelklehr/floccus/develop/img/screen_chrome_wide.png)
> Sync your bookmarks privately across browsers and devices

[![Tests](https://github.com/marcelklehr/floccus/workflows/Tests/badge.svg)](https://github.com/marcelklehr/floccus/actions?query=workflow%3ATests)

- 🔖 Syncs your real, native browser bookmarks directly
- ☸ Sync via [Nextcloud Bookmarks](https://github.com/nextcloud/bookmarks), Google Drive, any Git server (like GitHub, Gitlab, Gitea, etc.) or [any WebDAV-compatible service](https://community.cryptomator.org/t/webdav-urls-of-common-cloud-storage-services/75)
- ⚛ Use any browser that supports Web extensions (e.g. Firefox, Chrome, Edge, Opera, Brave, Vivaldi, ...; Safari [not yet](https://github.com/floccusaddon/floccus/issues/23))
- 📲 Install the floccus Android app to access your bookmarks on your phone
- 💼 Create as many sync profiles as you need
- 🚚 Control sync strategy (i.e. uni- or bidirectional), ⏳ sync interval and 📂 synced folder
- 📦 Easily export your configuration
- 🔒 Keep your credentials secure with an encryption passphrase

[![Download now](https://img.shields.io/badge/Download-now-limegreen.svg?&style=for-the-badge)](https://floccus.org/download)

This is the SHA-256 fingerprint of the certificate used to sign the floccus APKs:

```
ffed2778ff07371e6367b6dcf5d7c1327c57ff7158b8444029182a9aa2dd7085
```

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

| [Open Collective](https://opencollective.com/floccus) | [](https://github.com/sponsors/marcelklehr) | [](https://liberapay.com/marcelklehr/donate) | [](https://www.paypal.me/marcelklehr1) |
|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| :-------------------------------------------------------------------------------------------------------------------------------------------------: |:--:|:---:|

## 🎬 Getting started
If you don't know how to start with Floccus, [read these guides](https://floccus.org/guides).

If you need help, talk to us on [gitter](https://gitter.im/marcelklehr/floccus), matrix ([`#marcelklehr_floccus:gitter.im`](https://matrix.to/#/#marcelklehr_floccus:gitter.im?utm_source=gitter)), in the [official Nextcloud Bookmarks talk channel](https://cloud.nextcloud.com/call/u52jcby9), or drop [me](https://marcelklehr.de) a mail! :wave:

### 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 if you get charset errors](https://docs.nextcloud.com/server/stable/admin_manual/configuration_database/mysql_4byte_support.html).

If you need help sorting out problems, try the gitter chat room:

## Considerations

Is this a good idea? I think so. If you'd like to know more, check out [the considerations file](./CONSIDERATIONS.md)

## What's with the name?

[Cirrus floccus](https://en.wikipedia.org/wiki/Cirrus_floccus) is a type of cloud, that can sync your browser data looks very nice.

## 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

🐛
Torsten Kurbad
Torsten Kurbad

🐛
gerroon
gerroon

🐛
Matija Nalis
Matija Nalis

🤔 💬 🐛
Marcel Klehr
Marcel Klehr

💬 💻 🖋 🎨 📖 🚇 🚧 📆
binsee
binsee

💻
Marc Shapiro
Marc Shapiro

💻


Marllus Lustosa
Marllus Lustosa

💻
Izzy
Izzy

🐛 🤔 🚇
sunjam
sunjam

🤔 ⚠️
Danny Siminiuk
Danny Siminiuk

⚠️ 🤔
Seirade
Seirade

🤔 🐛
pinpontitit
pinpontitit

🤔 🐛 💻
Motte
Motte

💻 🐛


macrogreg
macrogreg

💻
Andy Balaam
Andy Balaam

💻 🐛

This project follows the [all-contributors](https://github.com/kentcdodds/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](https://github.com/marcelklehr/floccus/issues/new) 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](https://www.transifex.com/floccus/floccus/).

![](https://www.transifex.com/projects/p/floccus/resource/messages-json--develop/chart/image_png)

### Development

#### Setting up a dev environment

- Clone this repository.
- Install the [latest LTS version of node.js](https://nodejs.org/en/download/).
- In the root of your floccus repo, run `npm install`.
- Run `npm run build` to build.
- Find out more on how to develop browser extensions here: .

For building the android app you'll need Android Studio

- Open the `android/` folder in Android studio and build the App like any other Android app.
- `npm run build` and `npm run watch` will push changes to `android/` as necessary.

#### Building

- `npm run build`

Run the following to automatically compile changes as you make them:

- `npm run watch`

#### Releasing

- `npm run build-release`

#### Windows-specific considerations

Follow the above general guidance on setting up a dev environment.
There are Windows-specific versions of some npm scripts:
- build: `npm run build-win`
- build-release: `npm run build-release-win`
- watch: `watch-win`

When building for the first time you may get an error about `gulp` not being found.
You can install gulp globally on your system by executing `npm install -g gulp` from your repo root.
It is recommended that you do this proactively after executing `npm install` in the repo root for the first time.

#### Running the browser extension and corresponding tests locally

- Build the browser extension:
`npm run build-release`
(`npm run build-release-win` if you use Windows)

- After a successful build, the extension package will be found in:
`RepoRoot/builds/`

- The following steps use _Firefox_ as an example; other browsers work similarly.
The Firefox extension package is a file with an `.xpi`-extension. It is a simple archive. To modify it, you can rename it to `.zip`, make the changes, and then rename it back to `.xpi`. Many archive-related tools know this and allow you to work with the `.xpi`-file directly (e.g. [Total Commander](https://www.ghisler.com/download.htm)).

- Enable the extension package for local testing:
By default, tests are not included into the release archive. To run tests in your local browser, copy the file
`RepoRoot/dist/js/test.js`
into the release package, so that it is located at
`FloccusPackage.xpi/dist/js/test.js`

- Open Firefox using a dedicated test-profile:
**If you use your main profile for testing, the test scripts will likely destroy your existing bookmarks and open tabs!**
To interact with profiles, go to this address:
`about:profiles`

- Load the extension:
In the a dedicated Firefox profile window, go to
`about:debugging`
Select "This Firefox", and then under "Temporary Extensions", select "Load Temporary Add-on...". Then select the `.xpi`-file you prepared earlier.
(Remember to unload the extension if you need to modify/rebuild the extension package.)

- The extension is now loaded. You can access it via the browser's extensions menu.

- Run tests:
After loading the extension, click on "Manifest URL". It will open a new tab with the URL
`moz-extension://SomeGuid/manifest.json`
Modify the URL to read
`moz-extension://SomeGuid/dist/html/test.html`
, keeping the same GUID and press enter. The test run should start automatically.

- Debug or pause tests:
Press `F12` to open developer tools.
On the "Debugger" tab, you can pause the execution, set breakpoints and step through the code.

Happy developing and thank you for your contributions!

## Backers

Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/floccus#backer)]

## Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/floccus#sponsor)]










## License

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