Deployment

Deploy tinycrab to Docker, Railway, Fly.io, or Render.

Docker

Run tinycrab in a container:

docker run -p 8080:8080 \
  -e OPENAI_API_KEY=sk-xxx \
  ghcr.io/jt-wang/tinycrab

Docker Compose

version: '3.8'
services:
  tinycrab:
    image: ghcr.io/jt-wang/tinycrab
    ports:
      - "8080:8080"
    environment:
      - OPENAI_API_KEY=${OPENAI_API_KEY}
    volumes:
      - ./data:/app/data

Railway

Deploy to Railway using the GHCR image:

  1. Create a new project on Railway
  2. Select "Deploy from Docker Image"
  3. Use image: ghcr.io/jt-wang/tinycrab
  4. Add environment variable OPENAI_API_KEY

Fly.io

Deploy to Fly.io:

# Install flyctl
curl -L https://fly.io/install.sh | sh

# Login
fly auth login

# Launch
fly launch --image ghcr.io/jt-wang/tinycrab

# Set secrets
fly secrets set OPENAI_API_KEY=sk-xxx

Render

Deploy to Render:

  1. Create a new Web Service
  2. Select "Deploy an existing image from a registry"
  3. Use image: ghcr.io/jt-wang/tinycrab
  4. Add environment variable OPENAI_API_KEY

Communicate with Your Agent

Once deployed, communicate with your agent via HTTP:

$ curl -X POST https://your-deployment.com/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Hello"}'
# → {"response": "Hello! How can I help?",
#    "session_id": "session-a1b2c3d4"}

# Continue conversation with session_id
$ curl -X POST https://your-deployment.com/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "What did I say?", "session_id": "session-a1b2c3d4"}'