Setting up a local development environment

Get source code

The Kiwi TCMS source code is available at https://github.com/kiwitcms/Kiwi:

git clone https://github.com/kiwitcms/Kiwi.git
cd Kiwi/

Install Python 3

Kiwi TCMS is a Python 3 project! Linux is our preferred environment but you can work on Kiwi TCMS on Windows as well!

Download & install Python from https://www.python.org/downloads/. All further instructions assume that you have Python 3 enabled.

Note

At the moment Kiwi TCMS is developed and tested with Python 3.9. You can always consult Dockerfile to find out the exact version which we use!

Setup virtualenv

Create a virtual environment for Kiwi TCMS:

$ python3 -m venv ~/kiwi-env
$ source ~/kiwi-env/bin/activate

On Windows, activating the virtual environment is different:

> python3 -m venv C:\kiwi-env
> C:\kiwi-env\Scripts\activate

See https://docs.python.org/3/tutorial/venv.html for more information!

Dependencies

On Linux you have to install packages which are needed to compile some of the Python dependencies:

sudo yum install gcc python-devel mariadb-devel libffi-devel npm graphviz

Note

Graphviz is only used to build model diagrams from source code!

Then install the necessary Python packages inside your virtual environment:

pip install -r requirements/mariadb.txt
pip install -r requirements/devel.txt

Note

Alternatively you can use requirements/postgres.txt for PostgreSQL!

The user interface needs several Node.js packages. Download & install Node first and then:

cd tcms/
./npm-install

inside the Kiwi/ directory.

Initialize database

Note

In development mode Kiwi TCMS is configured to use SQLite! You may want to adjust the database and/or other configuration settings. Override them in ./tcms/settings/devel.py if necessary.

Load database schema and create initial user:

./manage.py migrate
./manage.py createsuperuser

Let’s run Kiwi TCMS

You’re now ready to start the server:

./node_modules/.bin/webpack watch
./manage.py runserver

Now, open http://127.0.0.1:8000/ and should be presented with your brand new Kiwi TCMS homepage!