docs/webui.rst @ c631e35b5827 initial-docs
docs: add a section about deploying a public web ui
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Sat, 03 Jul 2010 15:12:25 -0400 |
| parents | c549ca1eeb81 |
| children | c28a2dae28ef |
Web Interface ============= The web interface of hg-review is probably what you're going to use the most. Running Locally --------------- To start the web interface for a local repository that you want to review you can run ``hg review --web``. Visit http://localhost:8080/ to use it. When you add comments or signoffs hg-review will use your normal Mercurial username as the author. This command can take a few extra options: ``--address ADDRESS`` The address to bind to. Use ``0.0.0.0`` if you want other people to be able to access it. **Be careful!** Because the web interface uses your Mercurial username by default, binding to ``0.0.0.0`` will let anyone add comments and signoffs in your name! You'll probably want to use the ``--read-only`` option to prevent this. Default: ``127.0.0.1`` ``--port PORT`` The port to listen on. Default: ``8080`` ``--read-only`` Run the server in read-only mode. This will not allow data to be pushed or pulled, comments to be made or signoffs to be added. This can be useful when combined with ``--address`` to let other people view the UI without letting them add comments in your name. Default: ``false`` ``--allow-anon`` Allow comments (not not signoffs) to be added even if ``--read-only`` is used, and set the username to ``Anonymous <anonymous@example.com>`` instead of your Mercurial username. This option is most useful when you're deploying a permanent web interface to a server and want to allow anonymous viewers to add comments. See the :ref:`deployment` section for more information. Default: ``false`` .. _deployment: Deployment to a Server ---------------------- Although hg-review is built for *distributed* code review it's sometimes nice to provide a public interface. This will let people can comment easily without using the extension (or even cloning your project). You can use any WSGI server you like to provide a public instance of hg-review. Before you start you'll need to have Mercurial installed on your web server. Once you've got Mercurial running on the server you'll need to clone copies of hg-review, your project, and your project's review data to the web server. First create a directory where everything will live:: mkdir /var/www/myproject-review-interface/ cd /var/www/myproject-review-interface/ Then grab a copy of hg-review:: hg clone http://bitbucket.org/sjl/hg-review/ Grab a copy of your project and configure it to use the hg-review extension:: hg clone http://bitbucket.org/you/yourproject/ cd yourproject echo '[extensions]' >> .hg/hgrc echo 'review = /var/www/myproject-review-interface/hg-review/review' >> .hg/hgrc Use hg-review to pull down the review data:: hg review --init Now that you've got all the necessary data you can set up the WSGI script. Start by copying the included sample script:: cd /var/www/myproject-review-interface/ cp hg-review/contrib/deploy/wsgi.py wsgi.py Edit the script to configure your project to your liking. For reference, the relevant part of the script should look something like this:: # An example WSGI script for serving hg-review's web UI. # Edit as necessary. # If hg-review is not on your webserver's PYTHONPATH, uncomment the lines # below and point it at the hg-review directory. import sys sys.path.insert(0, "/var/www/myproject-review-interface/hg-review") REPO = '/var/www/myproject-review-interface/myproject' READ_ONLY = True ALLOW_ANON_COMMENTS = False ANON_USER = 'Anonymous <anonymous@example.com>' SITE_ROOT = 'http://yoursite.com/optional/path' TITLE = 'Your Project' All that's left is to point your WSGI server at this script and fire it up. How you do that depends on your WSGI server. A sample configuration file for `Gunicorn <http://gunicorn.org/>`_ is provided in ``contrib/deploy/gunicorn.conf.py``.