mait.sh1.132.1

Private beta: features and content may change. No warranty; use at your own risk.

Customize AIDC Server

Choose direct HTTPS or gateway mode, set the environment variables and chart values that change how the server behaves, and know what clients choose on each request.

Beta
Deployment mode

Serve HTTPS yourself, or sit behind your gateway.

In the default mode the server serves HTTPS itself and accepts customer connections. Use it when clients reach the server directly, or through a load balancer or ingress that passes the connection through unchanged. In gateway mode an HTTPS gateway receives requests, requires the caller's credentials, and passes the request to the server. The server makes the same access decisions in both modes.

VariableDefaultEffect
AIDC_HUB_BIND_ADDRESS0.0.0.0Address the API listens on
AIDC_HUB_PORT8443 (the image sets 8080)API port. Set it explicitly for a container
AIDC_HUB_CERT_BUNDLE/etc/aidc/hub/tls/tls.crtHTTPS bundle file. The server does not start without it outside gateway mode
AIDC_HUB_GATEWAY_MODEfalsetrue serves the API to a gateway in front of the server
AIDC_HUB_PATH_PREFIXnoneServes every route, including health, under this prefix

In gateway mode, configure the gateway as supplied with your on-premise setup, make the server's HTTP port reachable only from the gateway and verify that after every network change, and never expose the HTTP port or the monitoring port outside the cluster. With the Kubernetes chart, gateway mode is several separate values, not one switch: set the service port to 8080, turn off config.tls.enabled, supply the complete env list, use HTTP probes, disable the TCP route and enable ingressRoute.https. Inspect the helm template output before installing. When you set a path prefix, add it to the probe paths and to ingressRoute.https.pathPrefix, and keep it identical in the gateway route and the address customers use, or every path returns 404.

Storage and signing

Where data lives and how long uploads and old keys last.

All settings are environment variables, read when the server starts; restart after a change. Each variable also works without the AIDC_ prefix, and the prefixed form wins. With the Kubernetes chart you set them through the chart's env list.

VariableDefaultEffect
AIDC_HUB_STORAGE_PATH/var/lib/aidc/hub/packagesDirectory for archives and manifests
AIDC_HUB_DATABASE_URLa file on the data volumeLocation of the server's catalogue, which also holds signing keys and activity records. Leave the default and keep it on the same volume
AIDC_HUB_UPLOAD_EXPIRY_HOURS1Lifetime of a chunked upload session from its creation. Activity does not extend it
AIDC_HUB_UPLOAD_CLEANUP_INTERVAL_MINUTES30How often expired sessions and their partial data are removed
AIDC_HUB_AUTO_RESIGN_ENABLEDtrueRe-signs packages carrying a former key's signature after a rotation
AIDC_HUB_RESIGN_INTERVAL86400Seconds between re-signing cycles
AIDC_HUB_AUTO_RESIGN_BATCH_SIZE100Packages handled per batch
AIDC_HUB_AUTO_RESIGN_PARALLEL1Parallel re-signing workers
AIDC_HUB_AUTO_DEPRECATE_AFTER_RESIGNtrueRetires a former key once no package uses it
AIDC_HUB_AUTO_REMOVE_AFTER_DAYS2Days after retirement before an unused former key is deleted

Storage and database must be on a persistent volume writable by user ID 1000. A single request body is limited to 500 MiB, and that limit is not configurable. AIDC_HUB_UPLOAD_CHUNK_SIZE and AIDC_HUB_UPLOAD_MAX_RETRIES are accepted but change nothing; the publishing client chooses its chunk size. With re-signing off, former keys stay trusted and served until you turn it back on.

Background jobs

Intervals for refresh, integrity checks and activity.

Turning a job back on resumes it at its next interval; missed cycles are not replayed.

VariableDefaultEffect
AIDC_HUB_VERSION_REFRESH_ENABLEDtrueScheduled upstream version refresh. When off, versions still refresh on request
AIDC_HUB_VERSION_REFRESH_INTERVAL10800Seconds between scheduled refreshes
AIDC_GITHUB_TOKENnoneOptional token for GitHub-released tools; avoids rate limits
AIDC_HUB_VENDOR_KEY_REFRESH_ENABLEDtrueDaily refresh of vendor verification keys
AIDC_HUB_VENDOR_KEY_REFRESH_INTERVAL86400Seconds between vendor-key refreshes
AIDC_HUB_CONSISTENCY_CHECK_ENABLEDtrueScheduled package integrity check
AIDC_HUB_CONSISTENCY_CHECK_INTERVAL43200Seconds between integrity checks
AIDC_HUB_CONSISTENCY_AUTO_CLEANUPtrueRemoves missing or altered packages the scheduled check finds
AIDC_HUB_TELEMETRY_ENABLEDtrueRecords requests and downloads for statistics
AIDC_HUB_SUGGESTION_THRESHOLD, AIDC_HUB_SUGGESTION_LIMIT10, 20Default minimum request count and number of suggestions; callers can override per request
AIDC_HUB_RETENTION_DAYS90 (minimum 3)Days detailed activity records are kept before being summarized into daily totals
AIDC_HUB_METRICS_ENABLED, AIDC_HUB_METRICS_PORTtrue, 9090Internal monitoring listener; the port must differ from the API port

The access-check setting has no default outside the chart. It comes with your on-premise setup (chart value liveAccess.url); without a reachable access check, every protected request is refused with 503 while health stays green.

Chart values

What the Helm chart exposes.

ValueDefaultEffect
image.tagthe chart's pinned versionServer version to run. Set it explicitly
replicaCount1Must stay 1; the chart refuses other values
strategy.typeRecreateKeep it; a rolling update cannot attach the volume the old pod holds
persistence.size, persistence.storageClass1Gi, cluster defaultData volume size and class. The default size is not a capacity recommendation
persistence.existingClaimnoneA volume claim you manage, which uninstalling the chart never deletes
secrets.tls, config.tls.enabledaidc-server-tls, trueSecret holding the HTTPS bundle under tls.crt; false in gateway mode
liveAccess.urla placeholder that does not work on-premiseAlways set it to the access-check address from your on-premise setup
envthe chart's defaultsThe complete environment list. Overriding it replaces every default entry
channelstableLabel added to every monitoring metric; only stable, edge or beta are accepted
resourcesrequests 250m CPU and 256 MiB, limits 2 CPU and 1 GiBContainer resources
retentionPurgeCronJob.enabled, .suspend, .scheduletrue, false, 0 3 * * *Daily job that asks the server to remove expired activity records
ingressRoute.tcp.enabledtrueTCP pass-through route for direct HTTPS
ingressRoute.https.enabled, .host, .pathPrefixfalse, empty, /HTTPS route used in gateway mode
serversTransport.enabledfalseGateway backend timeouts for long uploads and downloads (gateway mode only)
middleware.rateLimit.enabledfalseCreates a rate-limit middleware (30 requests per minute on average, bursts of 60) to add to the HTTPS route
Client side

Each request carries its own coordinates.

Customers do not configure the server. On each request they choose the server address, including any path prefix, their credential files, and the package coordinates.

ChoiceDefaultEffect
platformlinux when omitted in metadata and download requestsSend the package's explicit platform
architectureamd64 when omittedUse the exact catalogue string; x64 and amd64 are different variants
distributionemptyA named distribution is a separate variant, not an alias of the empty one

Omitted values are defaults, not wildcards. Unpublishing requires an explicit platform and architecture.

Next

Where to go next.