On-Premises Deployment Setup#
This page covers connecting the Python API to an on-premises (Nexus) deployment of Flow360 instead of the public cloud. If you use flow360.simulation.cloud, you do not need anything on this page; follow the standard installation and setup guide.
An on-premises deployment serves the web UI, the APIs, and object storage from a
single origin. The Python API needs the individual service endpoints, and
EnvironmentConfig.from_on_premises_url derives all of them from one URL —
any address of the deployment, such as the web UI URL from your browser (only
the scheme, host and port are used):
import flow360 as fl
from flow360.environment import EnvironmentConfig
# Store the API key for this environment (obtain it from the deployment's
# web UI under Account -> Python Authentication).
fl.configure(apikey="<YOUR_API_KEY>", environment="my_on_premises")
on_premises = EnvironmentConfig.from_on_premises_url(
name="my_on_premises",
base_url="http://nexus.example.com", # any URL of the deployment works,
) # e.g. the web UI URL from the browser
on_premises.active()
from_on_premises_url derives:
Field |
Derived value |
|---|---|
|
|
|
|
|
|
|
|
Object storage endpoint#
On-premises deployments advertise an object-storage endpoint that is internal to
the deployment network (for example http://s3proxy:8080), which client
machines cannot resolve. The s3_endpoint_url setting overrides it. The
default, {base_url}/s3, routes uploads and downloads through the same origin
as everything else and works for both Docker Compose and Kubernetes deployments.
Two alternatives:
# A dedicated storage port, if your deployment publishes one (deploy-specific):
EnvironmentConfig.from_on_premises_url(
name="my_on_premises",
base_url="http://nexus.example.com",
s3_endpoint_url="http://nexus.example.com:9000",
)
# Trust the endpoint advertised by the server (only when the client can
# resolve deployment-internal hostnames):
EnvironmentConfig.from_on_premises_url(
name="my_on_premises",
base_url="http://nexus.example.com",
s3_endpoint_url=None,
)
Verify, then save#
Run the built-in diagnostic before persisting the environment, so a broken configuration is never stored and silently reloaded in later sessions:
report = fl.diagnose()
if report.ok:
on_premises.save_config() # persist to ~/.flow360/config.toml
fl.diagnose() verifies one layer at a time — installation, endpoint
configuration, proxy environment, DNS and TCP reachability, TLS certificates,
HTTP, clock skew, API key, authenticated web API and portal calls, project
listing, and object storage — and prints a targeted fix for every failing
check. A saved environment can be re-activated in any later session with:
fl.Env.load("my_on_premises").active()
The Python setup above is a one-time step. Once the environment is saved, verify it from the terminal at any time:
flow360 diagnose --env my_on_premises
The environment name used with fl.configure and the environment name
must match: stored API keys are looked up per environment name. Both
flow360 configure and flow360 diagnose also accept
--profile <profile> to store and use the key under a non-default account
profile.
See the CLI reference for all flow360 diagnose
options.
Before running production work#
Important
Match the client version to the deployment. Install a Python API version compatible with the Flow360 solver packaged in your deployment; mismatches surface as validation or submission failures.
flow360 versionprints the installed client and its solver version.Confirm the object storage endpoint with your administrator. An incorrect storage endpoint prevents uploads and downloads even when project listing works, because file transfers do not use the web API. The
storagediagnostic check reports which endpoint is in use and whether the one advertised by the server is reachable from your machine.Verify one small upload and one download against the deployment before working with production data. File transfers can behave differently between Docker Compose and Kubernetes deployments.
Keep the API key confidential. It is stored locally in
~/.flow360/config.toml. Do not commit a setup script that contains a real key, and do not share that configuration file.