Overview

About
-----
``invenio-devserver'' is an HTTP server for Invenio with automatic code reloading,
useful when developing for [[http://invenio-software.org/][Invenio]]. It also
includes a mail debug server which prints all incoming emails to the console.

Invenio is a free software suite enabling you to run your own digital library
or document repository on the web. See more on http://invenio-software.org/.

Installation
------------
You can install invenio-devserver with ``pip install invenio-devserver``, or you
can use ``easy_install``.

Requirements
------------
 * `Invenio <http://invenio-software.org/wiki/Installation>`_
 * ``Werkzeug''
 * ``mock'' (optional): to intercept errors and display them on stdout

Both ``Werkzeug'' and ``mock'' will be automatically installed when using PIP.

Configuration
-------------
You need to tell ``invenio-devserver'' where your Invenio source code and
installation lives. Add config_local.py to your site-packages directory with
the following::

	SRC_PATH = [
	    "~/src/invenio",
	    "~/src/inspire", # (only needed if you have several project)
	]
	INSTALL_PATH = "/opt/invenio"

If you don't specify ``SRC_PATH'' or ``INSTALL_PATH'' they will be guessed:

  * If you are in an activated virtualenv the ``INSTALL_PATH'' is set to
    ``VIRTUAL_ENV'' environment variable.
  * ``SRC_PATH'' defaults to ``~/src/invenio/''.
  * If you are using ``invenio-devscripts'', ``SRC_PATH'' and ``INSTALL_PATH''
    will be set to the environment variables ``CFG_INVENIO_SRC'' and
    ``CFG_INVENIO_PREFIX' respectively.

Please see ``src/invenio_devserver/config.py'' for further possible settings.

Usage ``serve''
---------------
If the Invenio installation is in a virtualenv, activate it and run::

	$ serve
	HTTP Server mode with reload mode
	 * Running on http://localhost:4000/
	 * Spawning worker
	 * Ready

If the Invenio installation is under your user run::

	$ python serve.py

If the Invenio installation is under another user (e.g wwww), you can use

	$ sudo -u www python serve.py

The following options for ``serve'' are available::

	$ serve --help
	Usage: python serve.py [-bp]

	Invenio web server for development

	Options:
	  -h, --help       show this help message and exit
	  -b BIND_ADDRESS  Address to bind to
	  -p BIND_PORT     Port to bind to
	  --no-reload      Disable automatic reloading when a source file is changed
	  --no-http        Disable http server, only update invenio install
	  --pdb            Drop to python debugger on errors
	  -s SRC_PATH      Source folder (one or more)
	  -o INSTALL_PATH  Path to Invenio installation.


Usage ``mailserve''
-------------------
If the Invenio installation is in a virtualenv, activate it and run::

	$ mailserve
	Remember to set the two following settings in invenio-local.conf:

	CFG_MISCUTIL_SMTP_HOST=127.0.0.1
	CFG_MISCUTIL_SMTP_PORT=1025

	Now accepting mail at 127.0.0.1:1025 (hit CONTROL-C to stop)


The following options for ``mailserve'' are available::
	Usage: mailserve [-bp]

	Invenio mail server for development

	Options:
	  -h, --help       show this help message and exit
	  -b BIND_ADDRESS  Address to bind to
	  -p BIND_PORT     Port to bind to
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.