-
Tor-Einar Skog authoredTor-Einar Skog authored
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
- Install and activate a virtual Python environment
python3 -m venv my_venv
source my_env/bin/activate
- 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
-
Copy VIPSWeb/local_settings_sample.py into VIPSWeb/local_settings.py and adapt to your needs
-
Run all database migrations
./manage.py migrate
- 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 thelibapache2-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.