Skip to main content
Run the commands on this page from the install directory (./pipeshub by default). If you changed COMPOSE_PROJECT_NAME, use that instead of pipeshub-ai.

First checks

Replace 3000 with your APP_PORT if you changed it.

Install and start

You are opening PipesHub over plain HTTP from a hostname. Browsers block features PipesHub needs unless the page is on HTTPS or localhost. Put a TLS-terminating reverse proxy in front of it and set the public HTTPS URL. See Serving it over HTTPS.
Your user is not in the docker group. Either add it and log in again:
or run the installer with sudo.
The installer stops on fewer than 4 cores. Use a larger machine. See System Requirements.
slim and full want a 16 GB-class machine. On an 8 GB machine, use the eval type:
The installer waits 420 seconds. The first start of a slim image downloads the embedding model, which can take longer on a slow connection. Wait a few minutes and run the health check above. To wait longer next time, set HEALTH_WAIT_SECS.
Exit code 137 means the container was killed, usually for running out of memory. Check it:
Free memory, or move to the lighter slim type, which drops Kafka and Zookeeper: ./install.sh --reconfigure. For MongoDB, raise MONGO_CACHE_GB and MONGO_MEMORY_LIMIT together.
MongoDB 8 can crash on some newer host kernels. The installer normally detects this and fixes it. If not, set this in .env and run ./install.sh --upgrade:
Do not delete the MongoDB volume to fix this. That destroys your data and does not fix the cause.
The installer moves to the next free port and prints the one it chose. To pick one yourself, set PIPESHUB_PORT.
Cloud AI models and most connectors need outbound access; local models do not. Test it:
If /etc/docker/daemon.json contains "iptables": false, Docker is not routing container traffic. Remove that setting and restart Docker.
MCP_SCOPES is set in .env without code:read. Add it, or remove the line to use the default. See Upgrading to 1.0.
That setting cannot be changed on an existing install, because the vectors are already stored in the old layout. Set it back.

Signing in and the API

SAML and generic OAuth sign-in are not in the open-source edition. See Authentication for how those people set a password.
After 5 wrong passwords or codes in a row, the account is locked for 24 hours, and sign-in shows the ordinary “incorrect” message. See Authentication.
A rate limit was reached. Wait for the number of seconds in the Retry-After header. If everyone behind a reverse proxy hits the limit at once, set TRUST_PROXY. See Rate Limits and API Errors.
Search the app logs for it to find the cause:

Indexing

The app sizes indexing and parsing from its memory limit. A container held near its limit runs only a couple of documents at a time. Raise APP_MEMORY_LIMIT (and APP_MEMSWAP_LIMIT with it) if the machine has free memory. See Environment Variables.
Qdrant slows down once the index no longer fits in QDRANT_MEMORY_LIMIT (default 6 GB). Raise it.

Still stuck

Collect the output of the first checks above, then contact us.