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
| Requirement | Bundled in the compose stack | Or bring your own |
|---|---|---|
| Docker 24+ and Docker Compose v2 | — | Required. Call it as docker compose, not docker-compose. |
| Database and sign-in | Supabase 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 storage | MinIO, with the media on your disk | Any S3-compatible store. Tested: Cloudflare R2 (recommended, no egress fees), AWS S3, MinIO and Backblaze B2. |
| Queues | Redis 7 | Your 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:
| Variable | What it gives you |
|---|---|
KIE_API_KEY | The broadest model coverage: image, video, audio and text models |
REPLICATE_API_TOKEN | An alternative provider with its own catalog |
ANTHROPIC_API_KEY | Claude models for the text nodes |
ELEVENLABS_API_KEY | Voice features: text to speech, dubbing, voice changer and forced alignment |
FAL_KEY | Optional. 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
| Port | What uses it | Published by the compose file |
|---|---|---|
3000 | The app: editor, API, media and sign-in, all on one origin | Yes |
9001 | The MinIO console, for troubleshooting | Yes, on 127.0.0.1 only |
80 and 443 | Your reverse proxy, for HTTPS | Not by Nodaro |
9000 | The 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-dataholds the database,minio-datathe media,redis-datathe queues andapp-datathe 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
Related
Quickstart
Install
Provider keys
Database
Scaling
Last updated on
Quickstart
Start a self-hosted Nodaro Community Edition with two commands, check it on the /setup page, then add a provider key or a Nodaro Cloud connection to generate.
Install
Install self-hosted Nodaro step by step: clone the repository, configure .env, secrets, migrations and object storage, start the stack, sign in and harden it.