For IT & Security Teams

Technical & Security Overview

What BafGo is built on, how video data is stored and deleted, and what happens with authentication. Written for IT sign-off — no marketing fluff.

Infrastructure & Stack

Runtime
Node.js 18 (LTS) on Alpine Linux
Containerised via Docker; orchestrated with Docker Compose in the current production deployment.
API framework
Express 4
All routes are plain REST JSON. No GraphQL.
Database
PostgreSQL 15
Runs in a separate container with a named volume for persistence.
Video / file storage
MinIO (S3-compatible)
Self-hosted object store in the same deployment. No third-party CDN or cloud storage bucket.
Cache
Redis 7 (Alpine)
Used for session/rate-limit coordination.
Frontend
Plain HTML + vanilla JS
No React, no Next.js, no build pipeline. Served as static files by nginx.
Reverse proxy
nginx
Proxies /api/* to Express (port 3001); serves static files directly.
Payments
Stripe
No card data touches our servers. All billing is handled by Stripe's hosted elements and webhooks.

Authentication & Tokens

Video Storage & Access

Data Retention

Transport Security & HTTP Headers

  • Strict-Transport-Security (HSTS, 1-year, includeSubDomains) is set in production.
  • X-Frame-Options: DENY — page cannot be embedded in an iframe.
  • X-Content-Type-Options: nosniff — prevents MIME-type sniffing.
  • Content-Security-Policy is set on all responses. frame-ancestors 'none' is enforced.
  • Rate limiting is applied globally to all API routes via express-rate-limit. Specific thresholds are available on request to IT teams.
  • JSON body size is capped at 10 MB for API requests.
  • CORS is restricted to CORS_ORIGIN env var in production. The server refuses to start without it.
  • nginx is configured to accept video uploads up to 600 MB with extended proxy timeouts.

Third-Party Services & Data Sharing

Deployment & Operations

Accuracy note: This page reflects the state of the codebase as of May 2026. We update it when the architecture changes materially. If you spot a discrepancy or have a specific technical question, email support@bafgo.com — we will respond directly.

Questions for IT?

We'll answer specific questions directly — no sales call required.

Email us directly Back to BafGo