# Installing the API behind mod_wsgi

Cloudkitty comes with a few example files for configuring the API service to run behind Apache with `mod_wsgi`.

## app.wsgi

The file `cloudkitty/api/app.wsgi` sets up the V1 API WSGI application. The file needs to be copied to `/var/www/cloudkitty/`, and should not need to be modified.

## etc/apache2/cloudkitty

The `etc/apache2/cloudkitty` file contains example settings that work with a copy of cloudkitty installed via devstack.

    # Copyright (c) 2013 New Dream Network, LLC (DreamHost)
    #
    # Licensed under the Apache License, Version 2.0 (the "License"); you may
    # not use this file except in compliance with the License. You may obtain
    # a copy of the License at
    #
    #      http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
    # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
    # License for the specific language governing permissions and limitations
    # under the License.

    # This is an example Apache2 configuration file for using the
    # cloudkitty API through mod_wsgi.

    # Note: If you are using a Debian-based system then the paths
    # "/var/log/httpd" and "/var/run/httpd" will use "apache2" instead
    # of "httpd".
    #
    # The number of processes and threads is an example only and should
    # be adjusted according to local requirements.

    Listen 8889

    <VirtualHost *:8889>
        WSGIDaemonProcess cloudkitty-api processes=2 threads=10 user=SOMEUSER display-name=%{GROUP}
        WSGIProcessGroup cloudkitty-api
        WSGIScriptAlias / /var/www/cloudkitty/app.wsgi
        WSGIApplicationGroup %{GLOBAL}
        ErrorLogFormat "%{cu}t %M"
        ErrorLog /var/log/httpd/cloudkitty_error.log
        CustomLog /var/log/httpd/cloudkitty_access.log combined
    </VirtualHost>

    WSGISocketPrefix /var/run/httpd

1. On deb-based systems copy or symlink the file to `/etc/apache2/sites-available`. For rpm-based systems the file will go in `/etc/httpd/conf.d`.

2. Modify the `WSGIDaemonProcess` directive to set the `user` and `group` values to an appropriate user on your server. In many installations `cloudkitty` will be correct.

3. Enable the cloudkitty site. On deb-based systems:

       # a2ensite cloudkitty
       # service apache2 reload

   On rpm-based systems:

       # service httpd reload

this page last updated: 2026-04-13 10:31:45

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug