Skip to content

Self-host - System requirements

CPU, RAM, disk, ports, and required services for running OpenQuok as a self-hosted social scheduler with Docker Compose.

3 min read

Connect your agent today

Draft from chat, review in your calendar, and publish only what you approve.

Start for $0

Overview

Use these floors when you self-host OpenQuok with the Compose stack under infra/self-host/. Contributor machines that only run pnpm + local Supabase can be lighter; image builds for the full stack need more RAM.

Hardware floors

ResourceMinimumNotes
CPU2 coresPrefer 4+ when building all images on the same host
RAM8 GB16 GB recommended for first docker compose … —build (web + backend TypeScript builds)
Disk20 GB freeImages, Redis AOF, and the local uploads volume

Required software

  • Docker Engine (or Docker Desktop) with **Compose v2** (docker compose)
  • Git, to clone this monorepo (images build from the repo root context; app images use Node 24 on bookworm-slim)
  • A Supabase project — hosted cloud or supabase start on the same host. App data and Auth go through Supabase; Compose does not bundle the Supabase multi-container stack in v1.

Network and outbound access

  • Browser and operators need reachability to the web and API ports you publish (defaults below).
  • The API and workers need outbound HTTPS to Supabase and to any social provider APIs you enable.
  • Optional object storage (R2) and email providers need outbound access when configured.

Default ports (self-host Compose)

ServiceHost port (default)ContainerPurpose
Web UI40073000SvelteKit Node server — open http://localhost:4007 after Compose is up
API30003000Express backend — http://localhost:3000
Worker health (integration refresh)30913091Optional health probe
Redisnot published6379Cache + BullMQ (debug publish optional)
CLI auth server (profile cli)31113111Device-flow OAuth helper
CLI Postgres (profile cli)not published5432Auth-server state

Override host maps with OPENQUOK_WEB_HOST_PORT, OPENQUOK_API_HOST_PORT, and related keys in infra/self-host/.env.example.

What Compose provides vs what you provide

In ComposeOperator-provided
RedisSupabase project (URL + keys); apply OpenQuok migrations
Backend API, web, three BullMQ workersSocial OAuth app credentials as needed
Local uploads volumeOptional object storage (default: local disk)
Optional CLI Postgres + agent server (—profile cli)Reverse proxy / TLS if you expose beyond localhost
Search documentation
Find a docs page
Discord Support