{"id":206,"date":"2012-08-17T11:42:38","date_gmt":"2012-08-17T11:42:38","guid":{"rendered":"https:\/\/olkn.homelinux.net\/2012\/08\/firefox-sync-server\/"},"modified":"2012-08-17T11:42:38","modified_gmt":"2012-08-17T11:42:38","slug":"firefox-sync-server","status":"publish","type":"post","link":"https:\/\/olkn.myvnc.com\/?p=206","title":{"rendered":"Firefox Sync Server"},"content":{"rendered":"<p>After getting a lot of trouble with the Xmarks sync on the quit old iceweasel that is installed on my desktop machine (Debian lenny), I decided to look for alternatives and found the firefox sync server. To run my own sync server I followed the installation instructions from mozilla and also some other nice guides available via websearch. Here are the basic steps:<br \/>\nget the necessary packages:<br \/>\naptitude install python-dev mercurial sqlite3 python-virtualenv<\/p>\n<p>Create a new user for the sync server using the apropriate commands and include www-data, the apache user, in the newly created group to give acces to the python script.<\/p>\n<p>install the server from source:<\/p>\n<p>$ hg clone https:\/\/hg.mozilla.org\/services\/server-full<br \/>\n$ cd server-full<br \/>\n$ make build<\/p>\n<p>Create some directories as there are<\/p>\n<ul>\n<li>data for the sqlite files &#8211; I will switch to mysql very soon<\/li>\n<li>tmp for some temporary python files<\/li>\n<li>logs just to keep the synchronisation logs seperate from the rest &#8211; I am not sure about access rights when writing directly to the logs directory<\/li>\n<\/ul>\n<p>And now edit the configuration files:<br \/>\n<code><br \/>\n$ vi sync.wsgi<br \/>\n[..]<\/p>\n<p>os.environ['PYTHON_EGG_CACHE'] = '\/path\/to\/tmp\/python-eggs'<\/p>\n<p>[..]<\/code><br \/>\n<code><br \/>\n    $ vi development.ini<\/p>\n<p>    [..]<\/p>\n<p>    [handler_syncserver_errors]<br \/>\n    class = handlers.RotatingFileHandler<br \/>\n    args = (\u2018\/path\/to\/logs\/sync-error.log\u2019,)<br \/>\n    [..] <\/code><br \/>\n<code><br \/>\n    $ vi etc\/sync.conf<\/p>\n<p>    [..]<\/p>\n<p>    [storage]<br \/>\n    backend = syncstorage.storage.sql.SQLStorage<br \/>\n    sqluri = sqlite:\/\/\/\/path\/to\/data\/usersettings.db<br \/>\n    [..]<\/p>\n<p>    [auth]<br \/>\n    backend = services.auth.sql.SQLAuth<br \/>\n    sqluri = sqlite:\/\/\/\/path\/to\/data\/usersettings.db<\/p>\n<p>    [..]<\/p>\n<p>    fallback_node = https:\/\/<dynDNS address>\/<br \/>\n    [..]<\/code><br \/>\nAnd finally add the directives for apache to access the wsgi interface:<br \/>\n<code><br \/>\nWSGIProcessGroup ffsync<br \/>\n        WSGIDaemonProcess ffsync user=ffsync group=ffsync processes=2 threads=25<br \/>\n        WSGIPassAuthorization On<br \/>\n        WSGIScriptAlias \/ffsync \/home\/ffsync\/server-full\/sync.wsgi<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>After getting a lot of trouble with the Xmarks sync on the quit old iceweasel that is installed on my desktop machine (Debian lenny), I decided to look for alternatives and found the firefox sync server. To run my own sync server I followed the installation instructions from mozilla and also some other nice guides &hellip; <a href=\"https:\/\/olkn.myvnc.com\/?p=206\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Firefox Sync Server<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30,14],"tags":[],"class_list":["post-206","post","type-post","status-publish","format-standard","hentry","category-sheevaplug","category-tutorials"],"_links":{"self":[{"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=\/wp\/v2\/posts\/206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=206"}],"version-history":[{"count":0,"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=\/wp\/v2\/posts\/206\/revisions"}],"wp:attachment":[{"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olkn.myvnc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}