# Deployment

# Deployment

This page covers deployment concepts for Curiosity Workspace. The exact deployment model (desktop, VM, containers) may vary, but the production concerns are consistent.

# Deployment goals

  • Reliability: predictable uptime and recoverability
  • Security: controlled access, hardened configuration, audited operations
  • Scalability: handle data growth and query load
  • Reproducibility: promote changes from dev → staging → prod safely

# Environments

At minimum, maintain:

  • Dev: experimentation and rapid iteration
  • Staging: pre-production verification with prod-like config
  • Prod: restricted access, controlled changes

# What to version and promote

Treat these as deployable artifacts:

  • connector code
  • endpoint code
  • interface/front-end bundles
  • schema migrations and ingestion pipeline changes
  • search/index configuration
  • NLP pipeline configuration

# Deployment on OpenShift

Curiosity can be deployed on OpenShift using Docker images. To ensure data persistence, it is recommended to use a StatefulSet with attached persistent storage.

  1. Prerequisites: A working OpenShift cluster and administrative access.
  2. Docker Image: Use the official image from Docker Hub. For production, always use a versioned tag (e.g., curiosityai/curiosity:12345) instead of latest.
  3. Storage: Configure a PersistentVolumeClaim (PVC) and attach it to your StatefulSet to maintain workspace state across pod restarts.
  4. Configuration: Use environment variables to configure the workspace. Sensitive information like administrator passwords should be stored in OpenShift Secrets.

# Operational checklist (baseline)

  • Persistent storage with backups
  • TLS termination (directly or via a reverse proxy)
  • Secrets in a secret manager
  • Monitoring and alerting for:
    • availability
    • ingestion failures
    • index rebuild failures
    • latency spikes

# Next steps