Code Monkey home page Code Monkey logo

z-push-contrib's Introduction

Z-Push-contrib

This is a Z-Push fork with changes that I will try to put into the contrib branch, so they can get into the official Z-Push

IMPORTANT: For them to get into the official Z-Push, you must sign a developer agreement with Zarafa (creators of Z-Push), and give them your rights over the code.

If you see some changes here, and you are the author, I will not contrib them, as I have no rights over them. But I will try to reimplement with different code/approach so I can contribute them. When a sustitution is ready I will remove your changes from this repo. If you want to help the community, contribute them yourself.

IMPORTANT 2: All the code is AGPL licensed (or compatible, like the "include" files). So you can get a copy, modify it, use... your only obligation it's to publish your changes somewhere.


Original Z-Push

URL: http://developer.berlios.de/projects/z-push/ URL: http://z-push.sourceforge.net/soswp/

Z-Push is an implementation of the ActiveSync protocol, which is used 'over-the-air' for multi platform ActiveSync devices, including Windows Mobile, Ericsson and Nokia phones. With Z-Push any groupware can be connected and synced with these devices.

License: GNU Affero Genaral Public License v3.0 (AGPLv3)

Documentation

You can find some configuration guidelines in the Wiki https://github.com/fmbiete/Z-Push-contrib/wiki

Requisites

PHP 5.4 (5.3 should also work, but 5.4 is better) NGINX or APACHE PHP-FPM or MOD_PHP

Configuration

NGINX, 1.4 at least or you will need to enable chunkin mode (Use google for Apache configuration)

server { listen 443; server_name zpush.domain.com;

ssl on;
ssl_certificate         /etc/ssl/certs/zpush.pem;
ssl_certificate_key     /etc/ssl/private/zpush.key;

root    /usr/share/www/z-push-contrib;
index   index.php;

error_log /var/log/nginx/zpush-error.log;
access_log /var/log/nginx/zpush-access.log;

location / {
        try_files $uri $uri/ index.php;
}

location /Microsoft-Server-ActiveSync {
        rewrite ^(.*)$  /index.php last;
}

location ~ .php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_index index.php;
        fastcgi_param HTTPS on;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        # Z-Push Ping command will be alive for 470s, but be safe
        fastcgi_read_timeout 630;
}

}

PHP-FPM max_execution_time=600 short_open_tag=On

And configure enough php-fpm processes, you will need 1.5 x number users

Backends

Each backend has a README file, or comments in their config.php file. Look at them to configure correctly. Also you can look here https://github.com/fmbiete/Z-Push-contrib/wiki

StateMachine

You have 2 StateMachine methods.

  • FILE - FileStateMachine : will store state info into files. You will use it in Active-Pasive setups
  • SQL - SqlStateMachine: will store state info into a database. It uses PHP-PDO, so you will need to install the required packages for your database flavour and create the database. You will use it in Active-Active setups.

User-Device Permissions

Disabled by default, when enabled will limit what users and device can sync against your Z-Push installation. It can auto-accept users, users and device until a maximum number of devices is reached.

If using with FileStateMachine, edit the file STATE_DIR/PreAuthUserDevices to modificate the behaivour. That file is JSON formatted and it's filled each time a new user connect.

If using with SqlStateMachine, look at the zpush_preauth_users table.

Links

Microsoft ActiveSync Specification http://msdn.microsoft.com/en-us/library/cc425499%28v=exchg.80%29.aspx

z-push-contrib's People

Contributors

fmbiete avatar takika avatar tkoester avatar ziirish avatar

Watchers

 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.