Installation Guide
Choose an installation path, understand what gets installed, and verify the result.
A step-by-step guide to getting Gooey Server running on your own machine.
Before you invest the time: for most developers we do not recommend running or forking Gooey Server — use the API or the Python SDK instead. Install locally if you want to build a new recipe, add an unsupported AI model, run your own server cluster, or meet enterprise data requirements. See What is Gooey Server? for the full rationale.
Choose your path
Quickstart with Docker
Manual Installation
Setup time
~10 min (mostly the first build)
~45 min
Platforms
macOS, Linux, Windows
macOS, Linux
Recipe coverage
All except recipes needing playwright or mediapipe
Everything
Best for
Trying Gooey out, running it as a self-hosted service, backend work
Day-to-day development, debugging individual services
Start with Quickstart with Docker. Switch to Manual Installation when you need full recipe parity or a faster edit-run loop. The two paths share the same ports and credentials, so you can also run the backing services from Docker Compose while running the app processes natively.
What gets installed
Four app processes on top of four backing services:
gooey-gui (gooey-gui/)
Remix/React frontend. Asks the Python server to render each page as a JSON component tree and subscribes to Redis pub/sub for live updates
3000
Python API + GUI Server (server.py)
FastAPI app serving the public API and the page-render endpoints
8080
Celery workers (celeryapp/)
Run the actual recipes: pull jobs from RabbitMQ, call model providers, save results
—
Django Admin (gooeysite/)
Admin UI over the same Postgres database
8000
PostgreSQL 15
Application database
5432
Redis 8
Cache + realtime pub/sub
6379
RabbitMQ
Celery broker
5672
Vespa
Vector + full-text search (doc search / RAG)
8085
See the architecture diagram for how they connect.
Optional add-ons
Everything here is opt-in — skip it until you need the feature.
Provider API keys
Each model provider becomes usable once its key is in .env; on the Docker path the app services read the same root .env, so add keys there and restart. COMPOSIO_API_KEY enables the Composio tools selector. Bot deployments need FB_APP_ID / TWILIO_ACCOUNT_SID / SLACK_CLIENT_ID — the deploy buttons stay hidden and creation is blocked until they're set. Full list: Configuration Reference.
Functions runtime (Cloudflare Workers)
The Functions recipe executes user-supplied JavaScript in sandboxed Cloudflare Dynamic Workers via functions/executor_cf/. Run it locally with wrangler:
Then point Gooey at it in .env:
To deploy it to Cloudflare instead, see functions/executor_cf/wrangler.jsonc.
Secret scanning
Gitleaks runs pre-commit (see .pre-commit-config.yaml). Test it without committing by running pre-commit. Prefer labelling false positives with a #gitleaks:allow comment over skipping with SKIP=gitleaks git commit.
Code formatting
This project uses ruff.
Keeping your install up to date
After a git pull, three kinds of change need action:
On the Docker path the admin service applies migrations on every start, so a plain up usually covers it. On the manual path nothing is automatic — and remember the Celery worker needs a manual restart to pick up any code change.
Verifying your install
Work through this once:
Then run the test suite:
The script downloads fixture.json, checks formatting with ruff format --diff, and runs pytest. Extra arguments are passed through to pytest, e.g. ./scripts/run-tests.sh -k asr.
Troubleshooting
Still stuck? Ask in Discord.
Last updated
Was this helpful?
