doc/book/pyramid/quickstart.rst
author Denis Laxalde <denis.laxalde@logilab.fr>
Mon, 06 Mar 2017 14:19:20 +0100
changeset 12008 7694dcf5ad30
parent 11945 ef6b18c56b5a
child 12097 78a5c6a64fad
permissions -rw-r--r--
[etwist] Do not call repository's start_looping_tasks anymore and warn about this We are about to drop this method from Repository class and replace it by a blocking alternative. This is not compatible with how things currently work in a Twisted server implementation. So do not start repository "looping tasks" in Twisted server anymore and issue a warning about this. If someone is interested in restoring the "all-in-one" behavior where the repository runs within a Twisted server, they may start by implementing repository looping tasks using a Twisted mechanism such as, e.g., http://twistedmatrix.com/documents/current/core/howto/time.html and eventually provide the repository with a compatible scheduler instance so that is can register its periodic tasks. At the moment, we lack resources to do this (and maintain the Twisted server of CubicWeb in general). Related to #17057223.

Quick start
===========

.. highlight:: bash

Prerequites
-----------

-   Install everything (here with pip, possibly in a virtualenv)::

        pip install pyramid-cubicweb cubicweb-pyramid pyramid_debugtoolbar

-   Have a working Cubicweb instance, for example:


    -   Make sure CubicWeb is in user mode::

            export CW_MODE=user

    -   Create a CubicWeb instance, and install the 'pyramid' cube on it (see
        :ref:`configenv` for more details on this step)::

            cubicweb-ctl create pyramid myinstance

-   Edit your ``~/etc/cubicweb.d/myinstance/all-in-one.conf`` and set values for
    :confval:`pyramid-auth-secret` and :confval:`pyramid-session-secret`.
    *required if cubicweb.pyramid.auth and pyramid_cubiweb.session get
    included, which is the default*

From CubicWeb
-------------

-   Start the instance with the :ref:`'pyramid' command <cubicweb-ctl_pyramid>`
    instead of 'start'::

        cubicweb-ctl pyramid --debug myinstance

In a pyramid application
------------------------

-   Create a pyramid application

-   Include cubicweb.pyramid:

    .. code-block:: python

        def includeme(config):
            # ...
            config.include('cubicweb.pyramid')
            # ...

-   Configure the instance name (in the .ini file):

    .. code-block:: ini

        cubicweb.instance = myinstance

-   Configure the base-url and https-url in all-in-one.conf to match the ones
    of the pyramid configuration (this is a temporary limitation).


Usage with pserve
-----------------

To run a Pyramid application using pserve_:

::

    pserve /path/to/development.ini instance=<appid>


.. _pserve: \
    http://docs.pylonsproject.org/projects/pyramid/en/latest/pscripts/pserve.html