nagare-admin

The nagare-admin command is used to create, configure and launch applications.

Usage

You can get a comprehensive list of the available commands by invoking nagare-admin with the --help or -h options:

<NAGARE_HOME>/bin/nagare-admin --help
Usage : nagare-admin <command>

with <command> :
 - batch       : Execute Python statements from a file
 - create-app  : Create an application skeleton
 - create-db   : Create the database of an application
 - create-rules: Create the rewrite rules
 - drop-db     : Drop the database of an application
 - info        : Display various informations
 - serve       : Launch an application
 - serve-module: Launch a python module
 - shell       : Launch a shell

And you can get an help about a specific command by entering :

<NAGARE_HOME>/bin/nagare-admin <command> --help

Full commands reference

batch

The batch command executes a python file.

<NAGARE_HOME>/bin/nagare-admin batch <application> <batch.py> [batch options ...]

Once launched, two variables are available:

  • apps is a dictionary that associates the name of an application to its activated application object.
  • session is the SQLAlchemy session (don’t forget the session.commit() statement at the end of your batch if database entities are manipulated)

The available options are:

-d, --debug display the generated SQL requests

create-app

The create-app command creates the whole directories and files structure of a skeleton application:

<NAGARE_HOME>/bin/nagare-admin create-app <application_name>

See Create an application

create-db

The create-db command creates the database tables from an application entities description:

<NAGARE_HOME>/bin/nagare-admin create-db <application>

The metadata parameter of the [database] section of The application configuration file must be an Object references to an SQLAlchemy metadata object. The usage of the metadata object is described in Database tier.

The available options are:

--no-populate by default, after the tables creation, the function referenced by the populate parameter of the [database] section is called to initialize the database. The --no-populate option disable this behaviour.
--drop if this option is given, the database tables are dropped before to be re-created.
-d, --debug display the generated SQL requests

create-rules

The create-rules command generates rewrite rules for the apache, lighttpd or nginx web servers. These rules associate the URL /static/<application> to the directory path of the static contents of the application. With such rules activated, the web server will deliver the static contents instead of Nagare.

<NAGARE_HOME>/bin/nagare-admin create-rules [<application> ...]

If no applications are given, the rules for all the registered applications are created. When a list of applications is given, only the rules for these applications are generated.

The available options are:

-a, --apache create rules for Apache (default)
-l, --lighttpd create rules for Lighttpd
-n, --nginx create rules for Nginx

drop-db

The drop-db command deletes the database tables of the application:

<NAGARE_HOME>/bin/nagare-admin drop-db

The metadata parameter of the [database] section of The application configuration file must be an Object references to an SQLAlchemy metadata object. The usage of the metadata object is described in Database tier.

The available options are:

-d, --debug display the generated SQL requests

info

The info command displays informations about your system environment (suitable to be added into a bug ticket):

<NAGARE_HOME>/bin/nagare-admin info

serve

The serve command launches one or several applications:

<NAGARE_HOME>/bin/nagare-admin serve <application> ...

The <application> argument can be the name of a registered application or an application configuration file.

Without any parameters, the command displays the list of all the registered applications.

The available options are:

--host by default, the publisher only accepts requests on the local interface. If you want to accept external requests, set this parameter to the internet address of your external interface or to ‘0.0.0.0’ to listen to on all the interfaces of your system. This option overwrites the host parameter of the The publisher configuration file
-p, --port port where to listen to the requests. This option overwrites the port parameter of the The publisher configuration file
-c, --conf path to the The publisher configuration file. If not given, the standalone Python threaded HTTP server is used.
-d, --debug display the web debug page when an exception occurs. This option overwrites the debug option of The application configuration file. The nagare[debug] extra must be installed.
--reload This option activates the reloader process which automatically detect source changes and re-launch the application.

serve-module

The serve-module command directly launches a component. It’s a simplified version of the server command, that don’t need a configuration file, mainly used to quickly prototype some code that doesn’t need database accesses:

<NAGARE_HOME>/bin/nagare-admin serve-module <path_to_module:component_factory> <url>

/url will be the URL of the application.

The path_to_module parameter can be a filesystem path as:

<NAGARE_HOME>/bin/nagare-admin serve-module /tmp/nagare/examples/counter.py:Counter counter

or a module name as:

<NAGARE_HOME>/bin/nagare-admin serve-module nagare.examples.counter:Counter counter

The available options are:

--host by default, the publisher only accepts requests on the local interface. If you want to accept external requests, set this parameter to the internet address of your external interface or to ‘0.0.0.0’ to listen to on all the interfaces of your system.
-p, --port port where to listen to the requests (default 8080).
--no-debug by default, the web debug page is activated. Desactivated it with this option.

Warning

The serve-module command always uses the standalone publisher and sessions manager, with a reloader activated. So don’t use it in production.

shell

The shell command launches an interactive Python (or IPython, if available) interpreter:

<NAGARE_HOME>/bin/nagare-admin shell <application> ...

Once launched, two variables are available:

  • apps is a dictionary that associates the name of an application to its activated application object.
  • session is the SQLAlchemy session (don’t forget the session.commit() statement if database entities are manipulated)

The available options are:

--plain always launch a plain Python shell, even if IPython is available
-d, --debug display the generated SQL requests