How to dev a new Horizon dashboard without devstack/fullstack OpenStack

Everybody knows the easiest way to build a new Horizon dashboard is to use devstack. But, devstack requires a number of resources (16GB of RAM for a workable devstack in my experience). So what can you do if you only have a laptop with 4-8GB RAM? Easy, easy, follow these setups:

1. Install keystone (the minimum requirement of Horizon):

Follow this official instruction: https://docs.openstack.org/keystone/latest/install/keystone-install-ubuntu.html

Read these blog posts to fix some issues:

http://www.dangtrinh.com/2018/03/fix-error-attributeerror-module-object.html
http://www.dangtrinh.com/2018/03/fix-importerror-cannot-import-name.html
http://www.dangtrinh.com/2018/03/how-to-fix-index-column-size-too-large.html

2. Install Horizon:

Follow this official instruction to install Horizon on your computer: https://docs.openstack.org/horizon/latest/contributor/quickstart.html#quickstart

3. Building your own dashboard:

Using this document: https://docs.openstack.org/horizon/latest/contributor/tutorials/dashboard.html

Note:

  • You may have to install additional services if your dashboard needs to communicate with those ones (e.g: tacker, nova...)
  • Or, if you already have an OpenStack server (devstack/fullstack) you can connect you local Horizon instance to that server by modifying these settings in your local_settings.py

OPENSTACK_HOST = "<ip of a working openstack instance>"
OPENSTACK_KEYSTONE_URL = "http://%s/identity/v3" % OPENSTACK_HOST

4. Change the world