> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mixroute.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Odysseus

> How to deploy the Odysseus Agent and connect to Mixroute via Custom Endpoints to power your self-hosted AI workspace.

Odysseus is a self-hosted AI workspace designed to provide a privatized Web experience similar to ChatGPT and Claude. It not only supports local models but also seamlessly integrates with cloud APIs (such as Mixroute), featuring powerful Agent routing, Deep Research, collaborative document editing, persistent memory (ChromaDB), and an evolving skill system.

* Official GitHub: [pewdiepie-archdaemon/odysseus](https://github.com/pewdiepie-archdaemon/odysseus)

## Core Features

<CardGroup cols={3}>
  <Card title="Smart Agent Routing" icon="robot">
    Built-in autonomous Agents based on tool calling, web search, file read/write, and Shell execution, supporting MCP service extensions.
  </Card>

  <Card title="Deep Research" icon="magnifying-glass">
    Multi-step, autonomous academic and factual search, synthesis, and extraction, ultimately outputting comprehensive, high-quality visual reports.
  </Card>

  <Card title="Self-Hosted AI Collaboration" icon="file-lines">
    Equipped with a rich-text Markdown editor where AI can collaboratively edit documents based on context, perfectly optimized for mobile devices.
  </Card>
</CardGroup>

## Prerequisites

Before starting deployment, please ensure your system meets the following requirements:

<Steps>
  <Step title="Prepare Mixroute Credentials">
    <Tabs>
      <Tab title="Smart Routing Node">
        **Smart Routing** is an intelligent model routing capability that automatically distributes requests to the most suitable model based on task complexity, reducing API costs while enhancing efficiency.

        1. Obtain your Mixroute API endpoint URL, typically: `https://api.mixroute.ai/v1`
        2. Generate your Smart Routing node Key in the Mixroute [Smart Routing](https://console.mixroute.ai/smart-route) page.
        3. Select models for different task levels. See [Smart Routing Guide](/en/smart-routing) for constraints and usage guide.

        Configuration example:

        ```text theme={null}
            API Key : <you smart routing key>
            API Host : https://api.mixroute.ai/v1
            Models: auto
        ```
      </Tab>

      <Tab title="Traditional API Node">
        1. Obtain your Mixroute API endpoint URL, typically: `https://api.mixroute.ai/v1`
        2. Generate your API Key in the Mixroute console.
        3. Determine the model name you want to use, e.g., `claude-sonnet-5` (make sure this model is enabled in the Mixroute console).

        Configuration example:

        ```text theme={null}
            API Key : <you api key>
            API Host : https://api.mixroute.ai/v1
            Models: claude-sonnet-5
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Environment Dependency Check">
    * **Docker Deployment**: Requires Docker and Docker Compose.
    * **Native Linux Deployment**: Requires Python 3.11 or higher, and ensure `git` is installed on your system.
  </Step>
</Steps>

## Deploying Odysseus

You can choose between the recommended Docker containerized deployment or native Linux deployment based on your system configuration.

<Tabs>
  <Tab title="Docker Compose (Recommended)">
    Launch Odysseus and its companion services (ChromaDB, SearXNG, etc.) with a single command via Docker Compose. All data is persisted in the local `data/` directory.

    ```bash theme={null}
    # Clone the repository and enter the workspace directory
    git clone https://github.com/pewdiepie-archdaemon/odysseus.git
    cd odysseus

    # Create and configure the environment file (optional, to modify ports or bind addresses)
    cp .env.example .env

    # Start the services
    docker compose up -d --build
    ```

    <Note>
      If you want optional PDF rendering and Office document extraction support (requires AGPL PyMuPDF), perform a manual build with the build argument before running `up`:

      ```bash theme={null}
      docker compose build --build-arg INSTALL_OPTIONAL=true
      docker compose up -d
      ```
    </Note>
  </Tab>

  <Tab title="Native Linux Deployment">
    If you prefer to deploy directly on your host machine (physical or virtual machine), please refer to the following guide:

    ```bash theme={null}
    # Clone and enter the directory
    git clone https://github.com/pewdiepie-archdaemon/odysseus.git
    cd odysseus

    # Create and activate a Python virtual environment (Python 3.11+)
    python3 -m venv venv
    source venv/bin/activate

    # Install dependencies
    pip install -r requirements.txt

    # Run the setup script
    python setup.py

    # Start the application (bound to 127.0.0.1, port 7000)
    python -m uvicorn app:app --host 127.0.0.1 --port 7000
    ```

    <Warning>
      Native deployment requires ensuring that essential system dependencies (such as `sqlite3`) are installed. If you wish to use Odysseus's Cookbook feature to download or manage background services, installing `tmux` is highly recommended.
    </Warning>
  </Tab>
</Tabs>

## First Login & Password Retrieval

By default, Odysseus automatically creates an admin account `admin` during the first startup and prints the generated random initial password to the startup logs.

<Steps>
  <Step title="Retrieve Initial Admin Password">
    Run the following command in your terminal to view the output:

    * **Docker Deployment**:
      ```bash theme={null}
      docker compose logs odysseus | grep -C3 'password'
      ```
    * **Native Linux Deployment**: Check the temporary initial password output in `uvicorn` or your startup terminal.
  </Step>

  <Step title="Access Web Console">
    Log in using the username `admin` and the password you just retrieved.

    * Local access: `http://127.0.0.1:7000`
    * Remote cloud server access: `http://<your-server-ip>:7000`

    <Warning>
      By default, the container only listens to 127.0.0.1. If you need to configure a cloud virtual machine, please refer to the Nntwork errors or container listening issues below.
    </Warning>
  </Step>
</Steps>

## Configuring Mixroute

Once logged in successfully, follow these steps to configure Mixroute as a custom endpoint to power your Odysseus intelligent assistant.

<Steps>
  <Step title="Open Settings Panel">
    Click **Settings** in the bottom-left corner to access the global system settings.

    <img src="https://mintcdn.com/personal-a5418d9f/w4Hn6AFs5M5kvnax/images/odysseus-seting.png?fit=max&auto=format&n=w4Hn6AFs5M5kvnax&q=85&s=4cba5cd3a9847270cd144b5e1ebba01c" alt="Odysseus Seting" width="3120" height="1700" data-path="images/odysseus-seting.png" />
  </Step>

  <Step title="Configure Provider">
    Add a new custom endpoint on the Providers/Endpoints page in **Settings**:

    * **Base URL**: `https://api.mixroute.ai/v1`
    * **API Key**: Enter your Mixroute API Key (e.g., `sk-xxxxxxxx`)

          <img src="https://mintcdn.com/personal-a5418d9f/w4Hn6AFs5M5kvnax/images/odysseus-add-provider.png?fit=max&auto=format&n=w4Hn6AFs5M5kvnax&q=85&s=e6ab543f705168a781d4dadba1d958a8" alt="Odysseus Add Provider" width="1621" height="1362" data-path="images/odysseus-add-provider.png" />
  </Step>

  <Step title="Enable & Manage Models">
    After adding the endpoint, Odysseus will automatically probe and load the available models returned by that endpoint. You can enable frequently used models in the list, or assign them to global default roles (such as default chat, Deep Research, Task scheduling, vision, etc.).

    <Tip>
      Testing shows that the GPT series performs exceptionally well in Odysseus; using it in conjunction with GPT models is highly recommended.
    </Tip>

    <img src="https://mintcdn.com/personal-a5418d9f/w4Hn6AFs5M5kvnax/images/odysseus-models-enabled.png?fit=max&auto=format&n=w4Hn6AFs5M5kvnax&q=85&s=823594619e1a1276cf5a30a06d8c1307" alt="Odysseus Models Enabled" width="1075" height="789" data-path="images/odysseus-models-enabled.png" />
  </Step>

  <Step title="Enjoy your Odysseus">
    Return to the Chat home page to start conversations and launch powerful intelligent Agents utilizing Mixroute's underlying models.

    <img src="https://mintcdn.com/personal-a5418d9f/w4Hn6AFs5M5kvnax/images/odysseus-finish.png?fit=max&auto=format&n=w4Hn6AFs5M5kvnax&q=85&s=e2b851a0d9abb58fb41c76a867485352" alt="Odysseus Finish" width="1864" height="1687" data-path="images/odysseus-finish.png" />
  </Step>
</Steps>

## FAQ & Advanced Setup

<Accordion title="How to enable NVIDIA GPU passthrough in Docker?">
  If you need to call or manage local GPUs through the Cookbook inside self-hosted containers, we recommend:

  1. Running the built-in diagnostic and configuration script:
     ```bash theme={null}
     scripts/check-docker-gpu.sh --install-nvidia-toolkit --enable-nvidia-overlay
     ```
  2. This script automatically appends `COMPOSE_FILE=docker-compose.yml:docker/gpu.nvidia.yml` to `.env` to enable NVIDIA Container Toolkit mapping.
</Accordion>

<Accordion title="Network errors or container listening issues">
  By default, the container only listens on `127.0.0.1`.

  * If you need direct access via IP over LAN or the public network, please modify `APP_BIND=0.0.0.0` in `.env` and restart the container.
  * For production environments, it is highly recommended to keep the listening address on `127.0.0.1` and use Nginx, Caddy, or Cloudflare Tunnel as a reverse proxy with an SSL certificate.
</Accordion>

<Accordion title="ChromaDB or memory retrieval errors">
  If you encounter issues where ChromaDB fails to load or experiences client incompatibilities:

  ```bash theme={null}
  # We recommend manually uninstalling potentially conflicting lightweight clients, then force-reinstalling the full package:
  ./venv/bin/pip uninstall chromadb-client -y
  ./venv/bin/pip install --force-reinstall chromadb
  ```
</Accordion>

<Info>
  Once configured, all of Odysseus's subsequent features (Deep Research, file retrieval, calendar/todos, and email triage) will be powered by the Mixroute endpoint bound and configured in your Settings, delivering a robust and highly cost-effective cloud-based LLM experience.
</Info>
