Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,088 changes: 0 additions & 1,088 deletions docs/api-reference.html

This file was deleted.

516 changes: 516 additions & 0 deletions docs/api-reference.md

Large diffs are not rendered by default.

192 changes: 0 additions & 192 deletions docs/getting-started.html

This file was deleted.

160 changes: 160 additions & 0 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# Getting Started

This guide will walk you through installing, configuring, and running HoloBridge.

**Navigation:** [Home](index.md) | Getting Started | [API Reference](api-reference.md) | [WebSocket](websocket.md) | [Plugins](plugins.md) | [Security](security.md) | [Network](network.md)

---

## Prerequisites

- Node.js 18 or higher
- npm or yarn package manager
- A Discord bot token

## Installation

### 1. Clone the Repository

```bash
git clone https://github.com/coder-soft/holobridge.git
cd holobridge
```

### 2. Install Dependencies

```bash
npm install
```

## Configuration

### Environment Variables

Copy `.env.example` to `.env` and fill in your values:

```env
# Discord Bot Token (required)
# Get this from https://discord.com/developers/applications
DISCORD_TOKEN=your_discord_bot_token_here

# API Configuration
PORT=3000
HOST=0.0.0.0
API_KEY=your_secure_api_key_here

# Optional: Enable debug logging
DEBUG=false

# Optional: Plugin configuration
PLUGINS_ENABLED=true
PLUGINS_DIR=plugins

# Optional: Rate limiting
RATE_LIMIT_ENABLED=true
RATE_LIMIT_WINDOW_MS=60000
RATE_LIMIT_MAX=100
```

### Configuration Reference

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `DISCORD_TOKEN` | Yes | - | Your Discord bot token |
| `API_KEY` | Yes | - | API key for authenticating requests |
| `PORT` | No | `3000` | Server port |
| `HOST` | No | `0.0.0.0` | Host to bind to (see [Network Configuration](network.md)) |
| `DEBUG` | No | `false` | Enable debug logging |
| `PLUGINS_ENABLED` | No | `true` | Enable/disable the plugin system |
| `PLUGINS_DIR` | No | `plugins` | Directory for plugins |
| `RATE_LIMIT_ENABLED` | No | `true` | Enable rate limiting |
| `RATE_LIMIT_WINDOW_MS` | No | `60000` | Rate limit window in milliseconds |
| `RATE_LIMIT_MAX` | No | `100` | Max requests per window |

## Running the Server

### Development Mode

```bash
npm run dev
```

### Production Mode

```bash
npm run build
npm start
```

### Using Docker

```bash
docker-compose up -d
```

## Discord Bot Setup

Follow these steps to create a Discord bot and invite it to your server:

1. Go to the [Discord Developer Portal](https://discord.com/developers/applications)
2. Click "New Application" and give it a name
3. Go to the "Bot" section in the left sidebar
4. Click "Add Bot" and confirm
5. Enable the following **Privileged Gateway Intents**:
- Presence Intent
- Server Members Intent
- Message Content Intent
6. Click "Reset Token" to get your bot token and copy it to your `.env` file

### Inviting the Bot

1. Go to the "OAuth2" → "URL Generator" section
2. Select the following scopes:
- `bot`
- `applications.commands`
3. Select the permissions your bot needs (Administrator for full access)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: Recommending Administrator permissions is a security concern - consider suggesting minimal required permissions instead.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Prompt To Fix With AI
This is a comment left during a code review.
Path: docs/getting-started.md
Line: 115:115

Comment:
**style:** Recommending Administrator permissions is a security concern - consider suggesting minimal required permissions instead.

<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>

How can I resolve this? If you propose a fix, please make it concise.

4. Copy the generated URL and open it in your browser
5. Select a server and authorize the bot

> ⚠️ **Important:** Keep your bot token and API key secret. Never commit them to version control.

## Testing the API

Once the server is running, you can test the API with curl:

```bash
# Health check (no auth required)
curl http://localhost:3000/health

# List all guilds
curl -H "X-API-Key: your_api_key" http://localhost:3000/api/guilds
```

## Server Endpoints

When the server starts, it will display all available endpoints:

```
🌐 API server listening on 0.0.0.0:3000
Local: http://localhost:3000/api
Network: http://192.168.1.100:3000/api
API Docs: http://192.168.1.100:3000/api/docs
Plugin API: http://192.168.1.100:3000/api/plugins
WebSocket: ws://192.168.1.100:3000
Health: http://192.168.1.100:3000/health
```

- **Local** - Access from the same machine
- **Network** - Access from other devices on your network (see [Network Configuration](network.md))
- **API Docs** - Interactive Swagger UI documentation
- **Plugin API** - Endpoints registered by plugins
- **WebSocket** - Socket.IO endpoint for real-time events
- **Health** - Health check endpoint for monitoring

## Next Steps

- [API Reference](api-reference.md) - Explore all available REST API endpoints
- [WebSocket Events](websocket.md) - Learn how to receive real-time Discord events
- [Network Configuration](network.md) - Expose the API on your local network
- [Plugins](plugins.md) - Extend HoloBridge with custom functionality
- [Security](security.md) - Configure API scopes and rate limiting
Loading