update readme for local docker setup

This commit is contained in:
ramnique 2025-01-14 15:17:24 +05:30
parent 695c54dbb4
commit 04e0cfdd07
2 changed files with 67 additions and 15 deletions

View file

@ -1,33 +1,85 @@
# RowBoat monorepo
# RowBoat Monorepo
This is the monorepo for RowBoat.
This guide will help you set up and run the RowBoat applications locally using Docker.
## Setup and Run
## Prerequisites
To set up and run RowBoat, follow these steps:
Before running RowBoat, ensure you have:
1. **Create a `.env` File:**
1. **Docker Desktop**
- [Download Docker Desktop](https://www.docker.com/products/docker-desktop) and ensure Docker Compose is included.
First, create a `.env` file in the root directory of the project. You can use the `.env.example` file as a template. Copy the contents of `.env.example` and replace the placeholder values with your actual configuration values.
2. **OpenAI API Key**
- Obtain from your OpenAI account.
3. **MongoDB**
- **Option 1**: Use an existing MongoDB deployment with your connection string.
- **Option 2**: Install MongoDB locally:
```bash
brew tap mongodb/brew
brew install mongodb-community@8.0
brew services start mongodb-community@8.0
```
4. **Auth0 Account and Application Setup**
- **Create an Auth0 Account**: Sign up at [Auth0](https://auth0.com).
- **Create a New Application**: Choose "Regular Web Applications" 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/callback` as an Allowed Callback URL.
- **Get Credentials**: Note down Domain, Client ID, and Client Secret.
- **Secure Application**: Generate a session encryption secret:
```bash
openssl rand -hex 32
```
## Local Development Setup
1. **Clone the Repository**
```bash
cp .env.example .env
git clone git@github.com:rowboatlabs/rowboat.git
cd rowboat
git checkout dev
```
Edit the `.env` file to include your specific API keys and secrets.
2. **Environment Configuration**
- Copy the `.env.example` file and rename it to `.env`:
```bash
cp .env.example .env
```
- Update your `.env` file with the following configurations:
2. **Build and Run Service:**
```ini
# OpenAI Configuration
OPENAI_API_KEY=your-openai-api-key
Use Docker Compose to build and run the RowBoat service:
# 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
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
```
3. **Start the App**
```bash
docker-compose up --build
```
This command will build the Docker image and start the service.
4. **Access the App**
- Visit [http://localhost:3000](http://localhost:3000).
3. **Access the Application:**
## Troubleshooting
Once the service is running, you can access RowBoat via:
1. **MongoDB Connection Issues**
- Ensure local MongoDB service is running: `brew services list`
- Verify connection string and network connectivity.
- `http://localhost:3000`
2. **Container Start-up Issues**
- Remove all containers: `docker-compose down`
- Rebuild: `docker-compose up --build`