Software Requirements
Runtime Environment
Node.js 20+ (Required)
Node.js 20+ (Required)
Databuddy requires Node.js version 20 or higher.Installation:
- macOS/Linux: Use nvm
- Windows: Download from nodejs.org
- Docker: Node.js is included in container images
Bun 1.3.4+ (Recommended)
Bun 1.3.4+ (Recommended)
Databuddy is optimized for Bun, which provides faster package management and runtime performance.Installation:While Node.js is required, using Bun as the package manager is highly recommended for development and production deployments.
Database Systems
PostgreSQL 17
Purpose: User data, configuration, authenticationMinimum Version: PostgreSQL 15Recommended: PostgreSQL 17Stores relational data including users, organizations, websites, API keys, and application configuration.
ClickHouse 25.5+
Purpose: Analytics events and metricsMinimum Version: ClickHouse 24.0Recommended: ClickHouse 25.5.1 AlpineStores high-volume time-series analytics data, web vitals, errors, and custom events.
- Caching layer for query results
- Session storage
- Rate limiting
- Background job queues
Optional Components
Redpanda (Event Streaming)
Redpanda (Event Streaming)
For high-scale deployments, Databuddy can use Redpanda for event ingestion:
- Version: 25.2.9+
- Purpose: Buffer analytics events before ClickHouse ingestion
- Recommended for: 10M+ events/day
Docker & Docker Compose
Docker & Docker Compose
Docker simplifies deployment significantly:
- Docker Engine 20.10+
- Docker Compose v2.0+
Hardware Requirements
Hardware needs vary based on your analytics volume. Here are recommended specifications:Small Deployment
< 1 million events/dayMedium Deployment
1-10 million events/dayLarge Deployment
10-100 million events/dayFor very large deployments (100M+ events/day), consider distributed ClickHouse clusters. Contact our team for architecture guidance.
Storage Considerations
ClickHouse Storage Estimates:- Average event size: ~1-2 KB compressed
- 1M events/day = ~1.5 GB/day = ~45 GB/month
- 10M events/day = ~15 GB/day = ~450 GB/month
Network Requirements
Ports
Ensure these ports are accessible:| Service | Port | Protocol | Purpose |
|---|---|---|---|
| PostgreSQL | 5432 | TCP | Database connections |
| ClickHouse HTTP | 8123 | TCP | HTTP interface |
| ClickHouse Native | 9000 | TCP | Native protocol |
| Redis | 6379 | TCP | Cache connections |
| API Server | 3001 | TCP | API endpoints |
| Dashboard | 3000 | TCP | Web interface |
Firewall Rules
Allow application servers to databases
Your API servers need access to PostgreSQL (5432), ClickHouse (8123, 9000), and Redis (6379).
Expose API and Dashboard publicly
Make ports 3000 (dashboard) and 3001 (API) accessible from the internet or your internal network.
Operating System
Databuddy runs on any system supporting Node.js and Docker:- Linux: Ubuntu 22.04+, Debian 12+, RHEL 9+, Alpine Linux (recommended for containers)
- macOS: macOS 12+ for development
- Windows: Windows 10+ with WSL2 for development
Cloud Provider Recommendations
Databuddy works on any cloud provider or bare metal. Popular choices:AWS
- EC2 for compute
- RDS for PostgreSQL
- ECS/EKS for containers
Google Cloud
- Compute Engine
- Cloud SQL
- GKE for Kubernetes
DigitalOcean
- Droplets
- Managed PostgreSQL
- App Platform
- Hetzner Cloud
- Linode/Akamai Cloud
- OVHcloud
Development Requirements
If you’re contributing to Databuddy or running from source:- Git for version control
- Turborepo (installed via Bun)
- TypeScript 5.9+
- Drizzle ORM for database migrations
Next Steps
Docker Setup
Ready to deploy? Continue with our Docker setup guide.