Configuration reference
THOTH separates browser-visible deployment configuration from server-only secrets.
Browser configuration selection
The browser first requests:
/a/thoth/config/deployment.json
It validates the selector's mode and source, loads the named JSON file, then merges any non-secret runtime values supplied by the selector.
The repository contains:
config/deployment.json: committed selector, defaulting tolocal.json;config/local.json: ATON authentication, ATON fallbacks, and no external endpoints; andconfig/hestia.json: HESTIA authentication plus named same-origin endpoints.
In HESTIA Docker mode, the gateway intercepts the selector request and returns:
{
"mode": "hestia",
"source": "hestia.json",
"runtime": {
"hestiaApiPublicUrl": "https://api.example.org",
"auth": { "portalUrl": "https://portal.example.org" }
}
}
Secrets are never included in this response.
Main browser fields
| Field | Meaning |
|---|---|
deploymentMode |
local or hestia. |
auth.mode |
aton or hestia. |
ATONSceneUrl |
Local ATON scene base URL used by the fallback loader/exporter. |
ATONModelUrl |
Local ATON model base URL retained for integration configuration. |
schemaListUrl |
Schema-list resource. |
defaultSchemaName |
Schema used when metadata has no explicit schema. |
use_endpoints |
Must be true before non-built-in named endpoints are enabled. |
endpoints |
Named endpoint definitions used by the API client. |
An endpoint definition supports endpoint_url, allowed methods, enabled, optional item_path, and optional timeout_seconds. See HTTP API.
HESTIA environment variables
| Variable | Default | Purpose |
|---|---|---|
THOTH_DEPLOYMENT_MODE |
local |
Enables HESTIA gateway and auth only when set to hestia. |
HESTIA_API_TARGET |
http://api:5000 |
Upstream HESTIA API on the Docker network. |
HESTIA_API_PUBLIC_URL |
https://api.textailes.athenarc.gr |
Public origin found in returned asset URLs. |
HESTIA_DIRECTUS_TARGET |
http://directus:8055 |
Directus target used to refresh and end Portal sessions. |
HESTIA_PORTAL_URL |
https://textailes.athenarc.gr |
Browser-visible Archive Portal origin. |
HESTIA_COOKIE_NAME |
textailes_refresh_token |
Shared Directus refresh cookie. |
HESTIA_COOKIE_DOMAIN |
.textailes.athenarc.gr |
Shared parent cookie domain. |
HESTIA_API_AUTH_KEY |
none | Server-side HESTIA bearer credential. Required. |
EGI_AUTHORIZE_URL |
none | EGI authorization endpoint. Required. |
EGI_TOKEN_URL |
none | EGI token endpoint. Required. |
EGI_USERINFO_URL |
none | EGI user-info endpoint. Required. |
EGI_CLIENT_ID |
none | OAuth client ID. Required. |
EGI_CLIENT_SECRET |
none | OAuth client secret. Required. |
EGI_REDIRECT_URI |
deployment-specific | Registered callback URL. Required. |
THOTH_SESSION_SECRET |
none | HMAC secret for THOTH sessions. Required. |
THOTH_HOST_DOMAIN |
thoth.textailes.athenarc.gr |
Traefik host rule. |
THOTH_GEODESIC_ADDON_PATH |
built-in path search | Optional explicit native addon location. |
server/deployment/gateway-extension.js validates every required HESTIA variable during startup. Use long, random values for session and service secrets and rotate them according to the deployment's security policy.
ATON source boundary
Local execution does not load HESTIA routes. Docker installs one gateway loader line into the image's private ATON copy; it does not edit or mount a host ATON source file. Native Exact Geodesic is the exception: its documented installer explicitly updates the selected host services/ATON.service.main.js, and only after an administrator runs it.