Giter VIP home page Giter VIP logo

syncany's Introduction

Syncany Build Status

Important: Please be aware that this is still ALPHA code! Do not use it for important files.

Syncany is an open-source cloud storage and filesharing application. It allows users to backup and share certain folders of their workstations using any kind of storage, e.g. FTP, Amazon S3 or Google Storage.

While the basic idea is similar to Dropbox and JungleDisk, Syncany is open-source and additionally provides data encryption and more flexibility in terms of storage type and provider:

  • Data encryption: Syncany encrypts the files locally, so that any online storage can be used even for sensitive data.
  • Any storage: Syncany uses a plug-in based storage system. It can be used with any type of remote storage.

Directly jump to ...

Download and install daily snapshots

We're building snapshots of the latest master-branch commit as soon as they are committed (older snapshots are removed). At the moment, the build process outputs a *.tar.gz and a *.zip archive, as well as an executable for Windows (*.exe installer) and a Debian/Ubuntu package (*.deb).

To download it, check out the latest builds!
The corresponding JavaDoc and the JUnit test reports is also available.

Please note: These builds are created from unstable, sometimes erroneous code. Things might change very often and newer versions might not support older repositories. Please do NOT use these builds for important files.

Sample usage

Usage is pretty similar to a version control system. If you have used Git or SVN, it should feel a lot alike.

1. Initialize a local directory

    $ syncany init 
    
    Choose a storage plugin. Available plugins are: ftp, local, s3
    Plugin: ftp
    
    Connection details for FTP connection:
    - hostname: myhost.example.com
    - username: myuser1
    - password: somepassword1
    - port (optional):

    The password is used to encrypt data on the remote storage.
    Please choose it wisely.

    Password: (secret password)
    Confirm: (repeat it)

This sets up a new repository on the given remote storage and initializes the local folder. You can now use syncany connect to connect to this repository from other clients.

2. Add files and synchronize

To let Syncany do everything automatically, simple use the syncany watch command. This command will synchronize your local files.

    $ syncany watch 

You can also manually trigger the upload of your local files or the download of remote changes:

    $ syncany up
    $ syncany down

For a detailed demo, please refer to a screencast.

Build and test Syncany

0. Requirements: Syncany is based on Java 7 and we use Gradle for dependency management and as build tool. Gradle does all the dependency magic. All you need to build Syncany is a JDK 7. If you like to create a Debian package (optional), you also need FPM installed.

On a Debian-based system that would be:

    $ sudo apt-get install openjdk-7-jdk

And optional for building Debian packages (debian task):

    $ sudo apt-get install ruby ruby-dev build-essential rubygems
    $ sudo gem install fpm

1. Checkout code and build

    git clone http://github.com/binwiederhier/syncany
    cd syncany        
    ./gradlew installApp         (on Linux / Mac OS)
    gradlew installApp           (on Windows)

This compiles and installs the Syncany command line client to syncany-cli/build/install/syncany/bin/syncany. You can run it from there.

2. Install command line client (to run syncany from anywhere)

To be able to run syncany (or short: sy) from anywhere, you can install a symbolic link on your system. On Linux, the link is placed in /usr/local/bin, on Windows, a batch file is placed in C:\Windows. To do this, run the following commands:

On Linux / Mac OS:

    sudo ./gradlew fakeinstall   (on Linux / Mac OS)

On Windows:

  • Click Start, type cmd, and then press CTRL+SHIFT+ENTER. If a warning appears, click Yes.
  • In the command box, cd to your checkout directory and run gradlew fakeinstall

Please note: There is no easy way to permanently install Syncany on your system, yet. We're working on an installer for Windows, and packages for Linux.

3. Run it!

    syncany --help        

Documentation, diagrams and screencasts

There is quite a bit of reading material on Syncany already. Check out the following links:

Posts and papers

Screencasts

Diagrams

Generated JavaDoc and JUnit Reports
The up-to-date JavaDoc of the master branch is always compiled to syncany.org/docs/javadoc. It includes the JavaDoc of all Gradle modules in the repo. All results of the JUnit tests are compiled to syncany.org/reports. The corresponding distributables for this code are located at syncany.org/dist.

Setup Eclipse IDE for development

  1. Checkout Syncany on the command line:

     cd /home/user/workplace
     git clone http://github.com/binwiederhier/syncany
     cd syncany
    
  2. Generate Eclipse project files and download dependencies:

     ./gradlew eclipse      (on Linux / Mac OS)
     gradlew eclipse        (on Windows)   
    
  3. Open Eclipse and create a new workplace, e.g. at "/home/user/workplace"

  4. In Eclipse: File -> Import -> Existing Projects Into Workplace -> Select Root Directory --> Browse

    • Select "/home/user/workplace/syncany"
    • Tick the Search nested projects checkbox (only available in Eclipse Kepler)
  5. Click "Finish"

How can I help?

If you'd like to help developing Syncany, there are a few ways to do so.

  1. TODO markers: The Java code contains lots of TODO markers, classified in high, medium and low. Using the Tasks tab in Eclipse, pick one or two and start coding. To get started, check out the Setup Eclipse section above.

  2. Issues, features and tasks: Besides the markers in the code, there are lots of other things that need doing. There is an always up-to-date list in the issue tracker with the label status:help-needed.

If you have questions, feel free to ask. There are maaaany ways to do so. Check out the section below!

Licensing, website and contact

Syncany is licensed under the GPLv2 open source license. It is mainly developed by Philipp C. Heckel. We are always looking for people to join or help out. Feel free to contact us:

syncany's People

Contributors

binwiederhier avatar vwiencek avatar pimotte avatar fabrice-rossi avatar gtrefs avatar christf avatar matmaul avatar stuartcampbell avatar guitarlum avatar

Watchers

Markus Gritsch avatar James Cloos avatar

Forkers

digideskio

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.