Note that the host where you’re going to perform installation has to be able to connected to all OpenStack endpoints. You can list all available endpoints using the following command:
$ keystone endpoint-list
$ sudo apt-get update
$ sudo apt-get install git-core python-dev gcc python-setuptools python-virtualenv node-less libssl-dev
On Ubuntu 12.10 and higher you have to install the following lib as well:
$ sudo apt-get install nodejs-legacy
2. Checkout Horizon from git and switch to your version of OpenStack (stable/grizzly or stable/folsom). Here is an example for grizzly:
$ git clone https://github.com/openstack/horizon -b stable/grizzly
Then install virtual environment:
$ python tools/install_venv.py
$ cp openstack_dashboard/local/local_settings.py.example openstack_dashboard/local/local_settings.py
from horizon.utils import secret_key
SECRET_KEY = secret_key.generate_or_read_....
and set right value for variables:
OPENSTACK_HOST = "ip of your controller"
SAVANNA_URL = "url for savanna (e.g. "http://localhost:8386/v1.1")"
If you are using Neutron instead of Nova Network:
SAVANNA_USE_NEUTRON = True
$ git clone https://github.com/openstack/savanna-dashboard.git
$ export SAVANNA_DASHBOARD_HOME=$(pwd)/savanna-dashboard
$ .venv/bin/pip install $SAVANNA_DASHBOARD_HOME
$ ln -s $SAVANNA_DASHBOARD_HOME/savannadashboard .venv/lib/python2.7/site-packages/savannadashboard
HORIZON_CONFIG = {
'dashboards': ('nova', 'syspanel', 'settings', 'savanna'),
and add savannadashboard to
INSTALLED_APPS = (
'savannadashboard',
....
$ tools/with_venv.sh python manage.py runserver 0.0.0.0:8080
This will start horizon in debug mode. That means the logs will be written to console, and if any exceptions happen, you will see the stack-trace rendered as a web-page.
The debug could be disabled by changing DEBUG=True to False in local_settings.py. In that case Horizon should be started slightly differently, otherwise it will not serve static files:
$ tools/with_venv.sh python manage.py runserver --insecure 0.0.0.0:8080
It is not recommended to use horizon in this mode for production.
If you have changed any *.py files in $SAVANNA_DASHBOARD_HOME directory, horizon will notice that and reload automatically. However changes made to non-python files may not be noticed, so you have to restart horizon again manually, as described in step 10.