Deployment

Bosca is designed to be cloud-native and deployable in various environments, from local development machines to large-scale Kubernetes clusters.

Deployment

Bosca is designed to be cloud-native and deployable in various environments, from local development machines to large-scale Kubernetes clusters.

Docker Compose

For development, testing, and small deployments, we provide a docker-compose.yaml file that orchestrates all necessary dependencies.

To start the infrastructure:

docker compose up -d

This commands spins up the following services:

  • Data Stores: PostgreSQL (Main & Warehouse)
  • Search: Meilisearch
  • Cache / PubSub / Job Queue: Redis or NATS
  • Storage: S3Proxy (simulating AWS S3)
  • Utilities: Text Extractor, Jaeger, etc.

Once the infrastructure is up, you can run the Bosca application services (Server, Analytics, etc.) as standalone processes or containerized services.

Production Guidelines

For production environments, we recommend a container-orchestrated setup (like Kubernetes).

Scalability

  • Stateless Services: Bosca Server and Analytics Collector are stateless. They can be scaled horizontally behind a load balancer.
  • Stateful Infrastructure: Databases, Search Engines, and Message Queues should be managed as stateful sets or improved using managed cloud services (e.g., AWS RDS, Amazon SQS/SNS, ElasticSearch).

Configuration

Services are configured primarily via Environment Variables, making them 12-factor app compliant.

Key configurations include:

  • POSTGRES_USER / POSTGRES_PASSWORD: Database credentials.
  • MEILI_MASTER_KEY: Search engine security key.
  • S3PROXY_IDENTITY: Object storage access key.