Enterprise IT
VIKTOR is a low-code application development platform based on Python. This guide outlines the prerequisites to use VIKTOR within an enterprise IT environment.
Device settings
In order to develop applications on the VIKTOR platform the machine of a developer needs to meet the following requirements:
- The machine runs a Windows or Linux operating system.
- Python 3.8 - 3.11 (64-bit) is available or can be installed by the developer.
- An Integrated Development Environment (IDE) is available or can be installed by the developer.
- The machine has internet access (TCP over port 443, TLS >= v1.2).
- The developer should have administrator rights for the installation of the command-line interface (CLI) and VIKTOR worker. These applications are shipped as Microsoft Installer (.msi) files.
Network / proxy settings
The CLI is used to connect local application code (hosted on the machine of the developer) to a cloud-based development workspace. This requires an internet connection with network settings specified below.
Domains
The following domains should be accessible on the machine of the developer in order to be able to use VIKTOR. As these
domains may be subject to change we recommend using a wildcard *
for the subdomains of viktor.ai
and
amazonaws.com
.
addons.viktor.ai
api-<dev>.viktor.ai
(still used but deprecated)cloud.viktor.ai
community.viktor.ai
<company>.viktor.ai
(for exampleacme.viktor.ai
)connect.viktor.ai
developers.viktor.ai
docs.viktor.ai
errors.viktor.ai
sys.viktor.ai
viktor.ai
viktor-storage.s3.amazonaws.com
viktor-system.s3.amazonaws.com
Furthermore, installation of third-party Python packages requires access to:
files.pythonhosted.org
pypi.org
pypi.python.org
SSL certificates
If a proxy is configured in such a way that the SSL certification chain is modified by replacing the root CA's certificate by a self-signed certificate, additional steps are required before the developer is able to use Python. By default Python does not use the system certificate store but uses a bundled CA certificate store to establish secure connections for the installation of dependencies. Because the certificate of the proxy is not present in the bundled CA certificate store an error will occur. It is possible to solve this problem in two ways:
- Windows
- Linux (or WSL2)
- Pip (the Python package manager) has introduced a feature (
truststore
) to use the system certificate store for Python versions >=3.10
. VIKTOR uses this feature automatically when you use a Python version that supports it. Therefore, the easiest solution is use a supported Python version if you run into any SSL errors while installing apps. The solution depends on the selected isolation mode:venv
: install a supported Python version and configure this version for developing apps with the commandviktor-cli configure
.docker
: change the Python version to a supported version in theviktor.config.toml
file.
- (isolation mode
venv
only) Export CA certificates (including the proxy root certificate) from the system certificate store and save the bundle to a file. Subsequently, set the environment variableCURL_CA_BUNDLE
with the path to this file when installing your app (e.g. run the commandviktor-cli install -e CURL_CA_BUNDLE="path/to/bundle"
). If this variable is set, Python will use the certificates from the file instead of the bundled certificates.
- Pip (the Python package manager) has introduced a feature (
truststore
) to use the system certificate store for Python versions >=3.10
. VIKTOR uses this feature automatically when you use a Python version that supports it. Therefore, the easiest solution is use a supported Python version if you run into any SSL errors while installing apps. The solution depends on the selected isolation mode:venv
: install a supported Python version and configure this version for developing apps with the commandviktor-cli configure
.docker
: change the Python version to a supported version in theviktor.config.toml
file.
- (isolation mode
venv
only) Set the environment variableCURL_CA_BUNDLE
with the path to the system certificate bundle when installing your app (e.g. run the commandviktor-cli install -e CURL_CA_BUNDLE="/etc/ssl/certs/ca-certificates.crt"
). If this variable is set, Python will use the certificates from the system instead of the bundled certificates.
For more information please have a look at the documentation of pip.