-
Notifications
You must be signed in to change notification settings - Fork 43
Enhance Docker Compose setup and documentation #332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
61a1846
d5107ad
a1cae1b
8a7e5ed
21fa0db
5dde9a8
a18f26d
c87bf05
924f35b
13c1f2e
a2f7a5d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -94,11 +94,32 @@ This allows developers to deploy production agents that can scale beautifully to | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Quick Start with Docker Compose | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Get Exosphere running locally in under 2 minutes: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Option 1: With cloud MongoDB (recommended) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "MONGO_URI=your-mongodb-connection-string" > .env | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose up -d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Option 2: With local MongoDB (development) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose-with-mongodb.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose-with-mongodb.yml up -d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Access your services: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Dashboard**: http://localhost:3000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **API**: http://localhost:8000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > **📝 Note**: This configuration is for **development and testing only**. For production deployments, environment variable customization, and advanced configuration options, please read the complete **[Docker Compose Setup Guide](https://docs.exosphere.host/docker-compose-setup)**. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
coderabbitai[bot] marked this conversation as resolved.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+97
to
+124
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Great Quick Start; tweak .env phrasing and list spacing. Compose loads .env from the working directory (where you run docker compose), not strictly “the same directory as your compose file.” Also add a blank line before the bullet list to satisfy MD032. **Environment Configuration:**
-- Docker Compose automatically loads `.env` files from the working directory
-- Create your `.env` file in the same directory as your docker-compose file
+
+- Docker Compose automatically loads a `.env` file from the working directory (where you run `docker compose`)
+- Create your `.env` file in the same directory where you execute `docker compose`📝 Committable suggestion
Suggested change
🧰 Tools🪛 LanguageTool[grammar] ~97-~97: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~99-~99: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~112-~112: There might be a mistake here. (QB_NEW_EN) [grammar] ~113-~113: There might be a mistake here. (QB_NEW_EN_OTHER) [grammar] ~114-~114: There might be a mistake here. (QB_NEW_EN_OTHER) [typographical] ~116-~116: To join two clauses or set off examples, consider using an em dash. (QB_NEW_EN_DASH_RULE_EM) [grammar] ~116-~116: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~118-~118: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~120-~120: There might be a mistake here. (QB_NEW_EN) [grammar] ~121-~121: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~123-~123: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) 🪛 markdownlint-cli2 (0.17.2)113-113: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Documentation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| For comprehensive documentation and guides, check out: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **[Docker Compose Setup](https://docs.exosphere.host/docker-compose-setup)**: Complete guide for running Exosphere locally with Docker Compose. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
coderabbitai[bot] marked this conversation as resolved.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **[Getting Started Guide](https://docs.exosphere.host/getting-started)** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **[State Manager Setup Guide](https://docs.exosphere.host/exosphere/state-manager-setup)**: Step-by-step instructions for running the Exosphere backend locally or in production. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **[Dashboard Guide](https://docs.exosphere.host/exosphere/dashboard)**: Learn how to set up and use the Exosphere web dashboard. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,266 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Exosphere Docker Compose Quick Start | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This guide helps you quickly start the Exosphere project locally using Docker Compose with a single command. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 📥 Download Docker Compose Files | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| First, download the Docker Compose files from the GitHub repository: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Option 1: Download Both Files | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Download docker-compose file for cloud MongoDB (recommended) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Download docker-compose file with local MongoDB included | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose-with-mongodb.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Pin raw downloads to a tag or commit for reproducibility Fetching from main can break unexpectedly. -curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose.yml
+curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/<tag-or-commit>/docker-compose/docker-compose.yml
-curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose-with-mongodb.yml
+curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/<tag-or-commit>/docker-compose/docker-compose-with-mongodb.ymlMirror for wget. Replace with the release tag used in the README and root docs. Also applies to: 23-27 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Option 2: Using wget | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Download docker-compose file for cloud MongoDB (recommended) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| wget https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Download docker-compose file with local MongoDB included | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| wget https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose-with-mongodb.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🚀 Quick Start | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| We **recommend using a cloud MongoDB managed service** (MongoDB Atlas, AWS DocumentDB, etc.) for better performance, reliability, and security. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Option 1: With Cloud MongoDB (Recommended) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1. Set up a cloud MongoDB instance (MongoDB Atlas, AWS DocumentDB, etc.) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2. Create a `.env` file with your MongoDB connection: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MONGO_URI=mongodb+srv://username:password@your-cluster.mongodb.net/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Add quoting guidance for MONGO_URI credentials Passwords with special characters will break unquoted .env assignments. - MONGO_URI=mongodb+srv://username:password@your-cluster.mongodb.net/
+ # Quote if your password contains special characters
+ MONGO_URI="mongodb+srv://username:password@your-cluster.mongodb.net/"Also consider documenting inclusion of a specific database and options, e.g., 📝 Committable suggestion
Suggested change
🧰 Tools🪛 LanguageTool[grammar] ~36-~36: There might be a mistake here. (QB_NEW_EN_OTHER) [grammar] ~38-~38: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) 🪛 markdownlint-cli2 (0.17.2)39-39: Fenced code blocks should be surrounded by blank lines (MD031, blanks-around-fences) 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3. Download and start the services: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose.yml && docker compose -f docker-compose.yml up -d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This will start: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Exosphere State Manager (port 8000) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Exosphere Dashboard (port 3000) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Option 2: With Local MongoDB (Development Only) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| For quick local testing only: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose-with-mongodb.yml && docker compose -f docker-compose-with-mongodb.yml up -d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This will start: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - MongoDB database (port 27017) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Exosphere State Manager (port 8000) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Exosphere Dashboard (port 3000) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Reduce duplication with Compose profiles Consider one compose file with a mongo profile instead of maintaining two separate files. Example: services:
mongo:
image: mongo:7
profiles: ["mongo"]
exosphere-state-manager:
depends_on:
mongo:
condition: service_healthy
# ...Usage:
🧰 Tools🪛 LanguageTool[grammar] ~30-~30: There might be a mistake here. (QB_NEW_EN) [grammar] ~32-~32: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~34-~34: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~36-~36: There might be a mistake here. (QB_NEW_EN_OTHER) [grammar] ~38-~38: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~43-~43: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~48-~48: There might be a mistake here. (QB_NEW_EN) [grammar] ~49-~49: There might be a mistake here. (QB_NEW_EN) [grammar] ~50-~50: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~52-~52: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~54-~54: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~60-~60: There might be a mistake here. (QB_NEW_EN) [grammar] ~61-~61: There might be a mistake here. (QB_NEW_EN) [grammar] ~62-~62: There might be a mistake here. (QB_NEW_EN) [grammar] ~63-~63: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) 🪛 markdownlint-cli2 (0.17.2)39-39: Fenced code blocks should be surrounded by blank lines (MD031, blanks-around-fences) 44-44: Fenced code blocks should be surrounded by blank lines (MD031, blanks-around-fences) 49-49: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 61-61: Lists should be surrounded by blank lines (MD032, blanks-around-lists) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🧪 Beta Version | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| To run the latest beta version of Exosphere with the newest features, replace container tags with `beta-latest`: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Quick Beta Setup with Cloud MongoDB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Download and modify for beta with cloud MongoDB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sed -i 's/:latest/:beta-latest/g' docker-compose.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Set your MONGO_URI in .env file, then: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose.yml up -d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Quick Beta Setup with Local MongoDB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Download and modify for beta with local MongoDB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose-with-mongodb.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sed -i 's/:latest/:beta-latest/g' docker-compose-with-mongodb.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose-with-mongodb.yml up -d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
coderabbitai[bot] marked this conversation as resolved.
Outdated
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same issue in local-mongodb beta section Mirror the safe, targeted replacement for docker-compose-with-mongodb.yml to avoid retagging the Mongo image. - sed -i 's/:latest/:beta-latest/g' docker-compose-with-mongodb.yml
+ # Linux (GNU sed)
+ sed -E -i.bak 's#(ghcr.io/exospherehost/exosphere-(state-manager|dashboard)):[^"[:space:]]+#\1:beta-latest#g' docker-compose-with-mongodb.yml
+ # macOS (BSD sed)
+ # sed -E -i '' 's#(ghcr.io/exospherehost/exosphere-(state-manager|dashboard)):[^"[:space:]]+#\1:beta-latest#g' docker-compose-with-mongodb.yml🧰 Tools🪛 markdownlint-cli2 (0.17.2)79-79: Fenced code blocks should be surrounded by blank lines (MD031, blanks-around-fences) 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Manual Beta Setup (Alternative) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1. Download the docker-compose file | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2. Edit the file and change: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```yaml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Change from: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| image: ghcr.io/exospherehost/exosphere-state-manager:latest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| image: ghcr.io/exospherehost/exosphere-dashboard:latest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # To: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| image: ghcr.io/exospherehost/exosphere-state-manager:beta-latest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| image: ghcr.io/exospherehost/exosphere-dashboard:beta-latest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3. Start the services with `docker compose up -d` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 📋 Environment Variables | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Environment Variables for State Manager | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | Variable | Description | Default Value | Required | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |----------|-------------|---------------|----------| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | `MONGO_URI` | MongoDB connection string | - | ✅ (for docker-compose.yml) | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | `STATE_MANAGER_SECRET` | API key for state manager authentication | `exosphere@123` | ⚙️ (has default) | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | `MONGO_DATABASE_NAME` | MongoDB database name | `exosphere` | ⚙️ (has default) | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | `SECRETS_ENCRYPTION_KEY` | Base64-encoded encryption key for secrets | `YTzpUlBGLSwm-3yKJRJTZnb0_aQuQQHyz64s8qAERVU=` | ⚙️ (has default) | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > **⚠️ Important**: The `SECRETS_ENCRYPTION_KEY` is used to encrypt secrets in the database. Changing this value will make existing encrypted secrets unreadable. Only change this key when setting up a new instance or if you're okay with losing access to existing encrypted data. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Dashboard Environment Variables (All Optional) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | Variable | Description | Default Value | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |----------|-------------|---------------| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | `NEXT_PUBLIC_EXOSPHERE_STATE_MANAGER_URL` | State manager API URL | `http://exosphere-state-manager:8000` | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | `NEXT_PUBLIC_DEFAULT_NAMESPACE` | Default namespace for workflows | `WhatPeopleWant` | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | `NEXT_PUBLIC_DEFAULT_API_KEY` | Default API key for dashboard | `exosphere@123` | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Do not publish real-looking defaults for secrets; make them explicit placeholders and add a production warning Hard-coded defaults for STATE_MANAGER_SECRET and SECRETS_ENCRYPTION_KEY are risky and will be reused inadvertently. -| `STATE_MANAGER_SECRET` | API key for state manager authentication | `exosphere@123` | ⚙️ (has default) |
+| `STATE_MANAGER_SECRET` | API key for state manager authentication | (set a strong random value; no default) | ✅ |
-| `SECRETS_ENCRYPTION_KEY` | Base64-encoded encryption key for secrets | `YTzpUlBGLSwm-3yKJRJTZnb0_aQuQQHyz64s8qAERVU=` | ⚙️ (has default) |
+| `SECRETS_ENCRYPTION_KEY` | Base64-encoded encryption key for secrets | (generate; see "Generating a New Encryption Key") | ✅ |Add a prominent note right below the table: +> Never use example or default values for `STATE_MANAGER_SECRET` or `SECRETS_ENCRYPTION_KEY` in any environment beyond local throwaway demos. Rotate both if leaked or committed.Also, the dashboard exposes -| `NEXT_PUBLIC_DEFAULT_API_KEY` | Default API key for dashboard | `exosphere@123` |
+| `NEXT_PUBLIC_DEFAULT_API_KEY` | Default API key for dashboard (dev-only) | (leave blank; set explicitly in dev) |📝 Committable suggestion
Suggested change
🧰 Tools🪛 LanguageTool[grammar] ~108-~108: There might be a mistake here. (QB_NEW_EN) [grammar] ~109-~109: There might be a mistake here. (QB_NEW_EN) [grammar] ~110-~110: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~112-~112: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~114-~114: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~116-~116: There might be a mistake here. (QB_NEW_EN) [grammar] ~117-~117: There might be a mistake here. (QB_NEW_EN) [grammar] ~118-~118: There might be a mistake here. (QB_NEW_EN) [grammar] ~119-~119: There might be a mistake here. (QB_NEW_EN) [grammar] ~120-~120: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) 🤖 Prompt for AI Agents
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Default namespace value looks product-specific “WhatPeopleWant” reads like an internal/demo value. Consider “default” to reduce cognitive load. -| `NEXT_PUBLIC_DEFAULT_NAMESPACE` | Default namespace for workflows | `WhatPeopleWant` |
+| `NEXT_PUBLIC_DEFAULT_NAMESPACE` | Default namespace for workflows | `default` |📝 Committable suggestion
Suggested change
🧰 Tools🪛 LanguageTool[grammar] ~116-~116: There might be a mistake here. (QB_NEW_EN) [grammar] ~117-~117: There might be a mistake here. (QB_NEW_EN) [grammar] ~118-~118: There might be a mistake here. (QB_NEW_EN) [grammar] ~119-~119: There might be a mistake here. (QB_NEW_EN) [grammar] ~120-~120: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### MongoDB Local Setup Variables (for docker-compose-with-mongodb.yml only) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | Variable | Description | Default Value | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |----------|-------------|---------------| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | `MONGO_INITDB_ROOT_USERNAME` | MongoDB root username | `admin` | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | `MONGO_INITDB_ROOT_PASSWORD` | MongoDB root password | `password` | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | `MONGO_INITDB_DATABASE` | Initial MongoDB database | `exosphere` | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### SDK Environment Variables | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| To use the Exosphere Python SDK with your running instance, set these environment variables in your development environment: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | Variable | Description | Example Value | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |----------|-------------|---------------| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | `EXOSPHERE_STATE_MANAGER_URI` | URL where the state manager is running | `http://localhost:8000` | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | `EXOSPHERE_API_KEY` | API key for authentication (same as STATE_MANAGER_SECRET) | `exosphere@123` | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Example SDK setup**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Set environment variables for SDK | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| export EXOSPHERE_STATE_MANAGER_URI=http://localhost:8000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| export EXOSPHERE_API_KEY=exosphere@123 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Or add to your .env file for your Python project | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "EXOSPHERE_STATE_MANAGER_URI=http://localhost:8000" >> .env | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "EXOSPHERE_API_KEY=exosphere@123" >> .env | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🔧 Custom Configuration | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Using Your Own Environment Variables | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Create a `.env` file in the same directory as your docker-compose file: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # MongoDB Configuration (REQUIRED for docker-compose.yml) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MONGO_URI=mongodb+srv://username:password@your-cluster.mongodb.net/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Optional Configuration (has defaults) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MONGO_DATABASE_NAME=exosphere | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| STATE_MANAGER_SECRET=your-custom-secret-key | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SECRETS_ENCRYPTION_KEY=your-base64-encoded-encryption-key | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Dashboard Configuration (Optional) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| NEXT_PUBLIC_DEFAULT_NAMESPACE=YourNamespace | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| NEXT_PUBLIC_DEFAULT_API_KEY=your-custom-secret-key | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # For local MongoDB setup only (docker-compose-with-mongodb.yml) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MONGO_INITDB_ROOT_USERNAME=admin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MONGO_INITDB_ROOT_PASSWORD=password | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MONGO_INITDB_DATABASE=exosphere | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Then run with your custom configuration: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # For cloud MongoDB (recommended) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose.yml up -d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # For local MongoDB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose-with-mongodb.yml up -d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Note**: The docker-compose files now automatically use `.env` files in the same directory and provide sensible defaults for all optional variables. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Generating a New Encryption Key | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| To generate a secure encryption key for `SECRETS_ENCRYPTION_KEY`: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Using Python | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| python -c "import base64; import os; print(base64.urlsafe_b64encode(os.urandom(32)).decode())" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Using OpenSSL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| openssl rand -base64 32 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🌐 Access Your Services | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| After running the Docker Compose command: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Exosphere Dashboard**: http://localhost:3000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **State Manager API**: http://localhost:8000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **MongoDB** (if using with-mongodb): http://localhost:27017 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **API Documentation**: http://localhost:8000/docs | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. MongoDB is not HTTP; fix the connection example Using http:// for MongoDB is incorrect and can mislead users. -- **MongoDB** (if using with-mongodb): http://localhost:27017
+- **MongoDB** (if using with-mongodb): mongodb://localhost:27017 (driver/protocol URI; not an HTTP endpoint)Optionally add: + # Example CLI connection:
+ # mongosh "mongodb://admin:password@localhost:27017/exosphere"📝 Committable suggestion
Suggested change
🧰 Tools🪛 LanguageTool[grammar] ~200-~200: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~202-~202: There might be a mistake here. (QB_NEW_EN) [grammar] ~203-~203: There might be a mistake here. (QB_NEW_EN) [grammar] ~204-~204: There might be a mistake here. (QB_NEW_EN) [grammar] ~205-~205: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) 🪛 markdownlint-cli2 (0.17.2)202-202: Bare URL used (MD034, no-bare-urls) 203-203: Bare URL used (MD034, no-bare-urls) 204-204: Bare URL used (MD034, no-bare-urls) 205-205: Bare URL used (MD034, no-bare-urls) 🤖 Prompt for AI Agents
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Wrap bare URLs to satisfy markdownlint (MD034) and improve readability Convert bare links to markdown links. -- **Exosphere Dashboard**: http://localhost:3000
-- **State Manager API**: http://localhost:8000
-- **API Documentation**: http://localhost:8000/docs
+– **Exosphere Dashboard**: [http://localhost:3000](http://localhost:3000)
+– **State Manager API**: [http://localhost:8000](http://localhost:8000)
+– **API Documentation**: [http://localhost:8000/docs](http://localhost:8000/docs)-1. Visit the dashboard at http://localhost:3000
-2. Check out the [official documentation](https://docs.exosphere.host)
-3. Follow the [Getting Started Guide](https://docs.exosphere.host/getting-started) to create your first workflow
-4. Explore the [State Manager API](http://localhost:8000/docs) for advanced usage
+1. Visit the dashboard at [http://localhost:3000](http://localhost:3000)
+2. Check out the [official documentation](https://docs.exosphere.host)
+3. Follow the [Getting Started Guide](https://docs.exosphere.host/getting-started) to create your first workflow
+4. Explore the [State Manager API](http://localhost:8000/docs) for advanced usageAlso run markdownlint --fix to address blanks-around-fences (MD031), list spacing (MD032), and extra blank lines (MD012). Also applies to: 257-261 🧰 Tools🪛 LanguageTool[grammar] ~202-~202: There might be a mistake here. (QB_NEW_EN) [grammar] ~203-~203: There might be a mistake here. (QB_NEW_EN) [grammar] ~204-~204: There might be a mistake here. (QB_NEW_EN) [grammar] ~205-~205: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) 🪛 markdownlint-cli2 (0.17.2)202-202: Bare URL used (MD034, no-bare-urls) 203-203: Bare URL used (MD034, no-bare-urls) 204-204: Bare URL used (MD034, no-bare-urls) 205-205: Bare URL used (MD034, no-bare-urls) 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🛠️ Development Commands | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Start services in background | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose-with-mongodb.yml up -d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # View logs | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose-with-mongodb.yml logs -f | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Stop services | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose-with-mongodb.yml down | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Stop services and remove volumes (⚠️ This will delete your data) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose-with-mongodb.yml down -v | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Pull latest images | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose-with-mongodb.yml pull | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Restart a specific service | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose-with-mongodb.yml restart exosphere-state-manager | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Optional: mention docker-compose v1 alias Some users still have docker-compose. A small note can reduce friction. -# Start services in background
+# Start services in background (use `docker-compose` if your Docker installation doesn’t support `docker compose`)📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🔍 Troubleshooting | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Check Service Health | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Check if all containers are running | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose-with-mongodb.yml ps | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Check state manager health | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl http://localhost:8000/health | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # View container logs | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose-with-mongodb.yml logs exosphere-state-manager | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Common Issues | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1. **Port already in use**: Change the port mappings in the docker-compose file if ports 3000, 8000, or 27017 are already in use. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2. **MongoDB connection issues**: Ensure MongoDB is fully started before the state manager. The `depends_on` configuration handles this automatically. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. depends_on doesn’t wait for service readiness; suggest healthchecks “depends_on handles this automatically” is false. depends_on only orders start. Add healthchecks and condition: service_healthy. -2. **MongoDB connection issues**: Ensure MongoDB is fully started before the state manager. The `depends_on` configuration handles this automatically.
+2. **MongoDB connection issues**: Ensure MongoDB is ready before the state manager. `depends_on` controls start order but does not wait for readiness. Use healthchecks and `condition: service_healthy`.Example (to include in compose files): services:
mongo:
image: mongo:7
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
interval: 5s
timeout: 3s
retries: 20
exosphere-state-manager:
depends_on:
mongo:
condition: service_healthy🧰 Tools🪛 LanguageTool[grammar] ~246-~246: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~248-~248: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3. **Authentication errors**: Verify your `STATE_MANAGER_SECRET` matches between the state manager and dashboard configuration. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 📖 Next Steps | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Once your Exosphere instance is running: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1. Visit the dashboard at http://localhost:3000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2. Check out the [official documentation](https://docs.exosphere.host) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3. Follow the [Getting Started Guide](https://docs.exosphere.host/getting-started) to create your first workflow | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 4. Explore the [State Manager API](http://localhost:8000/docs) for advanced usage | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## 🤝 Support | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - [Documentation](https://docs.exosphere.host) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - [Discord Community](https://discord.com/invite/zT92CAgvkj) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - [GitHub Issues](https://github.com/exospherehost/exospherehost/issues) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,56 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||
| services: | ||||||||||||||||||||||||||||||||||||||||||||||||
| mongodb: | ||||||||||||||||||||||||||||||||||||||||||||||||
| image: mongo:7.0 | ||||||||||||||||||||||||||||||||||||||||||||||||
| container_name: mongodb | ||||||||||||||||||||||||||||||||||||||||||||||||
| restart: unless-stopped | ||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
|
||||||||||||||||||||||||||||||||||||||||||||||||
| environment: | ||||||||||||||||||||||||||||||||||||||||||||||||
| MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME:-admin} | ||||||||||||||||||||||||||||||||||||||||||||||||
| MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD:-password} | ||||||||||||||||||||||||||||||||||||||||||||||||
| MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE:-exosphere} | ||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
|
||||||||||||||||||||||||||||||||||||||||||||||||
| volumes: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - mongodb_data:/data/db | ||||||||||||||||||||||||||||||||||||||||||||||||
| ports: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - "27017:27017" | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+12
to
+13
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Consider not publishing MongoDB to the host (optional). For local dev, you usually don’t need 27017 exposed; reduces attack surface. - ports:
- - "27017:27017"
+ # ports:
+ # - "27017:27017" # Uncomment only if you need host access (e.g., MongoDB Compass)📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - exosphere-network | ||||||||||||||||||||||||||||||||||||||||||||||||
|
coderabbitai[bot] marked this conversation as resolved.
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
|
||||||||||||||||||||||||||||||||||||||||||||||||
| exosphere-state-manager: | ||||||||||||||||||||||||||||||||||||||||||||||||
| image: ghcr.io/exospherehost/exosphere-state-manager:latest | ||||||||||||||||||||||||||||||||||||||||||||||||
|
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||
| container_name: whatpeoplewant-state-manager | ||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
NiveditJain marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||
| restart: unless-stopped | ||||||||||||||||||||||||||||||||||||||||||||||||
| environment: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - MONGO_URI=${MONGO_URI:-mongodb://admin:password@mongodb:27017/exosphere?authSource=admin} | ||||||||||||||||||||||||||||||||||||||||||||||||
| - STATE_MANAGER_SECRET=${STATE_MANAGER_SECRET:-exosphere@123} | ||||||||||||||||||||||||||||||||||||||||||||||||
| - MONGO_DATABASE_NAME=${MONGO_DATABASE_NAME:-exosphere} | ||||||||||||||||||||||||||||||||||||||||||||||||
| - SECRETS_ENCRYPTION_KEY=${SECRETS_ENCRYPTION_KEY:-YTzpUlBGLSwm-3yKJRJTZnb0_aQuQQHyz64s8qAERVU=} | ||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||
| depends_on: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - mongodb | ||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ports: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - "8000:8000" | ||||||||||||||||||||||||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - exosphere-network | ||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| exosphere-dashboard: | ||||||||||||||||||||||||||||||||||||||||||||||||
| image: ghcr.io/exospherehost/exosphere-dashboard:latest | ||||||||||||||||||||||||||||||||||||||||||||||||
| container_name: whatpeoplewant-dashboard | ||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||
| restart: unless-stopped | ||||||||||||||||||||||||||||||||||||||||||||||||
| environment: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - NEXT_PUBLIC_EXOSPHERE_STATE_MANAGER_URL=${NEXT_PUBLIC_EXOSPHERE_STATE_MANAGER_URL:-http://exosphere-state-manager:8000} | ||||||||||||||||||||||||||||||||||||||||||||||||
| - NEXT_PUBLIC_DEFAULT_NAMESPACE=${NEXT_PUBLIC_DEFAULT_NAMESPACE:-WhatPeopleWant} | ||||||||||||||||||||||||||||||||||||||||||||||||
| - NEXT_PUBLIC_DEFAULT_API_KEY=${NEXT_PUBLIC_DEFAULT_API_KEY:-exosphere@123} | ||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||
| depends_on: | ||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||
| - mongodb | ||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||
| - exosphere-state-manager | ||||||||||||||||||||||||||||||||||||||||||||||||
| ports: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - "3000:3000" | ||||||||||||||||||||||||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - exosphere-network | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| volumes: | ||||||||||||||||||||||||||||||||||||||||||||||||
| mongodb_data: | ||||||||||||||||||||||||||||||||||||||||||||||||
| driver: local | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||||||||||||||||||||||||
| exosphere-network: | ||||||||||||||||||||||||||||||||||||||||||||||||
| driver: bridge | ||||||||||||||||||||||||||||||||||||||||||||||||
| attachable: true | ||||||||||||||||||||||||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,34 @@ | ||||||||||||||||||||||||||
| services: | ||||||||||||||||||||||||||
| exosphere-state-manager: | ||||||||||||||||||||||||||
| image: ghcr.io/exospherehost/exosphere-state-manager:latest | ||||||||||||||||||||||||||
|
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||
| container_name: whatpeoplewant-state-manager | ||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||
| restart: unless-stopped | ||||||||||||||||||||||||||
| environment: | ||||||||||||||||||||||||||
| - MONGO_URI=${MONGO_URI} | ||||||||||||||||||||||||||
| - STATE_MANAGER_SECRET=${STATE_MANAGER_SECRET:-exosphere@123} | ||||||||||||||||||||||||||
| - MONGO_DATABASE_NAME=${MONGO_DATABASE_NAME:-exosphere} | ||||||||||||||||||||||||||
| - SECRETS_ENCRYPTION_KEY=${SECRETS_ENCRYPTION_KEY:-YTzpUlBGLSwm-3yKJRJTZnb0_aQuQQHyz64s8qAERVU=} | ||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
|
||||||||||||||||||||||||||
| ports: | ||||||||||||||||||||||||||
| - "8000:8000" | ||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||
| - exosphere-network | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
coderabbitai[bot] marked this conversation as resolved.
|
||||||||||||||||||||||||||
| exosphere-dashboard: | ||||||||||||||||||||||||||
| image: ghcr.io/exospherehost/exosphere-dashboard:latest | ||||||||||||||||||||||||||
| container_name: whatpeoplewant-dashboard | ||||||||||||||||||||||||||
| restart: unless-stopped | ||||||||||||||||||||||||||
| environment: | ||||||||||||||||||||||||||
| - NEXT_PUBLIC_EXOSPHERE_STATE_MANAGER_URL=${NEXT_PUBLIC_EXOSPHERE_STATE_MANAGER_URL:-http://exosphere-state-manager:8000} | ||||||||||||||||||||||||||
| - NEXT_PUBLIC_DEFAULT_NAMESPACE=${NEXT_PUBLIC_DEFAULT_NAMESPACE:-WhatPeopleWant} | ||||||||||||||||||||||||||
| - NEXT_PUBLIC_DEFAULT_API_KEY=${NEXT_PUBLIC_DEFAULT_API_KEY:-exosphere@123} | ||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||
| depends_on: | ||||||||||||||||||||||||||
| - exosphere-state-manager | ||||||||||||||||||||||||||
| ports: | ||||||||||||||||||||||||||
| - "3000:3000" | ||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||
| - exosphere-network | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
Comment on lines
+39
to
+45
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Mirror healthcheck command style for the dashboard. Consistency and clearer failures. - healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost:3000"]
+ healthcheck:
+ test: ["CMD-SHELL", "curl -fsS http://localhost:3000 >/dev/null || exit 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||
| exosphere-network: | ||||||||||||||||||||||||||
| driver: bridge | ||||||||||||||||||||||||||
| attachable: true | ||||||||||||||||||||||||||
|
NiveditJain marked this conversation as resolved.
Outdated
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||
Uh oh!
There was an error while loading. Please reload this page.