🛠️ Core Environment

VariableDescriptionDefault
LOG_LEVEL📝 Logging levelINFO
APT_INSTALL📦 APT packages to install during container startupgit

🛠️ Core Environment

VariableDescriptionDefault
LOG_LEVEL📝 Logging levelINFO
APT_INSTALL📦 APT packages to install during container startupgit

🔐 Authentication and Security

VariableDescriptionDefault
ADMIN_DEFAULT_PASSWORD🔑 SimpleServer admin password for first useradmin
ADMIN_BEARER_HACK🪄 Static Bearer token for admin(empty)
SALT🧂 Used for password hashingdefault_insecure_pepper
JWT_SECRET_KEY🔒 JWT secretdefault_insecure_secret_key
JWT_ALGORITHM🔐 JWT algorithmHS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES⏱️ JWT access token expiry (minutes)30

📂 Storage and Configuration

VariableDescriptionDefault
CONFIG_STORAGE_TYPE💾 Config storage typefiles
CONFIG_STORAGE_PATH📁 Path to config storage$APP_FOLDER/data/config

🧰 MCP Tools Management

VariableDescriptionDefault
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 bytes5242880 (5MB)
PRIVATE_MCPSERVER_CLEANUP_INTERVAL🧹 Idle private mcpServer cleanup interval (seconds)300

🖥️ Container System Services

VariableDescriptionDefault
SSHD_ENABLED🔌 Enable SSHtrue
VNC_ENABLED🖼️ Enable VNCtrue
VNC_PW🔑 VNC passwordvncpassword
VNC_VIEW_ONLY👁️ VNC view only modefalse
VNC_COL_DEPTH🎨 VNC color depth24
VNC_RESOLUTION📐 VNC resolution1280x1024
APPUSER_PASSWORD👤 Appuser password(random if not set)
TZ🕒 TimezoneCET

💾 Volume Management

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

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

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

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