Home βΊ Quick Start
β‘ Quick Start
Bring up the full Dryad stack from zero. Follow the order β it matters.
β Safety FirstConfirm you are on madhatter before running anything. Run
hostname β it must return madhatter.Step 1 β Verify prerequisites
hostname # must be: madhatter
df -h /mnt/ai_engine # AI engine drive space
free -h # RAM headroom (16 GB ceiling)
docker info | grep "Docker Root Dir" # must be: /mnt/ai_engine/docker
Step 2 β Start the stack (ordered)
Order is mandatorydryad-core β dryad-brain β dryad-mcp β dryad-apps β dryad-portal β dryad-tutorials
~/bin/dryad-up.sh # core β brain β mcp β apps
cd ~/GitHub/dryad-portal && docker compose up -d # portal (3080)
cd ~/dryad-tutorials && docker compose up -d # learn portal (80βCaddy)
Step 3 β Start systemd services
systemctl status ollama # GPU inference (port 11434)
systemctl --user status opencode # OpenCode v1.2.24 (port 4096)
Step 4 β Verify everything
~/bin/dryad-status
# LiteLLM (auth required since v6.1)
curl http://localhost:4000/v1/models -H "Authorization: Bearer sk-dryad-master" | jq ".data[].id"
# Portal and learn
curl http://localhost:3080/health
curl http://localhost:8888/ # dryad-tutorials local port
# Redis and Qdrant
docker exec dryad-redis redis-cli -a Bongo1102n@t3 ping # PONG
curl http://localhost:6333/healthz # {"title":"qdrant - 200"}
Access URLs (Tailnet only)
| Service | URL |
|---|---|
| Learn Portal (this site) | https://learn.madhatter.modlin.cloud |
| Dryad Portal | http://portal.madhatter.modlin.cloud |
| Open WebUI (chat) | https://chat.madhatter.modlin.cloud |
| OpenCode IDE | https://opencode.madhatter.modlin.cloud |
| OpenWork | https://openwork.madhatter.modlin.cloud |
| Portainer | https://portainer.madhatter.modlin.cloud |
| Netdata | https://netdata.madhatter.modlin.cloud |
| LiteLLM UI | https://litellm.madhatter.modlin.cloud |