Provide a QWC2 Web Client application using QWC services.
Note: requires a QWC OGC service or QGIS server running on $OGC_SERVICE_URL, a
QWC Config service running on $CONFIG_SERVICE_URL and a QWC Data service running on
$DATA_SERVICE_URL
Copy your QWC2 files from a production build (see QWC2 Quick start):
SRCDIR=path/to/qwc2-app/prod/ DSTDIR=$PWD
mkdir $DSTDIR/qwc2 && mkdir $DSTDIR/qwc2/dist
cd $SRCDIR && \
cp -r assets $DSTDIR/qwc2 && \
cp -r translations $DSTDIR/qwc2 && \
cp dist/QWC2App.js $DSTDIR/qwc2/dist/ && \
cp index.html $DSTDIR/qwc2/ && \
cp config.json $DSTDIR/qwc2/config.json && \
cd -
Copy your QWC2 themes config file:
cp themesConfig.json $DSTDIR/qwc2/
Configure the QWC2 application using your config.json file (see Documentation).
Add new themes to your themesConfig.json (see Documentation) and put any theme thumbnails into $QWC2_PATH/assets/img/mapthumbs/.
The themesConfig.json file is used by the Config service to collect the full themes configuration using GetProjectSettings.
Additional viewer configurations can be added by placing a <viewer>.json and/or <viewer>.html for each custom viewer into the $QWC2_VIEWERS_PATH directory. The custom viewers can be opened by appending the viewer name to the base URL: http://localhost:5030/<viewer>/.
A custom <viewer>.json could e.g. contain a different set of menu items and tools.
A custom <viewer>.html could e.g. show a different title and use a custom CSS.
If a <viewer>.json or <viewer>.html is missing, the default config.json and index.html is used instead.
The AUTH_SERVICE_URL is used by default for sign in and sign out.
To differentiate e.g between intranet and internet, identity groups based on request origin and different auth service URLs can be configured:
ORIGIN_CONFIG: JSON with rules configuration{ "host": { "<group name>": "<RegEx pattern for host from request>", "_intern_": "^127.0.0.1(:\\\\d+)?$" } }AUTH_SERVICES_CONFIG: JSON with lookup of auth service URLs for groups (with fallback toAUTH_SERVICE_URL){ "<group name>": "<auth service route or URL>", "_intern_": "http://127.0.0.1:5017/" }
Set the OGC_SERVICE_URL environment variable to the QWC OGC service URL (or QGIS server URL)
when starting this service. (default: http://localhost:5013/ on
qwc-ogc-service container)
Set the CONFIG_SERVICE_URL environment variable to the QWC Config service URL
when starting this service. (default: http://localhost:5010/ on
qwc-config-service container)
Set the DATA_SERVICE_URL environment variable to the QWC Data service URL
when starting this service. (default: http://localhost:5012/ on
qwc-data-service container)
Set the QWC2_PATH environment variable to your QWC2 files path.
Optionally:
- Set the
QWC2_CONFIGenvironment variable to your QWC2config.jsonpath if it is not located in$QWC2_PATH. - Set the
QWC2_VIEWERS_PATHenvironment variable to your QWC2 custom viewers path (default:$QWC2_PATH/viewers/). - Set the
PERMALINK_SERVICE_URLenvironment variable to the QWC permalink service URL. - Set the
ELEVATION_SERVICE_URLenvironment variable to the QWC elevation service URL. - Set the
MAPINFO_SERVICE_URLenvironment variable to the QWC map info service URL. - Set the
DOCUMENT_SERVICE_URLenvironment variable to the QWC document service URL. - Set the
SEARCH_SERVICE_URLenvironment variable to the QWC search service URL. - Set the
AUTH_SERVICE_URLenvironment variable to the default QWC auth service URL. - Set the
INFO_SERVICE_URLenvironment variable to the QWC feature info proxy service URL. - Set the
LEGEND_SERVICE_URLenvironment variable to the QWC legend graphics proxy service URL. - Set the
PRINT_SERVICE_URLenvironment variable to the QWC print proxy service URL. - Set the
ORIGIN_CONFIGenvironment variable to your origin detection rules. - Set the
AUTH_SERVICES_CONFIGenvironment variable to your auth service lookups.
Base URL:
http://localhost:5030/
Custom viewer URL:
http://localhost:5030/<viewer>/
Sample requests:
curl 'http://localhost:5030/config.json'
curl 'http://localhost:5030/themes.json'
Create a virtual environment:
virtualenv --python=/usr/bin/python3 --system-site-packages .venv
Without system packages:
virtualenv --python=/usr/bin/python3 .venv
Activate virtual environment:
source .venv/bin/activate
Install requirements:
pip install -r requirements.txt
Start local service:
OGC_SERVICE_URL=http://localhost:5013/ CONFIG_SERVICE_URL=http://localhost:5010/ DATA_SERVICE_URL=http://localhost:5012/ QWC2_PATH=qwc2/ python server.py
Start local service with local auth service config:
OGC_SERVICE_URL=http://localhost:5013/ CONFIG_SERVICE_URL=http://localhost:5010/ DATA_SERVICE_URL=http://localhost:5012/ QWC2_PATH=qwc2/ AUTH_SERVICES_CONFIG='{"_intern_": "http://127.0.0.1:5017/"}' AUTH_SERVICE_URL=http://localhost:5017/ python server.py