Project needs two component:
- The backend — runs in Docker on your machine, nothing installed globally.
- The browser extension — loaded "unpacked" (unzipped) into Chrome/Edge, since it isn't published to a web store yet.
Both need to be running for the extension to actually work.
- Docker Desktop installed and running (Windows/Mac/Linux all fine — on Windows, enable the WSL2 backend if prompted during install).
Copy the conten following in file named: docker-compose.yml. Put it in an empty folder — that's the only file you need, no other project files or source code.
services:
qdrant:
image: qdrant/qdrant:latest
ports:
- "6333:6333"
- "6334:6334"
volumes:
- ./data/qdrant_storage:/qdrant/storage
app:
image: satyamgupta0/manas-backend:latest
ports:
- "8000:8000"
environment:
QDRANT_HOST: qdrant
QDRANT_PORT: 6333
QDRANT_GRPC_PORT: 6334
MODELS_CACHE_DIR: /app/models
DATABASE_URL: sqlite+aiosqlite:////app/db/manas.db
EXPOSE_DOCS: "false"
volumes:
- ./data/models_cache:/app/models
- ./data/manas_db:/app/db
depends_on:
- qdrant
Open a terminal in that folder and run:
docker compose -f docker-compose.yml up -dFirst run downloads the backend image and the vector database image (~2GB total) and pulls the embedding models on first boot — give it a minute or two. Subsequent starts are fast.
curl http://localhost:8000/healthExpect: {"status":"ok"}
If that doesn't respond yet, check logs:
docker compose -f docker-compose.yml logs -f appWait for Application startup complete. in the log output.
docker compose -f docker-compose.yml down # stop (keeps your data)
docker compose -f docker-compose.yml up -d # start again later
docker compose -f docker-compose.yml down -v # stop AND wipe all data (fresh start)Your notes, annotations, and indexed sections persist across restarts (stored in Docker volumes) unless you use the -v flag above.
You'll be handed a .zip of the extension. Chrome/Edge can't load a zip directly — extract it first.
- Extract the zip to a folder you'll keep around (don't delete it after loading — the browser reads directly from this folder every time it starts).
- Open
chrome://extensions(oredge://extensionsin Edge). - Turn on Developer mode (toggle, usually top-right).
- Click Load unpacked.
- Select the folder you extracted in step 1 (the one containing
manifest.json, not a subfolder or the zip itself). - The extension icon should now appear in your browser toolbar.
The extension expects the backend at http://localhost:8000 by default — same address the Docker container publishes to, so no configuration should be needed as long as the container from Part 1 is running. Open the extension, try any action that hits the backend (e.g. viewing recent activity, searching, adding a note) and confirm it responds instead of showing a connection error.
If you're handed an updated zip:
- Extract it over (or alongside) the old folder.
- Go back to
chrome://extensions, find the extension, click the reload icon (circular arrow) on its card — no need to remove and re-add it, unless you moved the folder to a new location, in which case click Remove first, then Load unpacked again from the new folder.
| Symptom | Likely cause |
|---|---|
curl http://localhost:8000/health connection refused |
Container not up yet, or Docker Desktop isn't running — check docker compose -f docker-compose.testers.yml ps |
| Extension shows a network/connection error | Backend container isn't running, or something else is using port 8000 — stop that other process or check docker compose logs app for errors |
Load unpacked button is greyed out / missing |
Developer mode toggle isn't on |
| Extension loaded but nothing shows up | Selected the zip's parent folder instead of the folder containing manifest.json — re-check step 5 |
| Data disappeared after a restart | You (or a script) ran down -v, which wipes the Docker volumes on purpose |
If none of these match what you're seeing, note the exact error message/screenshot and send it back — that's more useful than a description.