Standalone Mode Deployment

Run Compozy as a single process with embedded Temporal and an optional embedded Redis-compatible cache.

When to Use Standalone

  • Local development

    Zero-deps setup. Run Compozy with an embedded Temporal server and built‑in cache.

  • Ephemeral CI & tests

    Deterministic, fast startup for integration tests. No Docker or external clusters.

  • Samples and workshops

    Ship examples that boot end‑to‑end in seconds on any laptop.

Requirements

  • Go 1.25+ (CLI runtime; project uses Go 1.25.2)
  • macOS, Linux, or Windows
  • Optional: PostgreSQL if your workflows use the database features
  • No external Redis required (embedded compatible server covers cache use cases)

Quick Start

Create a minimal configuration with standalone mode enabled for both Temporal and the cache layer.

compozy.yaml
name: hello-standalone
version: "0.1.0"

mode: standalone

temporal:
  mode: standalone
  host_port: localhost:7233
  standalone:
    database_file: :memory:
    frontend_port: 7233
    bind_ip: 127.0.0.1
    namespace: default
    cluster_name: compozy-standalone
    enable_ui: true
    ui_port: 8233

redis:
  mode: standalone
  standalone:
    persistence:
      enabled: false         # enable for snapshots
      dir: ./.tmp/redis      # snapshot directory when enabled
      interval: 60s          # snapshot interval

workflows:
  - source: ./workflows/greeting.yaml

Start Compozy with explicit overrides (optional; YAML takes precedence):

compozy start --temporal-mode=standalone --temporal-standalone-database=:memory:

Open the Temporal UI at http://localhost:8233 and run a sample workflow.

Configuration Reference

Minimal Standalone (Ephemeral)

mode: standalone
temporal:
  mode: standalone
  standalone:
    database_file: :memory:
redis:
  mode: standalone
  standalone:
    persistence:
      enabled: false

Standalone with Persistence

mode: standalone
temporal:
  mode: standalone
  standalone:
    database_file: ./.tmp/temporal.db
redis:
  mode: standalone
  standalone:
    persistence:
      enabled: true
      dir: ./.tmp/redis
      interval: 30s

Verify the Setup

1

Server is running

compozy start shows HTTP and Temporal ports; Temporal UI responds at the configured ui_port.

2

Workflow executes

Run compozy workflow run ./workflows/greeting.yaml --input '{"name":"Ava"}' and confirm success in the UI.

3

Cache operational

Run features that use caching (rate limits, stores). With persistence enabled, restart and verify data restores.

Performance Expectations

  • Startup: typically under 10 seconds on modern laptops
  • Throughput: lower than multi‑node clusters; suitable for individual developers and CI
  • UI: convenient for debugging, disable in CI for faster boots (enable_ui: false)

Troubleshooting

Common issues and fixes:

  • Port conflict on 7233–7236 or 8233: Adjust temporal.standalone.frontend_port or ui_port
  • Startup timeout: Increase temporal.standalone.start_timeout (e.g. 60s)
  • Snapshot errors: Verify redis.standalone.persistence.dir write permissions

See Temporal Troubleshooting and Common Issues.

Next Steps