Private Deployment - Bring Your Own Cloud (BYOC)

👋

Early Access Release

Interested in BYOC? We'll make it self-serve in the future, but for now please reach out to our team to get access: [email protected]

BYOC at a glance

Bring-Your-Own-Cloud lets you run all Freeplay services inside your own AWS, GCP, or Azure account. You keep full control over data, IAM roles, and network boundaries while Freeplay still updates and supports the software.

Why choose BYOC?

  • All prompts and responses remain inside your cloud; Freeplay never receives or stores them. – Meets strict data-residency or internal-only policies.
  • Reduced vendor-risk reviews – Auditors see a familiar cloud footprint that you govern.
  • Same product feature velocity – Freeplay’s automated control plane delivers signed updates to the Freeplay application.
  • Minimal DevOps overhead – when compared to alternative models for privately hosted software, like installing & updating Docker images and setting up & maintaining all of your own serving and database infrastructure

Architecture Overview

BYOC Deep Dive

How BYOC works

  1. Prepare your environment - create an empty cloud project or sub-account and provision a cloud managed Kubernetes cluster.
  2. Deploy the Freeplay agent – run a one-line script that installs a small Freeplay agent pod.
  3. Provision cluster – the agent uses Terraform + Helm to spin up a managed SQL database (PostgreSQL), Elasticsearch, object storage, NATS, and the Freeplay web application.
  4. Stay current – the agent polls Freeplay’s control plane for releases and applies rolling upgrades.
# Example quick-start (AWS)
./freeplay-up.sh --license ./freeplay.lic --deployment-name freeplay-prod

Prerequisites

ItemRequirement
Cloud projectEmpty AWS account / GCP project / Azure subscription
Kubernetes1.27+ (EKS, GKE, AKS)
DatabaseRDS / Cloud SQL: db.t3.medium (2 vCPU, 4 GB) or larger
Object storageS3 / GCS / Blob Storage bucket (any class)
IAMTemporary admin role for the installer → least-privilege roles generated afterward
NetworkingPublic or private subnets with NAT; optional VPC peering or Private Link
Outbound egressupdates.freeplay.ai, Datadog, Mixpanel (HTTPS only, see domains below)

Security & compliance

  • Data residency – all sensitive customer data including prompts, responses, and evaluations stay in your cloud account. Optional ability to share support bundles for troubleshooting scenarios.
  • Secrets – stored in your cloud KMS‐backed secret manager; never transmitted to Freeplay.
  • Updates – releases are signed and verified before install; only metadata (version, health ping) is sent to the control plane.

Costs

  • Freeplay subscription – BYOC is available only for Enterprise-tier contracts. Please contact Sales for more info about access.
  • Your cloud – you pay for all nodes, database, Elasticsearch, storage, and egress. Typical mid-sized install runs ≈$1.2k-$2k/mo in AWS us-east-1.

BYOC Outbound-Egress Matrix

# Destination (FQDN / IP range)Port / ProtocolPurposeData TransmittedRequired?*How to Disable / Restrict
1updates.freeplay.ai (Google Artifact Registry)443 / HTTPSAgent polls for signed application & infra releasesAgent ID, current version, signed artifactsYesN/A
2*.datadoghq.com (regional endpoints)443 / HTTPSMetrics / traces for 24×7 ops SLAHealth metrics, cluster stats, scrubbed logs (no content)YesN/A
3*.mixpanel.com443 / HTTPSProduct-usage analytics (UX insights)Anonymous instance ID, UI events (no PII or prompt data)Noanalytics.enabled=false in Helm values
4LLM provider endpoints

(e.g. api.openai.com, bedrock-runtime.*, *.anthropic.com, Azure OpenAI private URL)
443 / HTTPSInference calls initiated by Freeplay applicationPrompts, context, parameters, model responsesConditional
(Yes if you use external models)
Use VPC-endpoints / private links where the provider offers them

Rows 1–2 are always required for a supported install. Row 4 is required only when your workloads invoke external hosted models; BYOC also supports running local/onsite models if you need zero data egress for LLM traffic.

Key Points

  • You decide which LLM providers and regions to enable in the Freeplay UI or Helm values.
  • All calls use HTTPS (TLS 1.2+).
  • Freeplay's log policy prevents user content from landing in Datadog.
  • If you need a completely offline install, talk to us. An artifact-mirror and on-prem observability stack are on the roadmap.


FAQ

QuestionAnswer
Can we air-gap entirely?Not yet. The agent needs periodic egress for updates and license checks.
Is bring-your-own-KMS supported?Yes, point the Helm chart at your KMS
Can I scale horizontally?The Helm values file exposes replicas and resources; autoscale works like any K8s app.
Private-only access?Enable VPC peering or Private Link and restrict the load balancer to internal traffic.
Is the site reachable from the public Internet?By default yes, behind an ALB/ELB with HTTPS. You can lock it to specific CIDRs or internal-only mode.
What persistent storage is part of this deployment?• Managed Cloud SQL / RDS / Azure SQL Database (PostgreSQL)
• S3 / GCS / Blob storage for multi-modal artifacts
• Block storage (EBS / PD / Disk) for Elastic search indices and NATS
I’ve heard Kubernetes can be unreliable with persistent volumes. Does that put my data at risk?No. BYOC keeps the source-of-truth in a managed database service such as Amazon RDS, Cloud SQL, or Azure PostgreSQL that runs outside Kubernetes. Everything stored on in-cluster volumes (search indices, NATS JetStream, temporary files) can be rebuilt from that database. If a node or the whole cluster is lost, you simply spin up new nodes, redeploy the chart, and point it at the same database. The application comes back with no data loss.
Can I connect BYOC to my existing Kubernetes cluster, Elasticsearch stack, or shared database?Not today. BYOC runs in an isolated project or account so Freeplay can manage scaling, upgrades, and support without impacting your other workloads. This isolation also lets us guarantee performance, security boundaries, and fast root-cause analysis.