Setting up Mozilla Weave on your Server

Posted on the 8th of August, 2008

If you are using multiple computers weekly (or even daily) and you want to have your bookmarks, saved passwords and even your form data always available with you, then Weave is for you! Mozilla Weave is a Firefox 3 extension that is filling up for the discontinued ‘Google Browser Sync‘ extension and expanding the ‘Foxmarks‘ extension. As their website states:

“As the Web continues to evolve and more of our lives move online, we believe that Web browsers like Firefox can and should do more to broker rich experiences while increasing user control over their data and personal information.”

In this post I will show you how to set up Weave on your own server if you don’t want to store these kind of information on mozilla’s servers. Also since Weave is still beta you won’t be able to get an account and sometimes syncing is unavailable.

Note: Before you start you have to know that these data will be ‘synced’ using plain HTTP rather than HTTPS. This means that the data will not be encoded by your server but by your browser using your ‘passkey’. In the case of an intruder gaining access to your data, he/she won’t be able to decode it without your ‘passkey’ (private key). Having said that you can now continue reading.

There are two ways to create your own Weave server. You can either set it up from scratch, if you have enough privileges on the server, or you can use your hosting provider (like Dreamhost) to do so.

If you have access on your Apache configuration then you should follow this guide here. Otherwise continue reading to find out how to set this up on a hosting provider such as ‘Dreamhost’ (which I am using).

Step 1- Set up your server

The first thing to do is to prepare your host. To do so go to your domain control panel and enable ‘WebDAV’. When you enable WebDAV on one subdomain or directory (let’s say weave.domain.com), you will be asked for a username and password. In this example we will be using “user123″ as username and “password123″ as the password. These will be your credentials to be used with the Weave extension as well. These changes might take a while to take effect but this depends on your provider.

Step 2 – Get Weave

Get the latest Weave build from the Mozilla Labs website. In my tests I used version 0.2.5. You can get the latest build here, or browse the repository here. Once you install the extension and restart your browser you will get the Weave welcome screen. You can cancel that since you won’t be registering with Mozilla.

Step 3 – Configure Weave

Now type in the address bar: “about:config” to load Firefox configuration. On the bar type:

extensions.weave.username

and change the value from ‘nobody’ to ‘user123′ as the account we created on ‘WebDAV’. Now look for the key

extensions.weave.serverURL

and change its value to your server where you enabled ‘WevDAV’. In this example is ‘http://weave.domain.com’. Now you have to restart Firefox to enable these changes. Once it restarts, click on the Weave icon on the bottom right of your browser and select ‘Sign in’. Use your credentials as stated in the Step 1 and for the ‘Encryption Passphrase’ use whatever you want. This will be your key to encrypt your data. Note that once you select a key you must always use this key to all other computers.

Step 4 – Log in

When you login for the first time it will take a while to sync all the data back to the server. It also may appear that your browser crashed. There is a known bug in 0.2.5 where it causes enormous CPU/memory utilization. If you disable the ‘Tab’ sync it will be just fine. In case the login fails try accessing for the first time the domain you enabled ‘WebDAV’.

Step 5 – Enjoy

Well these are all the steps. You can now sync multiple computers with your bookmarks, saved form data and saved passwords. The reliability of this service will now depend on the reliability of your provider rather than Mozilla’s servers. Also you will have total control over your data.

Update 09/08/2008:

Mozilla released Weave 0.2.6 which produces some errors while syncing. It seems that there is an additional call to a file called ‘get.php’ (I have no idea what it does – I didn’t look into it but the developers told me this). This does not seem to affect the syncing process on your server though. To solve these ‘annoying’ messages just create the path “/api/share/” under your “weave” directory and put a “get.php” file in there. So the full path will be

http://yourdomain.com/weave/api/share/get.php

This seems to eliminate the problems. Now to set this files you need to access the WebDAV directory. If you are a Mac OS 10.3+ user use the guide here, if you are a Windows XP or even a Vista user use the guide here. Happy hacking!