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

# ⚙️ Environment Variables

> SimpleTool Server is highly configurable through environment variables. This page documents all available environment variables you can use to customize your server.

## 🛠️ Core Environment

| Variable      | Description                                         | Default |
| ------------- | --------------------------------------------------- | ------- |
| `LOG_LEVEL`   | 📝 Logging level                                    | `INFO`  |
| `APT_INSTALL` | 📦 APT packages to install during container startup | `git`   |

## 🛠️ Core Environment

| Variable      | Description                                         | Default |
| ------------- | --------------------------------------------------- | ------- |
| `LOG_LEVEL`   | 📝 Logging level                                    | `INFO`  |
| `APT_INSTALL` | 📦 APT packages to install during container startup | `git`   |

## 🔐 Authentication and Security

| Variable                          | Description                                   | Default                       |
| --------------------------------- | --------------------------------------------- | ----------------------------- |
| `ADMIN_DEFAULT_PASSWORD`          | 🔑 SimpleServer admin password for first user | `admin`                       |
| `ADMIN_BEARER_HACK`               | 🪄 Static Bearer token for admin              | *(empty)*                     |
| `SALT`                            | 🧂 Used for password hashing                  | `default_insecure_pepper`     |
| `JWT_SECRET_KEY`                  | 🔒 JWT secret                                 | `default_insecure_secret_key` |
| `JWT_ALGORITHM`                   | 🔐 JWT algorithm                              | `HS256`                       |
| `JWT_ACCESS_TOKEN_EXPIRE_MINUTES` | ⏱️ JWT access token expiry (minutes)          | `30`                          |

## 📂 Storage and Configuration

| Variable              | Description               | Default                   |
| --------------------- | ------------------------- | ------------------------- |
| `CONFIG_STORAGE_TYPE` | 💾 Config storage type    | `files`                   |
| `CONFIG_STORAGE_PATH` | 📁 Path to config storage | `$APP_FOLDER/data/config` |

## 🧰 MCP Tools Management

| Variable                             | Description                                          | Default         |
| ------------------------------------ | ---------------------------------------------------- | --------------- |
| `TOOLS_WHITELIST`                    | ✅ Comma-separated list of tools to whitelist         | *(empty)*       |
| `TOOLS_BLACKLIST`                    | ❌ Comma-separated list of tools to blacklist         | *(empty)*       |
| `SUBPROCESS_STREAM_LIMIT`            | 📊 Subprocess stream limit in bytes                  | `5242880` (5MB) |
| `PRIVATE_MCPSERVER_CLEANUP_INTERVAL` | 🧹 Idle private mcpServer cleanup interval (seconds) | `300`           |

## 🖥️ Container System Services

| Variable           | Description            | Default               |
| ------------------ | ---------------------- | --------------------- |
| `SSHD_ENABLED`     | 🔌 Enable SSH          | `true`                |
| `VNC_ENABLED`      | 🖼️ Enable VNC         | `true`                |
| `VNC_PW`           | 🔑 VNC password        | `vncpassword`         |
| `VNC_VIEW_ONLY`    | 👁️ VNC view only mode | `false`               |
| `VNC_COL_DEPTH`    | 🎨 VNC color depth     | `24`                  |
| `VNC_RESOLUTION`   | 📐 VNC resolution      | `1280x1024`           |
| `APPUSER_PASSWORD` | 👤 Appuser password    | *(random if not set)* |
| `TZ`               | 🕒 Timezone            | `CET`                 |

## 💾 Volume Management

When running with Docker or Docker Compose, data is persisted using a volume:

```yaml theme={null}
volumes:
  data:
    name: simpletool-server-data    
    driver_opts:
      type: none
      o: bind
      device: ${PWD}/data
```

This maps to `/app/server/data` in the container and stores:

* 📋 User configurations
* 🔧 Tool configurations
* 🔐 Authentication data

## 🚀 Example Configurations

### Basic Docker Compose Setup

```yaml theme={null}
services:
  simpletoolserver:
    image: ghcr.io/getsimpletool/simpletool-server:latest
    environment:
      - LOG_LEVEL=INFO
      - SSHD_ENABLED=true
      - VNC_ENABLED=true
      - ADMIN_DEFAULT_PASSWORD=admin
      - ADMIN_BEARER_HACK=abc123
      - SALT=default_insecure_pepper
      - JWT_SECRET_KEY=default_insecure_secret_key
      - JWT_ALGORITHM=HS256
      - JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30
      - TOOLS_WHITELIST=
      - TOOLS_BLACKLIST=
      - PRIVATE_MCPSERVER_CLEANUP_INTERVAL=300
    volumes:
      - data:/app/server/data
```

### Docker Command with Tool Filtering

```bash theme={null}
docker run -d \
  --name simpletool-server \
  -p 8000:8000 -p 2222:22 -p 5901:5901 -p 6901:6901 \
  -e LOG_LEVEL=INFO \
  -e SSHD_ENABLED=true \
  -e VNC_ENABLED=true \
  -e ADMIN_DEFAULT_PASSWORD=admin \
  -e ADMIN_BEARER_HACK=abc123 \
  -e JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30 \
  -e TOOLS_WHITELIST=tools-browser,tools-httpx \
  -e TOOLS_BLACKLIST= \
  -e PRIVATE_MCPSERVER_CLEANUP_INTERVAL=300 \
  -v "$(pwd)/data:/app/server/data" \
  ghcr.io/getsimpletool/simpletool-server:latest
```

### Python Direct Mode

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

```
LOG_LEVEL=INFO
ADMIN_DEFAULT_PASSWORD=admin
ADMIN_BEARER_HACK=abc123
CONFIG_STORAGE_TYPE=files
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30
PRIVATE_MCPSERVER_CLEANUP_INTERVAL=300
```
