Nodaro Docs
DocumentationNode ReferenceModelsAI Agents (MCP)DevelopersSelf-hostingResearch

Requirements

What a self-hosted Nodaro needs: Docker 24+ with Compose v2, a Supabase database, S3-compatible storage, ports and a provider key or a Nodaro Cloud connection.

A self-hosted Nodaro has five requirements: Docker, a database with sign-in, S3-compatible object storage, Redis, and at least one model provider. The community compose stack bundles the database, the storage and Redis, so on a single server you only need Docker and a model provider. Everything else on this page is optional or for production.

What you need

RequirementBundled in the compose stackOr bring your own
Docker 24+ and Docker Compose v2—Required. Call it as docker compose, not docker-compose.
Database and sign-inSupabase Postgres, GoTrue and PostgREST. Migrations apply on boot. Sign-up with email and password.A managed Supabase project. The free tier is enough. You need its project URL, service-role key and anon key, and you apply the migrations yourself.
Object storageMinIO, with the media on your diskAny S3-compatible store. Tested: Cloudflare R2 (recommended, no egress fees), AWS S3, MinIO and Backblaze B2.
QueuesRedis 7Your own Redis, including a cluster or Sentinel endpoint
A model provider—At least one provider key, or a Nodaro Cloud connection

Media must be readable by your users' browsers without a sign-in, because Nodaro hands public media URLs to the browser. The bundled MinIO does this through the app's own address, under /storage/. With your own bucket, see Configure object storage.

Model providers

Nodes that call an AI model need a provider. Without one, the install starts and the demo opens, but no model node can run. Add at least one of these keys, on the /setup page or in .env:

VariableWhat it gives you
KIE_API_KEYThe broadest model coverage: image, video, audio and text models
REPLICATE_API_TOKENAn alternative provider with its own catalog
ANTHROPIC_API_KEYClaude models for the text nodes
ELEVENLABS_API_KEYVoice features: text to speech, dubbing, voice changer and forced alignment
FAL_KEYOptional. Models such as Sync Lipsync v3. Without it, those models are unavailable and the rest of the app is unaffected.

Instead of keys, you can connect the install to a Nodaro Cloud account: see Connect to Nodaro Cloud. The full list of keys, including the ones used by specific nodes, is in Provider keys.

Optional

  • Node.js 22 or later, to run the API or the workers outside Docker, for development. The command-line probe and the key generator in tools/ also run with Node.js.
  • A domain name and a TLS certificate, for production. See Reverse proxy and HTTPS.

Ports

PortWhat uses itPublished by the compose file
3000The app: editor, API, media and sign-in, all on one originYes
9001The MinIO console, for troubleshootingYes, on 127.0.0.1 only
80 and 443Your reverse proxy, for HTTPSNot by Nodaro
9000The API inside the container. MCP clients must reach it directly.No. See MCP.

Redis and the database are internal to the compose network and never use a port on your machine. If 3000 or 9001 is taken, change the host side of that mapping in docker-compose.community.yml.

Disk

  • The image. The first boot downloads about 2.4 GB.
  • The volumes. db-data holds the database, minio-data the media, redis-data the queues and app-data the instance encryption key. The media volume grows with every result, because Nodaro never deletes stored media by itself. Add a lifecycle rule to your bucket if you want old media to expire. See Scaling.

Machine size

The default layout runs everything in one container, which is fine for up to about 5 active users. Rendering is the heaviest work: the render worker runs a headless Chrome and is limited by CPU, so plan for one or two render workers per machine. For more users, split the workers over several containers. See Scaling.

The app image has builds for amd64 and arm64 machines.

Windows

On Windows, run the backup and restore scripts from Git Bash, the shell that Git for Windows installs, not from PowerShell or WSL. See Backups and restore.

Frequently asked questions

Last updated on

On this page