How to setup Weave 0.2 with a custom WebDAV server Posted on 03 Nov 2008 at 4:48 PM

Weave is a FireFox extension which keeps multiple installations of FireFox on different Computers in sync. It works by encrypting and uploading personal data like bookmarks, history and cookies to a central server. This server is currently provided at, but due to overwhelming interest, no new users are accepted.

In order to use Weave, you have to provide an alternative server. There are basically two options:

  • Use a third party server and configure Weave to use it, or
  • install and configure your own server.

Because there are more functions a server needs to provide in order to be accepted as a Weave substitute server, some tricks are required to configure the Weave extension. A server-side software to provide a complete hosting solution is in development, but is suited for Weave 0.3, which was not released yet.

Let's start with installing your very own server. This can be done on a hosted server, or on your own home computer, which you can make available by using a dynamic DNS registration service like Users of third party servers can skip this part over.

First of all: IIS6 does not work. It provides a WebDAV module, which needs to be activated, but Weave and IIS do not go well together. For example, Weave sends MKCOL requests, which IIS does not understand and answers them with HTTP 415 errors. While it may be worth to adapt Weave for many types of web servers, it currently only works reliable with Apache, which, fortunately, is very easy to setup.

If you don't have an Apache webserver up and running, you can download and install a vanilla setup from the Apache homepage, or you can download one of the prebuilt packages like XAMPP. XAMPP includes WebDAV support out of the box, but you must make sure to harden the configuration as described in the documention before you make the webserver available to the internet.

I already had an Apache webserver running, and only had to add/uncomment the following configuration settings to enable WebDAV. Don't forget to restart after making changes to the Apache configuration files.

In httpd.conf: LoadModule dav_module modules/ LoadModule dav_fs_module modules/ Include conf/extra/httpd-dav.conf In httpd-vhosts.conf: <VirtualHost *:80> ServerAdmin DocumentRoot D:/Inetpub/Weave ServerName Options Indexes <Directory /> Order allow,deny Allow from all Options Indexes AuthName "Weave" AuthType SSPI SSPIAuth On SSPIOfferBasic On SSPIOfferSSPI On SSPIDomain YOURDOMAIN SSPIOmitDomain Off SSPIAuthoritative On require valid-user </Directory> <Location /> Dav on </Location> </VirtualHost>

I'm using SSPI for user authentication. You can also use simple file-based user authentication, examples can be found in this howto. For SSPI to work, mod_auth_sspi needs to be installed.

These directives basically activate WebDAV on the virtual host, and require user authentication for read and write access. When Weave connects to the server, it will authenticate, and then create a subfolder "user", in which a folder for each account gets created. One could use NT ACLs to deny cross-user write-access. But because we are currently the only active user on our own server, this doesn't matter now.

After configuring the server, install the Weave extension. Now we have to do a trick: Weave won't accept our server on its own, because it can't create an user account there. So instead of using the user interface for account creation and signing in, we manually configure it by editing the prefs.js file, which can be found here: C:\Profiles\Username\Application Data\Mozilla\Firefox\Profiles\xyz.default Quit Firefox, locate the prefs.js file and append the following directives at the end: user_pref("extensions.weave.client.GUID", "801b0820-3478-4332-90b0-4962e11d80ec"); user_pref("", "MYCOMPUTER"); user_pref("extensions.weave.client.type", "desktop"); user_pref("", "[object XULElement]"); user_pref("extensions.weave.engine.client.type", "[object XULElement]"); user_pref("extensions.weave.engine.passwords", true); user_pref("extensions.weave.engine.tabs", false); user_pref("extensions.weave.serverURL", ""); user_pref("extensions.weave.username", "YourUsername"); You have to adapt the paths, usernames, client name and URLs to your own, especially if you are using a third party WebDAV server. Please note that not all third party servers are compatible with Weave. After restarting Firefox, click on the "Sign in" button at the bottom right, and choose "Sign In...". Provide a correct username, password and a passphrase of your own choice, which needs to be identical on all computers.

Happy syncing!