This article explains how to run a private Firefox Sync server instance.
Unless using a very particular setup with registration and storage servers in different locations install thepackage which is available through the klondike overlay.
After setting up the desired flags remove the keywords from the packages and run:
emerge --ask www-misc/mozilla-sync-server-full
The package is now installed and the default configuration is in /etc/mozilla-sync-server/. The configuration of the daemon can be set using the .ini files whilst the configuration of sync itself is done in the .conf files. All of them are .ini-style files.
The first step is replacing the following line by the .conf file to use on the .ini file:
:configuration = file:%(here)s/sync.conf
Then ensure logs are saved in the proper place:
class = handlers.RotatingFileHandler
args = ('/tmp/sync-error.log',)
Then you may need to edit the server.wsgi file so they load the proper .ini files for that replace the following line by the correct file:
:ini_file = os.path.join(_CURDIR, 'development.ini')
Finally edit the .conf file with the desired settings. The most important ones are the sqluri which define the path to the SQL databases and the fallback_node which defines the URL to the server as seen by the client you may also want to disable the captcha.
For a list of parameters check: http://docs.services.mozilla.com/server-devguide/configuration.html
Testing the server
Once configured test the server by following this line in /etc/mozilla-sync-server/:
bin/paster serve development.ini
This will start the server listening on the port 5000. You will need to have paster installed. In general using this approach to run the server is a bad idea so you can run it behind a web server instead
Running behind a web server
emerge --ask www-apache/mod_wsgi
Create the mozsync user on the mozsync group if has not been created.
Merge the following with the vhost configuration (the first line may require modification):
WSGIDaemonProcess sync user=mozsync group=mozsync processes=2 threads=25 python-path=/usr/lib64/python2.7/site-packages/syncreg/
Allow from all
WSGIScriptAlias / /etc/mozilla-sync-server/server.wsgi