Set up private firefox sync server
Firefox sync is very handy, if you use firefox on several computers. Since all data is encrypted before it is sent to the server, I could life with my bookmarks stored on a cloud server. However, it wanted the added security of using my own server. Here's how to install one:
$ apt-get install python-dev mercurial sqlite3 python-virtualenv apache2-mpm-prefork libapache2-mod-wsgi make
Add user ffsync:
$ adduser --group --system --home /usr/local/firefox-sync-server --disabled-password ffsync
Add apache user (www-data) to group ffsync:
$ adduser www-data ffsync
Change user:
$ su - ffsync
Download source files:
$ hg clone https://hg.mozilla.org/services/server-full
Create tmp and data subdirectories
$ mkdir data tmp
Change permissions
$ chmod 770 data tmp
Compile sync server
$ cd server-full $ make build
Change config files, paths in default install store user data in /tmp, not very useful.
$ vi sync.wsgi
[..]
os.environ['PYTHON_EGG_CACHE'] = ‘/usr/local/firefox-sync-server/tmp/python-eggs’
[..]
$ vi development.ini
[..]
[handler_syncserver_errors]
class = handlers.RotatingFileHandler
args = (‘/usr/local/firefox-sync-server/tmp/sync-error.log’,)
[..]
$ vi etc/sync.conf
[..]
[storage]
backend = syncstorage.storage.sql.SQLStorage
sqluri = sqlite:////usr/local/firefox-sync-server/data/usersettings.db
[..]
[auth]
backend = services.auth.sql.SQLAuth
sqluri = sqlite:////usr/local/firefox-sync-server/data/usersettings.db
[..]
fallback_node = http://sync.mytestdomain.com/
[..]
Change login shell of ffsync to /bin/false.
$ usermod -s /bin/false ffsync
Enable wsgi module
$ a2enmod wsgi
Create new apache virtual host
$ vi /etc/apache2/sites-available/firefox-sync
<VirtualHost *:80>
ServerName sync.mytestdomain.com
ServerAdmin webmaster@mytestdomain.com
DocumentRoot /usr/local/firefox-sync-server/server-full
CustomLog ${APACHE_LOG_DIR}/firefox-sync-server_access.log combined
ErrorLog ${APACHE_LOG_DIR}/firefox-sync-server_error.log
<Directory /usr/local/firefox-sync-server/server-full>
Order deny,allow
Allow from all
</Directory>
WSGIProcessGroup ffsync
WSGIDaemonProcess ffsync user=ffsync group=ffsync processes=2 threads=25
WSGIPassAuthorization On
WSGIScriptAlias / /usr/local/firefox-sync-server/server-full/sync.wsgi
</VirtualHost>
Activate virtual host
$ cd /etc/apache2/sites-enabled
$ ln -s ../sites-available/firefox-sync .
Check config and restart apache
$ apachectl configtest && /etc/init.d/apache restart
Now you can configure firefox sync with Tools>Sync
Ref: http://www.apfelschwein.net/firefox-sync-now-mit-eigenem-apache-server.html
Discussion