Install the requirements
apt-get install python-dev mercurial python-virtualenv\ libapache2-mod-wsgi libmysqlclient-dev
Setup Weave
cd /opt hg clone https://hg.mozilla.org/services/server-full mv server-full weave cd weave make build chown root:www-data -R /opt/weave chmod 750 -R /opt/weave/ /opt/weave/bin/easy_install Mysql-Python
Create database
mysql -u root -p CREATE DATABASE weave; GRANT ALL PRIVILEGES ON weave.* TO weave IDENTIFIED BY "password"; exit
Configure weave
cp /opt/weave/etc/sync.conf /opt/weave/etc/sync.conf.bak mv /opt/weave/etc/mysql.conf /opt/weave/etc/sync.conf nano /opt/weave/etc/sync.conf
Replace
fallback_node = http://localhost:5000/
in the [nodes] section with
fallback_node = https://your-domain.com
Replace
sqluri = mysql://sync:sync@localhost:3306/sync
in the [storage] and [auth] section with
sqluri = mysql://weave:password@localhost:3306/weave
Configure Apache2
Create a new config file
nano /etc/apache2/sites-available/weave
and insert this:
<VirtualHost *:80> ServerName your-domain.com Redirect / https://your-domain.com </VirtualHost> <VirtualHost *:443> ServerName your-domain.com DocumentRoot /opt/weave WSGIProcessGroup sync WSGIDaemonProcess sync user=www-data group=www-data processes=2 threads=25 WSGIPassAuthorization On WSGIScriptAlias / /opt/weave/sync.wsgi SSLEngine On SSLCertificateFile /etc/apache2/ssl/ssl.crt SSLCertificateKeyFile /etc/apache2/ssl/ssl.key CustomLog /var/log/apache2/access_sync.log combined ErrorLog /var/log/apache2/error_sync.log LogLevel warn </VirtualHost> <Directory /opt/weave> Order deny,allow Allow from all </Directory>
Enable the config file and restart Apache2:
ln -s /etc/apache2/sites-available/weave /etc/apache2/sites-enabled/weave /etc/init.d/apache2 restart
Check the log file for errors:
tail -f /var/log/apache2/error_sync.log
Updating Weave
cd /opt/weave hg pull hg update
Run the last two steps at least twice.
make build