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.

Get Started → ★ View on GitHub
4599
Default port
all services on one port
7
OCI services
Object Storage · Queue · Streaming · KMS · Functions
MIT
License
fork, embed, extend freely
$0
Forever free
no Oracle Cloud account needed

7 OCI services. All of them free.

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

Drop-in. No account. No key ceremony.

The same approach as floci for AWS, Azure and GCP, now applied to Oracle Cloud. MIT licensed, no restrictions.

MIT

Free forever, no account

MIT licensed. No subscription, no uploaded API keys, no billing. Pull the Docker image and point the OCI SDKs at localhost immediately.

SDK compatible

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.

Real crypto, real Functions

KMS performs real AES-GCM, RSA and ECDSA operations. Functions invocations run your real FDK image through an Fn Project sidecar, not a mock.

1

Single port

Every service answers on port 4599. Only Functions launches a Docker container; the other six services run entirely in-process.

Fast. Lightweight. Zero overhead.

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.

1
Docker image
All services in a single container
4599
Primary port
Every service on one endpoint
6/7
In-process services
Only Functions needs the Docker socket
4
Storage modes
memory · persistent · hybrid · WAL

Up in seconds.

Use the floci CLI for the smoothest experience, or run Docker directly if you prefer bare metal.

1 · Install floci CLI

brew install floci-io/floci/floci

2 · Start the emulator

floci oci start

3 · One-time setup & env vars

# creates a throwaway API key + ~/.oci/config profile
floci oci setup
eval $(floci oci env)
export TENANCY_OCID=ocid1.tenancy.oc1..flocilocaltenancy0000000000000000000000000000000000000000

4 · Upload a file

# 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

Other useful commands

# 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

Diagnose issues

floci oci doctor
# checks Docker, OCI CLI, connectivity

Works with every OCI SDK.

Use the standard OCI SDK in any language and point it at localhost:4599.

# pip install oci
import oci

config = {
  "user": "ocid1.user.oc1..anyuser",
  "fingerprint": "aa:bb:cc:dd:ee:ff:00:11:22:33:44:55:66:77:88:99",
  "tenancy": "ocid1.tenancy.oc1..flocilocaltenancy00000000…",
  "region": "us-ashburn-1",
  "key_file": "~/.oci/floci_key.pem", # any locally generated key
}

client = oci.object_storage.ObjectStorageClient(
  config, service_endpoint="http://localhost:4599")

namespace = client.get_namespace().data
client.put_object(namespace, "my-bucket", "hello.txt", b"Hello from floci-oci!")

Default connection values

floci-oci parses request signatures for tenancy and user context but never verifies them, so any locally generated API key works.

PropertyValue
Endpointhttp://localhost:4599
Namespacefloci-local
Tenancy OCIDocid1.tenancy.oc1..flocilocaltenancy00000000…
Regionus-ashburn-1
API keyany locally generated RSA key
Health checkhttp://localhost:4599/_floci-oci/health

Free. Fast. Always available.

MIT licensed and built for developer workflows. No Oracle Cloud account, no uploaded API keys, no credit card. Just a Docker image and localhost.

View on GitHub → Also need AWS? Try floci →