Skip to content
Snippets Groups Projects

Installation and configuration

Requirements

The system has been tested and found to run well on Ubuntu >= 22

  • The programming language is Python >= 3.8
  • The web framework is currently Django 4.2
  • Apache web server with mod_wsgi compiled for Python 3
  • memcached

Install and setup

  1. Install and activate a virtual Python environment
python3 -m venv my_venv
source my_env/bin/activate
  1. Install all the requirements into the virtual environment. Remember to be in the folder where the requirements.txt file is
pip install -r requirements.txt
  1. Copy VIPSWeb/local_settings_sample.py into VIPSWeb/local_settings.py and adapt to your needs

  2. Run all database migrations

./manage.py migrate
  1. Run application
python3 manage.py runserver

Running with mod_wsgi

The official Django documentation for this can be found here

  • If running on e.g. Ubuntu 18, please remember to install the libapache2-mod-wsgi-py3 and not the libapache2-mod-wsgi package
  • Here's an example mod_wsgi configuration in an Apache2 virtualhost
        WSGIDaemonProcess vipsweb python-path=/opt/VIPSWeb/VIPSWeb python-home=/opt/VIPSWeb/py3dj3
        WSGIProcessGroup vipsweb

        WSGIScriptAlias / /opt/VIPSWeb/VIPSWeb/VIPSWeb/wsgi.py

        <Directory /opt/VIPSWeb/VIPSWeb/VIPSWeb>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>

Instance configuration

Each installation of VIPSWeb can be customized in several ways

  • The page title
  • Site owner/URL
  • Languages
  • Time zone
  • Point in time (for demoing out of season)
  • Which backend servers (instances of VIPSCoreManager and VIPSLogic) to use
  • Which organization(s) to show data from
  • Front page map configurations (center, zoom and height/width)
  • Which news message types to show on the front page
  • The menu items in the page header
  • The menus in columns below the map
  • Text in the footer
  • Settings for the date picker

This is done by making a copy of local_settings_sample.py to local_settings.py and customizing it. local_settings.py is ignored by Git.

Configuration of VIPSLogic

TODO

Deployment of updates (AKA pipeline)

Updating translations

VIPSWeb/Django is using the GNU gettext system for translating phrases. In the git repository, the sourece .po files are updated, but the compiled .mo files are ignored. Thus, if an update of VIPSWeb contains new or updated translated texts/phrases, you need to compile them using the command

$ django-admin compilemessages

This requires that you have GNU gettext installed on your server.