npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cozy-desktop

v0.13.0

Published

File Synchronization Client for Cozy Cloud

Downloads

37

Readme

Cozy Desktop (alpha)

Build Status

The Cozy desktop app allows to sync the files stored in your Cozy with your laptop and/or your desktop. It replicates your files on your hard drive and apply changes you made on them on other synced devices and on your online Cozy.

Note: the code is currently alpha quality. But it's moving fast and we plan to do a more stable release in the coming weeks. Stay tuned!

:warning: Backup your data before playing with cozy-desktop!

CLI Install

The cozy-desktop requires node.js (4 recommended, but it is tested on 0.10 and 5 too) and build tools.

For example, you can install them on debian with:

sudo apt-get install nodejs-legacy build-essential

Then you can install cozy-desktop via NPM:

sudo npm install cozy-desktop -g

Note: if you see a warning about fsevents and you are not on OSX, you can safely ignore it. fsevents is an optional dependency that is only used on OSX.

CLI Running

Configure it with your remote Cozy and your local directory:

cozy-desktop add-remote-cozy https://url.of.my.cozy/ ~/cozy

It will synchronize your local directory ~/cozy with your remote cozy.

Then start synchronization daemon:

cozy-desktop sync

Other commands can be listed with

cozy-desktop -h

Advanced use cases

It's possible to make cozy-desktop ignore some files and folders by using a .cozyignore file. It works pretty much like a .gitignore, ie you put patterns in this file to ignore. The rules for patterns are the same, so you can look at git documentation to see for their format. For example:

*.mp4
heavy-*
/tmp

Cozy-desktop keeps the metadata in a pouchdb database. If you want to use several synchronized directories, you'll have to tell cozy-desktop to keeps its metadata database somewhere else. The COZY_DESKTOP_DIR env variable has this role.

For example, if you want to add a second synchronized directory, you can do:

export COZY_DESKTOP_DIR=/sync/other
cozy-desktop add-remote-cozy https://url.of.my.others.cozy/ /sync/other
cozy-desktop sync

Limitations

Cozy-desktop is designed to synchronize files and folders between a remote cozy instance and a local hard drive, for a personal usage. We tried to make it simple and easy. So, it has some limitations:

  • It's only a command-line interface and it is tested only on Linux for the moment. We are working to improve this in the next weeks.

  • Files and folders named like this are ignored:

    • .cozy-desktop (they are used to keep internal state)
    • _design (special meaning for pouchdb/couchdb)
  • It's not a particularly good idea to share code with cozy-desktop:

    • node_modules have tons of small files
    • compiled code often has to be recompile to works on another environment
    • git and other VCS are not meant to be share like this. You may lose your work if you make changes on two laptops synchronized by cozy-desktop (it's the same with dropbox, google-drive, syncthing, etc.)
  • If the same file has been modified in parallel, cozy-desktop don't try to merge the modifications. It will just rename of one the copies with a -conflict suffix. It's the same for folders.

  • We expect a personal usage:

    • a reasonable number of files and folders (< 1.000.000)
    • a reasonable number of files per folder (< 10.000)
    • a reasonable size for files (< 1 To)
    • a reasonable size for files and folders path (< 1024 bytes)
    • not too many changes
    • etc.
  • For OSX, filenames with weird unicode characters may be problematic in some rare cases.

  • Symbolic links and ACL are not yet handled.

  • The full sync directory must be on the same partition.

  • Large files must be uploaded/downloaded in one time (we are thinking about making it possible to split a large file in several blocks for download/upload).

  • Due to its nature, cozy-desktop needs resources:

    • CPU, for checksums in particular
    • RAM, to keep all the metadata in memory, and for nodejs libraries
    • Disk, but the overhead from cozy-desktop is low
    • Network bandwidth obviously
  • No advanced feature, like P2P replication between several cozy-desktop instances.

Development documentation

You can read more documentation for developer:

License

Cozy Desktop Client is developed by Cozy Cloud and distributed under the AGPL v3 license.

What is Cozy?

Cozy Logo

Cozy is a platform that brings all your web services in the same private space. With it, your web apps and your devices can share data easily, providing you with a new experience. You can install Cozy on your own hardware where no one profiles you.

Community

You can reach the Cozy Community by:

  • Chatting with us on IRC #cozycloud on irc.freenode.net
  • Posting on our Forum
  • Posting issues on the Github repos
  • Mentioning us on Twitter