nowsync 0.3b3.dev30
A set of tool for synchronizing local modification to remoteWSGI server, makes life of designer easier
License: MIT

NowSync
=======

NowSync is a set of tool for synchronizing local modification to remote
WSGI server, makes life of designer easier.

How it works
------------

There is two part of NowSync, one is the server, it runs your WSGI application
and its own WSGI application for file synchronizing.  And the other part of
NowSync is the client, it monitors changes in local folders, if those files
are changed, it will upload those modifications to remote server.

Which means, the designer doesn't have to run a local application, all they 
have to do is get a copy of the application in his local computer, and run 
the NowSync client.

Installation
------------

To install NowSync, type::

   easy_install nowsync
   
Or, if you perfer pip::

   pip install nowsync

Configuration
-------------

To run NowSync, you need to write a configuration file, it will be read both
by the client and server, it is in YAML format, here is an example::

    ---
    
    # show we turn on the debug mode of NowSync server?
    debug: True
    
    # NowSync server
    nowsync:
        interface: 0.0.0.0
        port: 5001
        # can be accessed by users only
        user_only: True
        # are we under a proxy?
        under_proxy: True
       
    # guest WSGI app server to run
    app:
        interface: 0.0.0.0
        port: 5000
        user_only: True
        under_proxy: True
        # the path of WSGI application to run
        # wsgi here is the module, and application is the variable name in
        # the module
        app_path: wsgi:application
    
    client:
        # url to NowSync API
        url: http://develop.example.com:5001/api/
        
        # user name
        username: alvin
        password: password_goes_here
    
    # path to directory to sync
    sync_path: .
    
    # files that we want to sync
    sync_files: [
        'myproject/static/**',
        'myproject/templates/**',
    ]
    
    # files that we don't want to sync
    ignore_files: [
        '*.pyc',
        '.hg/*',
        '.git/*',
        '.*',
        'nowsync.yaml',
    ]
    
    # users who can access to NowSync server or guest application
    users:
        alvin: password_goes_here
    
    ...
     
Put the configuration file nowsync.yaml in the folder of your project.  The
structure may look like this::

   myproject/
       + wsgi.py
       + nowsync.yaml
       + setup.py
       + myproject/
           + static/
           + templates/
           + models/
           + views/
           
How to use
----------
           
To run nowsync server, here you type::

   nowsync_server
   
And you should see::

   running nowsync_server
   INFO:nowsync.server:Start new process
   INFO:werkzeug: * Running on http://0.0.0.0:5001
    * Running on http://0.0.0.0:5000/
    
With proper configuration in project folder, all designer has to do is get a
copy of your project, and run::

   cd myproject
   nowsync_client
   
For now, it synchronizes files in myproject, your designer just modify the
template, CSS and images,  and all the modifications will reflect in the 
remote WSGI server.