Skip to content

Environment Variables

All configuration lives under the floci-oci.* prefix; every property maps to an FLOCI_OCI_* environment variable via the standard MicroProfile Config rules (dots and dashes become underscores, uppercase).

Variable Default Description
FLOCI_OCI_PORT 4599 Listen port
FLOCI_OCI_BASE_URL http://localhost:4599 Base URL used in returned URLs
FLOCI_OCI_HOSTNAME – Overrides the hostname in returned URLs (multi-container setups)
FLOCI_OCI_DEFAULT_REGION us-ashburn-1 Home region given to a tenancy the first time it is seen, which is also where its requests land when the Host names no OCI region
FLOCI_OCI_DEFAULT_REALM oc1 Realm key for OCIDs when the region is not a known OCI region; known regions use their own realm (e.g. uk-gov-london-1 is oc4)
FLOCI_OCI_DEFAULT_TENANCY_ID ocid1.tenancy.oc1..flocilocal… Tenancy used for unsigned requests
FLOCI_OCI_DEFAULT_NAMESPACE floci-local Object Storage namespace
FLOCI_OCI_MAX_REQUEST_SIZE 2048 Max request body size in MB
FLOCI_OCI_STORAGE_MODE memory memory, persistent, hybrid, or wal
FLOCI_OCI_STORAGE_PERSISTENT_PATH ./data Where persisted state is written
FLOCI_OCI_AUTH_REQUIRE_SIGNATURE false Reject unsigned requests with 401. /health, /_floci-oci/* and pre-authenticated requests (/p/*) are always exempt
FLOCI_OCI_TLS_ENABLED false Serve HTTPS + HTTP on the same port
FLOCI_OCI_TLS_HTTPS_PORT 443 Extra HTTPS binding for clients that assume 443 (0 disables)
FLOCI_OCI_SERVICES_IDENTITY_ENABLED true Enable/disable Identity
FLOCI_OCI_SERVICES_OBJECTSTORAGE_ENABLED true Enable/disable Object Storage
FLOCI_OCI_SERVICES_QUEUE_ENABLED true Enable/disable Queue
FLOCI_OCI_SERVICES_KMS_ENABLED true Enable/disable KMS (vaults, keys, crypto)
FLOCI_OCI_SERVICES_VAULT_ENABLED true Enable/disable Vault secrets + bundles
FLOCI_OCI_SERVICES_STREAMING_ENABLED true Enable/disable Streaming
FLOCI_OCI_SERVICES_ORGANIZATIONS_ENABLED true Enable/disable Organizations (child tenancies, organizations, links)
FLOCI_OCI_SERVICES_GOVERNANCERULES_ENABLED true Enable/disable Governance Rules (rules, inclusion criteria, tenancy attachments)
FLOCI_OCI_SERVICES_FUNCTIONS_ENABLED true Enable/disable Functions
FLOCI_OCI_SERVICES_FUNCTIONS_MOCK false Skip the Fn sidecar; invocations return a synthetic body
FLOCI_OCI_SERVICES_FUNCTIONS_SERVER_IMAGE fnproject/fnserver:latest Fn Project server image
FLOCI_OCI_SERVICES_OKE_ENABLED true Enable/disable Container Engine for Kubernetes (OKE)
FLOCI_OCI_SERVICES_OKE_MOCK false Skip the k3s sidecar; clusters become ACTIVE at once with synthetic endpoints
FLOCI_OCI_SERVICES_OKE_DEFAULT_IMAGE rancher/k3s:v1.30.1-k3s1 k3s image for cluster sidecars
FLOCI_OCI_SERVICES_OKE_API_SERVER_BASE_PORT 6443 First host port for cluster API servers
FLOCI_OCI_SERVICES_OKE_API_SERVER_MAX_PORT 6543 Last host port for cluster API servers
FLOCI_OCI_SERVICES_OKE_KUBECONFIG_AUTH exec Kubeconfig user: exec (real OKE oci ce cluster generate-token) or token (static bearer token)
FLOCI_OCI_SERVICES_OKE_READY_TIMEOUT_SECONDS 300 How long a cluster may stay CREATING before it goes FAILED
FLOCI_OCI_SERVICES_PSQL_ENABLED true Enable/disable Database with PostgreSQL
FLOCI_OCI_SERVICES_PSQL_MOCK false Skip the PostgreSQL sidecar; DB systems become ACTIVE at once with nothing listening on their endpoint
FLOCI_OCI_SERVICES_PSQL_IMAGE postgres:{major}-alpine PostgreSQL image for DB system sidecars; {major} is replaced with the major of the DB system's dbVersion
FLOCI_OCI_SERVICES_PSQL_BASE_PORT 15432 First host port for DB system endpoints
FLOCI_OCI_SERVICES_PSQL_MAX_PORT 15531 Last host port for DB system endpoints
FLOCI_OCI_SERVICES_PSQL_READY_TIMEOUT_SECONDS 120 How long a DB system may take to accept connections before it goes FAILED
FLOCI_OCI_SERVICES_DOCKER_NETWORK – Shared Docker network for sidecar containers
FLOCI_OCI_DOCKER_RESOURCE_NAMESPACE – Namespace inserted into sidecar container/volume names (floci-oci-<ns>-…) so parallel emulator instances on one Docker host don't collide
FLOCI_OCI_DOCKER_ENDPOINT_MODE auto How a sidecar's published port is addressed in the endpoints returned to clients: auto (localhost when floci-oci runs on the host, the sidecar's container name when it runs in a container) or published (always the Docker daemon's host and the published port; for a remote daemon, or host-side clients of a containerised floci-oci). Only services that build their client endpoint from this setting follow it: OKE cluster endpoints do not, and are always 127.0.0.1

Per-service storage overrides use the map form:

FLOCI_OCI_STORAGE_SERVICES_OBJECTSTORAGE_MODE=wal
FLOCI_OCI_STORAGE_SERVICES_OBJECTSTORAGE_FLUSH_INTERVAL_MS=5000

Resource identity labels

Every container and volume floci-oci creates carries the base labels floci=true, floci_emulator=floci-oci and, when FLOCI_OCI_DOCKER_RESOURCE_NAMESPACE is set, floci_namespace. Function containers that fnserver starts itself are not labelled. A container backing an emulated OCI resource also carries labels tying it back to that resource, additive to the base labels:

Label Value Purpose
io.floci oci Cloud provider, for multi-cloud discovery when several Floci emulators share a host
io.floci.service e.g. oke The OCI service the container backs
io.floci.resource-id e.g. ocid1.cluster.oc1.iad.… The resource OCID, as the OCI CLI and SDKs take it
io.floci.compartment the compartment OCID The compartment the resource belongs to
io.floci.region e.g. us-ashburn-1 The region the resource belongs to (an OKE cluster's own region). The shared Fn server serves every region and carries no region label
floci_service same value as io.floci.service Legacy alias, written alongside io.floci.service; prefer the new key

This makes docker ps --filter label=io.floci.resource-id=<cluster-ocid> resolve an emulated resource to its backing container directly. Applied to Container Engine (OKE) clusters and Functions. The Functions fnserver container is a shared singleton serving every application, so it carries every label except io.floci.resource-id and io.floci.compartment.

The io.floci.* key set is shared with floci-aws, floci-gcp and floci-az, so docker ps --filter label=io.floci lists every resource-backing container on a shared host.