๐Ÿ•’ Run SimpleTool Server on your machine in minutes

There are three main ways to run SimpleTool Server:

  1. Using Docker Compose (recommended for most users) ๐Ÿณ
  2. Using Docker directly (more control over container settings) ๐Ÿ‹
  3. Running the Python code directly (better for development and customization) ๐Ÿ

The Docker Compose setup provides a fully configured container with:

  • ๐Ÿ–ฅ๏ธ SimpleTool Server with FastAPI
  • ๐Ÿ” SSH access
  • ๐Ÿ–ผ๏ธ Desktop environment (Xfce) accessible via built-in noVNC

All 3 elements are initialized and run in a single container using supervisord. You can check status of each element by running:

docker exec -it simpletool-server supervisorctl status

๐Ÿ“‹ Prerequisites

๐Ÿ“ Steps

  1. Clone the repository ๐Ÿ“ฅ

    git clone https://github.com/getsimpletool/simpletool-server.git
    cd simpletool-server/docker
    
  2. Configure environment variables (optional) โš™๏ธ

    The default configuration in docker-compose.yaml works out of the box, but you can modify any of these settings:

    environment:
      - ADMIN_DEFAULT_PASSWORD=admin         # Default admin password
      - ADMIN_BEARER_HACK=abc123             # Static token for admin access
      - TOOLS_WHITELIST=                     # Tools to allow (empty = all)
      - TOOLS_BLACKLIST=                     # Tools to block
      - SSH_ENABLED=true                     # Enable SSH access
      - VNC_ENABLED=true                     # Enable VNC desktop
    

    use allready build image from ghcr.io if you dont whant to use Dockerfile:

    services:
       simpletool-server:
          image: ghcr.io/getsimpletool/simpletool-server:latest
    
  3. Start the server ๐Ÿ

    docker-compose up -d
    
  4. Access the server ๐Ÿ”—

๐Ÿ›‘ Stopping the server

cd docker
docker-compose down

๐Ÿ‹ Option 2: Manual Docker Setup

If you need more control over your Docker container or donโ€™t want to use Docker Compose, you can use the Docker CLI directly.

๐Ÿ“‹ Prerequisites

๐Ÿ“ Steps

  1. Pull the image from GHCR ๐Ÿ“ฅ

    docker pull ghcr.io/getsimpletool/simpletool-server:latest
    
  2. Run the container ๐Ÿ

    docker run -d \
      --name simpletool-server \
      -p 8000:8000 \
      -p 2222:22 \
      -p 5901:5901 \
      -p 6901:6901 \
      -e ADMIN_DEFAULT_PASSWORD=admin \
      -e ADMIN_BEARER_HACK=abc123 \
      -e SSH_ENABLED=true \
      -e VNC_ENABLED=true \
      -v "$(pwd)/data:/app/server/data" \
      ghcr.io/getsimpletool/simpletool-server:latest
    

Method B: Build from Source

  1. Clone the repository ๐Ÿ“ฅ

    git clone https://github.com/getsimpletool/simpletool-server.git
    cd simpletool-server
    
  2. Build the Docker image ๐Ÿ”จ

    docker build -t simpletool-server:local -f docker/Dockerfile .
    
  3. Run the container ๐Ÿ

    docker run -d \
      --name simpletool-server \
      -p 8000:8000 \
      -p 2222:22 \
      -p 5901:5901 \
      -p 6901:6901 \
      -e ADMIN_DEFAULT_PASSWORD=admin \
      -e ADMIN_BEARER_HACK=abc123 \
      -e SSH_ENABLED=true \
      -e VNC_ENABLED=true \
      -v "$(pwd)/data:/app/server/data" \
      simpletool-server:local
    

๐Ÿ”— Access the server

๐Ÿ›‘ Stopping and removing the container

docker stop simpletool-server
docker rm simpletool-server

๐Ÿ Option 3: Python Direct Mode

Running directly with Python is ideal for development, debugging, or when you donโ€™t need the full container with desktop environment.

๐Ÿ“‹ Prerequisites

  • Python 3.10+ installed ๐Ÿ
  • Git ๐Ÿ“ฅ

๐Ÿ“ Steps

  1. Clone the repository ๐Ÿ“ฅ

    git clone https://github.com/getsimpletool/simpletool-server.git
    cd simpletool-server
    
  2. Set up Python environment ๐Ÿ› ๏ธ

    # Create and activate virtual environment
    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
    # Install dependencies
    cd src/server
    pip install -r requirements.txt
    
  3. Configure environment variables (optional) โš™๏ธ

    Create a .env file in the src/server directory:

    ADMIN_DEFAULT_PASSWORD=admin
    ADMIN_BEARER_HACK=abc123
    CONFIG_STORAGE_TYPE=files
    
  4. Run the server ๐Ÿ

    # From the src/server directory
    python main.py
    

    Or use the convenience script:

    # From the src/server directory
    ./run_quick.sh
    
  5. Access the server ๐Ÿ”—

โœ… Verifying Your Installation

To verify that the server is running correctly, check these endpoints:

  1. Health check ๐Ÿฉบ

    curl http://localhost:8000/health
    # Expected response: {"status":"ok"}
    
  2. Ping test ๐Ÿ“

    curl http://localhost:8000/ping
    # Expected response: {"response":"pong"}
    
  3. View available tools ๐Ÿ”ง

    curl http://localhost:8000/tools/openapi.json
    

    Probably will be empty, because we dont have any tools yet.

๐Ÿ”ฎ Next Steps

Once your server is running:

  1. ๐Ÿ“š View the Swagger UI at /docs to explore API endpoints
  2. ๐Ÿ”ง Check the available MCP tools mapped to OpenAPI standard at /tools/openapi.json (and this path you can use as tools for OpenWebUI)
  3. ๐Ÿ“ก Connect to the server via the SSE endpoint at /sse for real-time communication