Jump to content

Guidelines:Edenctl

From Sahana Eden Wiki

Server Administration with Edenctl

The edenctl tool is a bash script for Eden server administration on Debian/Linux. The general usage of this script is (as root user):

edenctl [command] [parameters]

Commands Overview

Command Explanation Comments
setup Set up a newly installed Eden instance
teardown Undo a completed setup
start Start the web interface
stop Stop the web interface
shell Open a Python shell in the web2py+Eden environment
run Run a Python script in the web2py+Eden environment
clean Reset the Eden instance
template Switch to another configuration template
compile (Re-)compile models, controllers and views

Setup and Teardown

To set up a newly installed Eden, run:

edenctl setup

This will run you step-by-step through the setup process. Enter your server details as prompted for (or click enter to accept the default value as shown in square brackets).

The setup command will not work if the Eden instance has already been set up.

Once completed, you can undo the setup with:

edenctl teardown

Note: The teardown command will not drop the Eden database - this must be done manually.

Start and Stop

After the setup, you can start the Eden application using:

edenctl start

To stop the Eden application and prevent user access, run:

edenctl stop

Note: the front-end web server is always running, so that it can deliver a maintenance info-page to the user if Eden is not active - the start and stop commands only start/stop the uWSGI daemon.

Pull

It is possible to upgrade your Eden instance directly from GitHub, using:

edenctl pull

Note: It can be necessary to perform certain database migrations after the pull for Eden to work correctly - always check the release for migration advice.

Shell

To open a Python shell in the web2py+Eden environment, you can use:

edenctl shell

Running Scripts

To run a Python script in the web2py+Eden shell, use:

edenctl run /path/to/script.py

Clean

You can reset the Eden database using:

edenctl clean

This will remove all data from the database, and perform a fresh first run.

Note: This operation is primarily intended for demos, and not recommended for production servers.

Switching Templates

You can switch to a different template using:

edenctl template "TEMPLATE"

Instead of a single template, you can also specify a template cascade as a comma-separated list of templates:

edenctl template "TEMPLATE,TEMPLATE.SUB,TEMPLATE.SUB.Demo"

Note: After switching templates, you need to reset the instance using edenctl clean.