Local Oracle Cloud.
Zero cost.
Zero restrictions.
floci-oci is a fast, free, open-source Oracle Cloud Infrastructure (OCI) emulator built with Quarkus. No Oracle Cloud account required.
floci-oci is a fast, free, open-source Oracle Cloud Infrastructure (OCI) emulator built with Quarkus. No Oracle Cloud account required.
Wire-compatible with the official OCI SDKs, the OCI CLI, Terraform and OpenTofu. Point your existing tools at localhost and keep your workflows.
Runs a Docker container
The same approach as floci for AWS, Azure and GCP, now applied to Oracle Cloud. MIT licensed, no restrictions.
MIT licensed. No subscription, no uploaded API keys, no billing. Pull the Docker image and point the OCI SDKs at localhost immediately.
Works with the OCI SDKs, the OCI CLI, Terraform and OpenTofu. Request signatures are parsed for tenancy and user context but never verified — any locally generated API key works.
KMS performs real AES-GCM, RSA and ECDSA operations. Functions invocations run your real FDK image through an Fn Project sidecar, not a mock.
Every service answers on port 4599. Only Functions launches a Docker container; the other six services run entirely in-process.
floci-oci is built on Quarkus with GraalVM native-image support, so it starts fast and stays light in test pipelines. One image, 7 services.
Use the floci CLI for the smoothest experience, or run Docker directly if you prefer bare metal.
brew install floci-io/floci/flocifloci oci start# creates a throwaway API key + ~/.oci/config profile floci oci setup eval $(floci oci env) export TENANCY_OCID=ocid1.tenancy.oc1..flocilocaltenancy0000000000000000000000000000000000000000
# Create a bucket oci os bucket create \ --namespace-name floci-local \ --name my-bucket \ --compartment-id $TENANCY_OCID # Write a file and upload it echo "Oracle Cloud locally — no bill, no drama. 🚀" \ > hello-floci.txt oci os object put \ --namespace-name floci-local \ --bucket-name my-bucket \ --file hello-floci.txt # Download it back and read it oci os object get \ --namespace-name floci-local \ --bucket-name my-bucket \ --name hello-floci.txt \ --file hello-back.txt cat hello-back.txt
# Check status floci oci status # View logs floci oci logs # Stop the emulator floci oci stop # List enabled OCI services floci oci services # Poll until ready (CI-friendly) floci oci wait
floci oci doctor # checks Docker, OCI CLI, connectivity
Use the standard OCI SDK in any language and point it at localhost:4599.
floci-oci parses request signatures for tenancy and user context but never verifies them, so any locally generated API key works.
| Property | Value |
|---|---|
| Endpoint | http://localhost:4599 |
| Namespace | floci-local |
| Tenancy OCID | ocid1.tenancy.oc1..flocilocaltenancy00000000… |
| Region | us-ashburn-1 |
| API key | any locally generated RSA key |
| Health check | http://localhost:4599/_floci-oci/health |