mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-04-25 00:16:29 +02:00
5.2 KiB
5.2 KiB
RowBoat Monorepo
This guide will help you set up and run the RowBoat applications locally using Docker.
Prerequisites
Before running RowBoat, ensure you have:
-
Docker Desktop
-
OpenAI API Key
- Obtain from your OpenAI account.
-
MongoDB
- Option 1: Use an existing MongoDB deployment with your connection string.
- Option 2: Install MongoDB locally:
brew tap mongodb/brew brew install mongodb-community@8.0 brew services start mongodb-community@8.0
-
Auth0 Account and Application Setup
- Create an Auth0 Account: Sign up at Auth0.
- Create a New Application: Choose "Regular Web Application", select "Next.js" as the application type, and name it "RowBoat".
- Configure Application:
- Allowed Callback URLs: In the Auth0 Dashboard, go to your "RowBoat" application settings and set
http://localhost:3000/api/auth/callbackas an Allowed Callback URL.
- Allowed Callback URLs: In the Auth0 Dashboard, go to your "RowBoat" application settings and set
- Get Credentials: Collect the following from your Auth0 application settings:
- Domain: Copy your Auth0 domain (ensure you append
https://to the Domain that the Auth0 dashboard shows you) - Client ID: Your application's unique identifier
- Client Secret: Your application's secret key
- Domain: Copy your Auth0 domain (ensure you append
- Generate secret: Generate a session encryption secret in your terminal and note the output for later:
openssl rand -hex 32
Local Development Setup
-
Clone the Repository
git clone git@github.com:rowboatlabs/rowboat.git cd rowboat git checkout dev -
Environment Configuration
-
Copy the
.env.examplefile and rename it to.env:cp .env.example .env -
Update your
.envfile with the following configurations:# OpenAI Configuration OPENAI_API_KEY=your-openai-api-key # Auth0 Configuration AUTH0_SECRET=your-generated-secret # Generated using openssl command AUTH0_BASE_URL=http://localhost:3000 # Your application's base URL AUTH0_ISSUER_BASE_URL=https://example.auth0.com # Your Auth0 domain (ensure it is prefixed with https://) AUTH0_CLIENT_ID=your-client-id AUTH0_CLIENT_SECRET=your-client-secret # MongoDB Configuration (choose one based on your setup) # For local MongoDB MONGODB_CONNECTION_STRING=mongodb://host.docker.internal:27017/rowboat # or, for remote MongoDB MONGODB_CONNECTION_STRING=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/rowboat
-
-
Start the App
docker-compose up --build -
Access the App
- Visit http://localhost:3000.
-
Interact with RowBoat
There are two ways to interact with RowBoat:
Option 1: Python SDK
For Python applications, we provide an official SDK for easier integration:
pip install rowboatfrom rowboat import Client client = Client( host="http://localhost:3000", project_id="<PROJECT_ID>", api_key="<API_KEY>" # Generate this from /projects/<PROJECT_ID>/config ) # Simple chat interaction messages = [{"role": "user", "content": "Tell me the weather in London"}] response_messages, state = client.chat(messages=messages)For more details, see the Python SDK documentation.
Option 2: HTTP API
You can use the API directly at http://localhost:3000/api/v1/
- Project ID is available in the URL of the project page
- API Key can be generated from the project config page at
/projects/<PROJECT_ID>/config
curl --location 'http://localhost:3000/api/v1/<PROJECT_ID>/chat' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <API_KEY>' \ --data '{ "messages": [ { "role": "user", "content": "tell me the weather in london in metric units" } ] }'which gives:
{ "messages": [ { "role": "assistant", "tool_calls": [ { "function": { "arguments": "{\"location\":\"London\",\"units\":\"metric\"}", "name": "weather_lookup_tool" }, "id": "call_r6XKuVxmGRogofkyFZIacdL0", "type": "function" } ], "agenticSender": "Example Agent", "agenticResponseType": "internal" } ], "state": { // .. state data } }
Troubleshooting
-
MongoDB Connection Issues
- Ensure local MongoDB service is running:
brew services list - Verify connection string and network connectivity.
- Ensure local MongoDB service is running:
-
Container Start-up Issues
- Remove all containers:
docker-compose down - Rebuild:
docker-compose up --build
- Remove all containers:
-
Sign-in Button Not Appearing
- If the sign-in button does not appear in the UI, ensure the Auth0 domain in your
.envfile is prefixed withhttps://.
- If the sign-in button does not appear in the UI, ensure the Auth0 domain in your