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.
The Community Edition quickstart takes you from nothing to a running, self-hosted Nodaro in two commands. The Docker Compose stack brings its own database, sign-in, storage and queues, so there are no cloud accounts to create, no API keys to find and nothing to configure. You need Docker 24 or later with Docker Compose v2.
Start Nodaro
Clone the repository and start the stack
git clone https://github.com/nodaroai/app.nodaro.ai.git nodaro
cd nodaro
docker compose -f docker-compose.community.yml upThe first boot downloads the prebuilt app image, about 2.4 GB, and the bundled services. It is a download, not a compile, so it does not load your CPU. Later boots take seconds.
Open the app and create your account
Open http://localhost:3000 and sign up with any email address and password. The account works at once, because a local stack sends no confirmation email.
On your first visit, the home screen adds a Welcome Demo workflow. It is a finished script, image, video, voice and final-cut run with every result already made. You can open its nodes and play the final clip before you configure anything.
Check the install on /setup
Open http://localhost:3000/setup. The page shows the live status of the database, Redis, storage, the encryption key and your provider keys, and it needs no sign-in. On a fresh stack, every card is green except the provider keys.
Add a model provider
Choose one of the three ways below. When a provider exists, click Run on the demo's Scene Image node. It uses Z-Image, the cheapest image model, and answers in seconds.
What starts
| Service | What it does | Where its data lives |
|---|---|---|
| Postgres (Supabase image) | The database. Migrations apply themselves on the first boot. | db-data volume |
| GoTrue | Sign-in with email and password. No email server is needed. | — |
| PostgREST | The data API that the editor talks to | — |
| MinIO | Media storage. Generated images, videos and audio stay on your disk. | minio-data volume |
| Redis | Job queues | redis-data volume |
| Nodaro | The app: editor, API and workers, on port 3000 | app-data volume |
The stack publishes two ports on your machine: 3000 for the app, and 9001 for the MinIO console, on the loopback interface only.
Add a model provider
Viewing the demo is free and works offline. To run nodes yourself, the install needs a model provider. Until it has one, the home screen shows a dismissible This install can't generate yet callout with a button for each option.
The three ways can run side by side, with one rule. When the install is connected to Nodaro Cloud and also holds a NODARO_API_KEY, it uses the connection and ignores the key.
No files and no restart.
- Open
/setupand complete step 1, Create your server login. The health cards need no sign-in, but saving a key does. - Find the provider tiles in the Install health section. The same tiles are in the app under Integrations › Model providers.
- Click Paste key on a tile, paste the key and save.
Each tile says what its key powers and where to get one. The key is stored encrypted in your own database and takes effect at once. If you connect to Nodaro Cloud, no tile is required: the connection covers them.
No keys to manage.
- On
/setup, in step 2, Connect a model provider, click Connect nodaro.ai. - Your browser opens the Nodaro Cloud consent screen. Sign in, or create a free account with 1,500 credits, and approve.
- You land back on your install, connected.
Image, video, speech and text models then run through your Nodaro Cloud account and are billed in credits. Read Connect to Nodaro Cloud for the details.
For infrastructure as code. Create a file named .env next to the compose file:
KIE_API_KEY=... # broadest model coverage
# or
REPLICATE_API_TOKEN=...
# or
NODARO_API_KEY=... # a personal API token from app.nodaro.ai, Settings › APIThen apply it:
docker compose -f docker-compose.community.yml up -dA key in .env wins over a key pasted on the screen. Its tile shows set (env) and cannot be edited in place.
Read Provider keys for every provider and what it powers.
You pay your providers directly. The Community Edition has no credit system, no Nodaro fees and no watermark.
Learn the editor for free
The home screen's Tutorials start with a set of guided walkthroughs, added on the first boot. Browsing them costs nothing. Their images, videos and audio load from Nodaro's CDN, so they need an internet connection. See Tutorials and templates.
Check the install from the command line
For a deeper check than /setup can show, run the contract probe from your clone. It needs Node.js.
node tools/community-smoke.mjs http://localhost:3000The probe signs up a throwaway account, creates a workflow, submits a generation, follows the job to its end state and reports which checks passed. A check that does not apply to your install, for example because you already added a provider key, is reported as skipped. Without extra flags, the probe never spends anything.
To also test a real generation, add --keyed:
node tools/community-smoke.mjs http://localhost:3000 --keyed--keyed needs KIE_API_KEY or REPLICATE_API_TOKEN on the install, in .env or pasted on /setup. It runs one generation on the cheapest model for that key: Z-Image with KIE_API_KEY, Flux 2 Klein with REPLICATE_API_TOKEN. That usually costs less than one cent at the provider. The probe then checks that the media landed in your install's own storage. A Nodaro Cloud connection or token is checked separately.
Everyday commands
| Task | Command |
|---|---|
| Start in the background | docker compose -f docker-compose.community.yml up -d |
| Follow the logs | docker compose -f docker-compose.community.yml logs -f |
| Stop the stack | docker compose -f docker-compose.community.yml down |
Apply a changed .env | docker compose -f docker-compose.community.yml up -d |
Never add -v to down unless you mean it: docker compose down -v deletes the volumes, and with them your database and media.
Before other people can reach the install
The compose defaults are made for local use, and they are public. Before you expose the stack to a network, mint fresh auth keys, set new database and storage passwords, and serve the install over HTTPS. Follow Harden the install and Reverse proxy and HTTPS.
Next steps
- Install — the full setup, with managed services, storage and secrets.
- Reverse proxy and HTTPS — serve the install on your domain.
- Updating — image tags and updates.
- Backups and restore — one command each way.
- Troubleshooting — when a card on
/setupis red.
Frequently asked questions
Related
Install
Provider keys
Connect to Nodaro Cloud
Reverse proxy and HTTPS
Troubleshooting
Last updated on
Self-hosting
Run Nodaro on your own server with Docker Compose. Compare the Community, Business and Cloud editions, and see what needs your own keys or a Cloud connection.
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.