blog:set_up_private_firefox_sync_server
| Next revision | Previous revision | ||
| blog:set_up_private_firefox_sync_server [2012-09-28 12:27] – brb | blog:set_up_private_firefox_sync_server [2014-04-24 09:39] (current) – brb | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Set up private firefox sync server ====== | ====== Set up private firefox sync server ====== | ||
| - | $ apt-get install python-dev mercurial sqlite3 python-virtualenv apache2-mpm-prefork libapache2-mod-wsgi make | ||
| + | |||
| + | 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: | ||
| + | |||
| + | < | ||
| Add user ffsync: | Add user ffsync: | ||
| - | | + | < |
| Add apache user (www-data) to group ffsync: | Add apache user (www-data) to group ffsync: | ||
| - | | + | < |
| Change user: | Change user: | ||
| - | | + | < |
| Download source files: | Download source files: | ||
| - | | + | < |
| Create tmp and data subdirectories | Create tmp and data subdirectories | ||
| - | | + | < |
| Change permissions | Change permissions | ||
| - | | + | < |
| Compile sync server | Compile sync server | ||
| - | | + | < |
| - | $ make build | + | $ make build</ |
| Change config files, paths in default install store user data in /tmp, not very useful. | Change config files, paths in default install store user data in /tmp, not very useful. | ||
| - | | + | < |
| - | [..] | + | [..] |
| - | os.environ[' | + | os.environ[' |
| - | [..] | + | [..] |
| - | $ vi development.ini | + | $ vi development.ini |
| - | [..] | + | [..] |
| - | [handler_syncserver_errors] | + | [handler_syncserver_errors] |
| - | class = handlers.RotatingFileHandler | + | class = handlers.RotatingFileHandler |
| - | args = (‘/ | + | args = (‘/ |
| - | [..] | + | [..] |
| - | $ vi etc/ | + | $ vi etc/ |
| - | [..] | + | [..] |
| - | [storage] | + | [storage] |
| - | backend = syncstorage.storage.sql.SQLStorage | + | backend = syncstorage.storage.sql.SQLStorage |
| - | sqluri = sqlite://// | + | sqluri = sqlite://// |
| - | [..] | + | [..] |
| - | [auth] | + | [auth] |
| - | backend = services.auth.sql.SQLAuth | + | backend = services.auth.sql.SQLAuth |
| - | sqluri = sqlite://// | + | sqluri = sqlite://// |
| - | [..] | + | [..] |
| - | fallback_node = http:// | + | fallback_node = http:// |
| - | [..] | + | [..] |
| + | </ | ||
| Change login shell of ffsync to /bin/false. | Change login shell of ffsync to /bin/false. | ||
| - | | + | < |
| Enable wsgi module | Enable wsgi module | ||
| - | | + | < |
| Create new apache virtual host | Create new apache virtual host | ||
| - | | + | < |
| - | | + | < |
| - | ServerName sync.mytestdomain.com | + | ServerName sync.mytestdomain.com |
| - | ServerAdmin webmaster@mytestdomain.com | + | ServerAdmin webmaster@mytestdomain.com |
| - | | + | DocumentRoot / |
| - | | + | CustomLog ${APACHE_LOG_DIR}/ |
| - | ErrorLog ${APACHE_LOG_DIR}/ | + | ErrorLog ${APACHE_LOG_DIR}/ |
| - | | + | < |
| - | Order deny, | + | Order deny, |
| - | Allow from all | + | Allow from all |
| - | </ | + | </ |
| - | | + | WSGIProcessGroup ffsync |
| - | WSGIDaemonProcess ffsync user=ffsync group=ffsync processes=2 threads=25 | + | WSGIDaemonProcess ffsync user=ffsync group=ffsync processes=2 threads=25 |
| - | WSGIPassAuthorization On | + | WSGIPassAuthorization On |
| - | WSGIScriptAlias / / | + | WSGIScriptAlias / / |
| - | </ | + | </ |
| Activate virtual host | Activate virtual host | ||
| - | | + | < |
| - | $ ln -s ../ | + | $ ln -s ../ |
| Check config and restart apache | Check config and restart apache | ||
| - | | + | < |
| Now you can configure firefox sync with Tools> | Now you can configure firefox sync with Tools> | ||
| - | Ref: http:// | + | Ref: [[http:// |
| - | + | ||
| - | {{tag>}} | + | |
| - | ~~LINKBACK~~ | ||
| - | ~~DISCUSSION~~ | ||
blog/set_up_private_firefox_sync_server.1348828036.txt.gz · Last modified: 2012-09-28 12:27 by brb
