Skip to content

System Requirements

Hardware, software, and infrastructure requirements for self-hosting Quackback.

Minimum Requirements

ResourceMinimumRecommended
CPU1 core2+ cores
RAM1 GB2+ GB
Storage10 GB20+ GB
PostgreSQL18+18+

Software Requirements

PostgreSQL

Version: 18 or higher (required)

Required Extensions:

  • pgvector - Vector similarity search
  • pg_cron - Scheduled jobs (optional)

Redis or Dragonfly

Required for background job processing (BullMQ).

ComponentVersion
Redis7+
Dragonfly (alternative)1.x+
ComponentVersion
Docker Engine20.10+
Docker Composev2+

Bun (Alternative)

If running without Docker:

ComponentVersion
Bun1.3.7+

Network Requirements

Ports

PortPurposeRequired
3000Application (default)Yes
5432PostgreSQLInternal only
6379Redis/DragonflyInternal only
443HTTPS (via proxy)Production
80HTTP redirectOptional

Domains

You need:

  • A domain or subdomain (e.g., feedback.yourcompany.com)
  • SSL certificate (Let's Encrypt works great)

Outbound Connections

Quackback needs to reach:

  • Email provider (SMTP or Resend API)
  • OAuth providers (GitHub, Google, etc.)
  • Integration services (Slack, etc.)

Database Requirements

PostgreSQL Configuration

Recommended settings for production:

# Memory
shared_buffers = 256MB
work_mem = 16MB
maintenance_work_mem = 128MB
 
# Connections
max_connections = 100
 
# WAL
wal_level = replica

Storage

Estimate storage needs:

DataSize Estimate
1,000 posts~50 MB
10,000 posts~500 MB
100,000 posts~5 GB

Add headroom for:

  • Attachments (if enabled)
  • Vector embeddings (for AI features)
  • Logs and backups

Backups

Plan for regular backups to prevent data loss. Point-in-time recovery is recommended for production deployments.

  • Daily full backups
  • Point-in-time recovery (recommended)
  • Off-site backup storage

Cloud Provider Options

AWS

ServiceUse
EC2Application server
RDSManaged PostgreSQL
ElastiCacheOptional caching
ALBLoad balancing

Minimum instance: t3.small

Google Cloud

ServiceUse
Compute EngineApplication server
Cloud SQLManaged PostgreSQL
Cloud Load BalancingLoad balancing

Minimum machine: e2-small

DigitalOcean

ServiceUse
DropletApplication server
Managed DatabasePostgreSQL
Load BalancerOptional

Minimum droplet: 2GB RAM

Railway / Render / Fly.io

All support Quackback with managed databases.

VPS Providers

Budget-friendly options:

ProviderMinimum Plan
HetznerCX21 (2GB RAM)
Vultr2GB plan
LinodeNanode 2GB
DigitalOceanBasic 2GB

Security Requirements

TLS/SSL

  • Required for production
  • Use Let's Encrypt (free) or commercial cert
  • Minimum TLS 1.2

Firewall

Allow only:

  • 443 (HTTPS)
  • 80 (HTTP, redirect to HTTPS)
  • 22 (SSH, restricted IPs)

Block:

  • Direct database access
  • Application port from public

Secrets

Securely manage all secrets including SECRET_KEY, database credentials, OAuth client secrets, and integration tokens. Use environment variables or a secrets management solution.

Plan for scaling

Single Server

Suitable for:

  • Up to 10,000 users
  • Moderate traffic

Scale horizontally

For higher loads:

  • Multiple application instances
  • Load balancer
  • Shared PostgreSQL
  • Session storage (database-backed)

Scale the database

Options:

  • Vertical scaling (bigger instance)
  • Read replicas (for read-heavy loads)
  • Connection pooling (PgBouncer)

Set up monitoring

Application

  • Health check endpoint
  • Error tracking (Sentry, etc.)
  • Request latency

Database

  • Connection count
  • Query performance
  • Disk usage

Infrastructure

  • CPU utilization
  • Memory usage
  • Disk I/O
  • Network throughput

Next Steps