# Self-Hosting Guide

This guide provides step-by-step instructions for setting up and running this project on your local machine, whether for development, testing, or personal use.

## Pre-requisites

Ensure the following are installed or obtained before proceeding:

- **[Docker](https://hub.docker.com/?overlay=onboarding)**: The project is containerized using Docker Compose, allowing it to run on any system with Docker installed.
- **API Keys**:
  - **Telegram**: Obtain a free API key by interacting with [BotFather](https://telegram.me/botfather). More details [here](https://core.telegram.org/bots#3-how-do-i-create-a-bot).
  - **Discord**: Get a free API key at [https://discord.com/developers](https://discord.com/developers).
  - **[marketdata.app](https://dashboard.marketdata.app/marketdata/aff/go/misterbiggs?keyword=web)**: Sign up to get an API key. A free tier is available and should suffice for private groups. More details [here](https://dashboard.marketdata.app/marketdata/aff/go/misterbiggs?keyword=repo).

!!! tip
The bot will still operate without a [marketdata.app](https://dashboard.marketdata.app/marketdata/aff/go/misterbiggs?keyword=repo) key but will revert to using only cryptocurrency data.

!!! note
To enable donation acceptance, obtain a Stripe API key and provide a `STRIPE` key to your bot. [https://stripe.com/]()

## Setup Instructions

1. **Download/Clone the Repository**:
    - Download or clone this repository to your local machine.

2. **Configure Environment Variables**:
    - Navigate to the project directory and locate the `.env` file.
    - Fill in the `.env` file with your obtained API keys:

    ```plaintext
    MARKETDATA=your_marketdata_api_key
    STRIPE=your_stripe_api_key
    TELEGRAM=your_telegram_api_key
    DISCORD=your_discord_api_key
    ```

    Alternatively, pass the variables using Docker Compose environment variables or command-line arguments.

3. **Build and Run the Bot:**
    - Open a terminal in the project directory.
    - Build and run both bots using Docker Compose:

    ```bash
    docker-compose up
    ```

Now, your bot(s) should be up and running! If you're unfamiliar with Docker, reviewing the [Docker documentation](https://docs.docker.com/) is highly recommended to gain better control over your bot and understand Docker commands better.
