Get Started in Minutes

Deploy TestHide with Docker or set up distributed agents across your infrastructure.

Deploy with Docker Compose

1

Create docker-compose.yml

Terminal
version: '3.8'

services:
  backend:
    image: thuesdays/testhide-backend:latest
    restart: always
    env_file: .env
    depends_on:
      - mongo
      - memcached
    networks:
      - testhide-net
    volumes:
      - ./ssl:/etc/ssl:ro
      - testhide_static:/app/static
      - testhide_releases:/app/releases

  ai-worker:
    image: thuesdays/testhide-backend:latest
    restart: always
    entrypoint: ["python", "-c", "import app.ai_assist.worker.ai_worker; app.ai_assist.worker.ai_worker.main()"]
    env_file: .env
    depends_on:
      - backend
      - mongo
    networks:
      - testhide-net
    volumes:
      - ./ssl:/etc/ssl:ro
      - testhide_static:/app/static
      - testhide_releases:/app/releases

  frontend:
    image: thuesdays/testhide-frontend:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
    env_file: .env
    depends_on:
      - backend
    networks:
      - testhide-net
    volumes:
      - ./ssl:/etc/ssl:ro

  mongo:
    image: mongo:8.2.3
    restart: always
    command: ["mongod", "--auth", "--wiredTigerCacheSizeGB", "1"]
    env_file: .env
    ports:
      - "27017:27017"
    volumes:
      - ${MONGO_DATA_PATH}:/data/db
    networks:
      - testhide-net

  memcached:
    image: memcached:1.6-alpine
    restart: always
    networks:
      - testhide-net

volumes:
  testhide_data:
  testhide_static:
  testhide_releases:

networks:
  testhide-net:
    driver: bridge
2

Configure Environment (.env)

Terminal
# === URLs & Connectivity ===
FRONTEND_PUBLIC_URL=https://your-domain.com
PUBLIC_API_URL=https://your-domain.com
PUBLIC_WS_URL=wss://your-domain.com
CORS_ORIGINS=https://your-domain.com

# === Application Settings ===
PORT=8080
PRODUCTION=true
DEBUG=false

# === Database ===
MONGO_HOST=mongo
MONGO_PORT=27017
MONGO_DB_NAME=testhide
MONGO_USER=testhide
MONGO_PASS=secure_password_here
MONGO_DATA_PATH=/home/your_user/testhide_db

# Mongo Init (first run only)
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=root_password
MONGO_INITDB_DATABASE=testhide

# === Caching ===
MEMCACHED_HOST=memcached
MEMCACHED_PORT=11211

# === Security ===
JWT_SECRET=change_this_to_a_random_secure_string

# === SSL/TLS ===
USE_SSL=true
CERT_KEY=/etc/ssl/testhide.key
CERT_FILE=/etc/ssl/testhide.crt
3

Start the Stack

Terminal
# Start all services in the background
docker-compose up -d

# Check logs
docker-compose logs -f

System Requirements

Server

  • Docker 20.10+
  • Docker Compose 2.0+
  • 4GB RAM minimum
  • MongoDB 5.0+

Agent

  • .NET 6 Runtime
  • 2GB RAM minimum
  • Network access to server
  • Any OS: Win/Linux/Mac