application.yml Reference
Source builds only
This page is for users who build floci-gcp from source or mount a custom application.yml into the container. If you run the published Docker image, you don't need this file — all settings are configured through FLOCI_GCP_* environment variables. See the Environment Variables Reference for the complete list.
All settings can be provided as YAML (in src/main/resources/application.yml) or overridden via environment variables using the FLOCI_GCP_ prefix with dots and dashes replaced by underscores.
URL Configuration
floci-gcp generates absolute URLs for certain response fields (GCS object URLs, pre-signed URLs). Two settings control the hostname embedded in those URLs:
| Setting | Env variable | Default | Description |
|---|---|---|---|
floci-gcp.base-url |
FLOCI_GCP_BASE_URL |
http://localhost:4578 |
Full base URL used to build response URLs |
floci-gcp.hostname |
FLOCI_GCP_HOSTNAME |
(none) | Override only the hostname in base-url. Useful in Docker Compose where localhost is unreachable from other containers |
When floci-gcp.hostname is set it replaces just the host portion of base-url, leaving the scheme and port unchanged. Setting FLOCI_GCP_HOSTNAME: floci-gcp is equivalent to changing base-url from http://localhost:4578 to http://floci-gcp:4578.
Example — Docker Compose multi-container setup:
environment:
FLOCI_GCP_HOSTNAME: floci-gcp # matches the compose service name
FLOCI_GCP_BASE_URL: http://floci-gcp:4578
See Docker Compose — Multi-container networking for a full example.
Full Reference
The block below mirrors src/main/resources/application.yml.
floci-gcp:
port: 4578
base-url: "http://localhost:4578" # Used to build GCS object URLs and pre-signed URLs
# hostname: "" # When set, overrides the host in base-url for multi-container Docker
default-project-id: floci-local
storage:
mode: memory # memory | persistent | hybrid | wal
persistent-path: ./data
wal:
compaction-interval-ms: 30000
dns:
# Extra hostname suffixes resolved to floci-gcp's container IP by the embedded DNS server.
# Via env var (comma-separated): FLOCI_GCP_DNS_EXTRA_SUFFIXES=custom.internal,other.domain
# extra-suffixes:
# - custom.internal
docker:
log-max-size: "10m"
log-max-file: "3"
docker-host: unix:///var/run/docker.sock
docker-config-path: ""
services:
gcs:
enabled: true
pubsub:
enabled: true
firestore:
enabled: true
datastore:
enabled: true
secretmanager:
enabled: true
iam:
enabled: true
Disabling Services
Set enabled: false for any service you don't need:
Via environment variable:
Logging
floci-gcp uses standard Quarkus logging. The default effective level is INFO. Services log operation-level events at DEBUG and full request/response payloads at TRACE.
Enable TRACE for a service via environment variables:
# Pub/Sub: log publish/pull bodies
QUARKUS_LOG_CATEGORY__IO_FLOCI_GCP_SERVICES_PUBSUB__LEVEL=TRACE
# Firestore: log read/write operations
QUARKUS_LOG_CATEGORY__IO_FLOCI_GCP_SERVICES_FIRESTORE__LEVEL=TRACE
Or in application.yml: