Full Setup
Don't want to manage infrastructure?
Try managed hosting — $5/mo, no setup required.
Run the complete Crow platform — gateway, MinIO storage, blog, and dashboard — with a single Docker Compose command.
What is this?
The full setup profile starts all Crow services together: the MCP gateway, MinIO for file storage, and the dashboard. This is the recommended way to run Crow if you want every feature available.
Why would I want this?
- Everything at once — One command to start the full platform
- File storage included — MinIO runs alongside the gateway, no separate setup needed
- Blog ready — Start publishing immediately after setup
- Dashboard access — Visual management from your browser
Prerequisites
- Docker and Docker Compose installed
- Git (to clone the repository)
- A machine with at least 1 GB of RAM
Step 1: Clone and Configure
git clone https://github.com/kh0pper/crow.git
cd crow
cp .env.example .envStep 2: Edit Environment Variables
Open .env and set the required values:
# MinIO (file storage)
MINIO_ENDPOINT=minio # Use "minio" for Docker, "localhost" for local
MINIO_PORT=9000
MINIO_ROOT_USER=crowadmin
MINIO_ROOT_PASSWORD=change-this-to-a-secure-password
MINIO_USE_SSL=false
# Storage quota (in MB)
STORAGE_QUOTA_MB=1024When running inside Docker Compose, set MINIO_ENDPOINT=minio (the Docker service name). For local (non-Docker) setups, use MINIO_ENDPOINT=localhost instead. Blog settings are managed via the crow_blog_settings MCP tool or dashboard — no env vars needed.
Step 3: Start Everything
docker compose --profile full up --buildThis starts:
- Gateway on port
3001— MCP server, blog, and API - MinIO on port
9000(API) and9001(console) — file storage - Dashboard at
/dashboardon the gateway
On first run, Docker downloads images and builds the gateway. Subsequent starts are faster.
Step 4: Initialize the Database
In a separate terminal:
docker compose exec gateway npm run init-dbThis creates the SQLite database with all required tables.
Step 5: Access Your Services
| Service | URL |
|---|---|
| Gateway health check | http://localhost:3001/health |
| Dashboard | http://localhost:3001/dashboard |
| Blog | http://localhost:3001/blog |
| MinIO Console | http://localhost:9001 |
The MinIO console lets you browse stored files directly. Log in with your MINIO_ROOT_USER and MINIO_ROOT_PASSWORD.
Step 6: Generate MCP Config
To use the storage server with Claude or other AI platforms:
npm run mcp-configThis regenerates .mcp.json with the storage server included (only if MinIO env vars are set).
Running in the Background
To keep services running after you close the terminal:
docker compose --profile full up --build -dView logs:
docker compose logs -f gateway
docker compose logs -f minioStop everything:
docker compose --profile full downPersisted Data
Data is stored in Docker volumes:
- crow-data — SQLite database, identity files
- minio-data — All uploaded files
These persist across container restarts. To fully reset:
docker compose --profile full down -vThis deletes all data. Use with caution.
Adding Tailscale
For secure remote access, install Tailscale on the host machine (not inside Docker). See the Tailscale Setup guide.
Dashboard Password
The first time you visit /dashboard, you'll be prompted to set a password. You can also set it from the /setup page or by asking your AI: "Set my dashboard password."
Connect Your AI
Visit http://localhost:3001/setup to see integration status and endpoint URLs.
Claude · ChatGPT · All platforms
Try it out — after connecting your AI platform, say:
"Remember that today is my first day using Crow" "What do you remember?"
Next Steps
- Storage guide — Learn how to upload and manage files
- Blog guide — Start writing and publishing posts
- Dashboard guide — Explore the visual control panel