Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

browser.vision - Docker

A containerized environment for running Vision antidetect browser with VNC remote desktop access. This setup provides a complete Debian desktop environment (XFCE4) accessible through your web browser via noVNC.

Overview

This project packages Vision in a Docker container with:

  • Debian 13 (trixie) slim base image
  • XFCE4 desktop environment
  • VNC server (TigerVNC) for remote desktop access
  • noVNC web interface for browser-based VNC access
  • Chromium browser pre-installed (from Debian repos) to ensure that required browser packages are installed
  • Vision automation tool

Note: Vision ships x86-64 (amd64) packages only, so the image is built for linux/amd64. On ARM hosts (e.g. Apple Silicon) it runs under emulation (Rosetta/QEMU), which works but is slower than native.

Features

  • πŸ–₯️ Browser-based access: Connect to the desktop environment directly from your web browser
  • πŸ”’ Sandboxed environment: Runs as non-root user (sandbox) for security
  • πŸš€ Easy deployment: Simple Docker Compose setup
  • πŸ”„ Auto-restart: Container automatically restarts unless explicitly stopped
  • πŸ“¦ Pre-configured: All dependencies and tools ready to use
  • βš™οΈ Runtime configuration: VNC password and resolution configurable via environment variables
  • πŸ’Ύ Persistent data: Vision login session and profile data survive container recreation via named volumes

Prerequisites

  • Docker (version 20.10 or higher)
  • Docker Compose (version 1.29 or higher)
  • At least 4GB of available RAM
  • Modern web browser (Chrome, Firefox, Safari, or Edge)

Quick Start

1. Clone the Repository

git clone <repository-url>
cd vision-docker

2. Build and Run

docker-compose up -d

This will:

  • Build the Docker image (first time only, may take 5-10 minutes)
  • Start the container in detached mode
  • Expose ports 6080 (noVNC) and 3030 (Vision HTTP server)

3. Access the Desktop

Open your web browser and navigate to:

http://localhost:6080/vnc.html

VNC Password: password

4. Access Vision API

Vision API server is available at:

http://localhost:3030

Usage

Starting the Container

docker-compose up -d

Stopping the Container

docker-compose down

Viewing Logs

docker-compose logs -f

Rebuilding the Image

If you make changes to the Dockerfile:

docker-compose up -d --build

Updating Vision

The Dockerfile checks the upstream version endpoint (https://v1.empr.cloud/get/version) on every build, so:

docker-compose up -d --build

is an idempotent update command β€” if no new Vision version is out, the build fully hits the cache and the running container is left untouched; if a new version is out, only the Vision layer is rebuilt and the container is recreated. Login session and profile data survive the update thanks to the named volumes.

To update automatically, schedule that command on the host, e.g. cron:

0 4 * * * cd /path/to/vision-docker && docker compose up -d --build

The installed version is printed on startup (docker-compose logs | grep "Vision version").

Accessing the Container Shell

docker-compose exec vision bash

Architecture

Dockerfile

The Dockerfile creates a multi-layered Debian environment:

  1. Base System: Debian 13 (trixie) slim with locale and core utilities
  2. Desktop Environment: XFCE4 (TigerVNC's built-in X server is used, so no separate X.org stack is needed)
  3. VNC Stack: TigerVNC server + noVNC + websockify
  4. Browser: Chromium from the official Debian repositories
  5. Vision: Latest version from official source
  6. User Setup: Non-root sandbox user with passwordless sudo

Entrypoint Script

The entrypoint.sh script handles container initialization:

  1. Sets up environment variables
  2. Starts the system D-Bus daemon
  3. Sets the VNC password and starts TigerVNC's X server (Xtigervnc) on display :1
  4. Starts a D-Bus session with the XFCE4 desktop
  5. Launches noVNC web interface
  6. Starts Vision
  7. Maintains container with log tailing

Docker Compose

The docker-compose.yml provides:

  • Platform: linux/amd64 (Vision only ships x86-64 packages)
  • Shared memory: 4GB allocated for browser operations
  • Host networking: all ports are exposed via network_mode: host
  • Named volumes: Vision data persists across container recreation
  • Restart policy: Automatic restart unless stopped

Data Persistence

Vision state is stored in two named volumes:

Volume Mount point Contents
vision-app ~/.local/share/com.vision.antidetect App WebKit storage: your Vision login session, local storage, caches
vision-data ~/.local/share/Vision Profile data and browser engines

The volumes survive docker-compose down, rebuilds, and image upgrades. To wipe all Vision data and start fresh:

docker-compose down -v

Ports

Port Service Description
6080 noVNC Web-based VNC client interface
3030 Vision Vision API server
5901 VNC VNC server (bound to localhost inside the container only)

Configuration

The entrypoint reads the following environment variables (set them in docker-compose.yml under environment:):

Variable Default Description
VNC_PASSWORD password VNC/noVNC password
VNC_GEOMETRY 1280x800 Desktop resolution
VNC_DEPTH 24 Color depth
VISION_HTTP_SERVER 0.0.0.0:3030 Address the Vision API server listens on

Example:

    environment:
      VNC_PASSWORD: "my-secret"
      VNC_GEOMETRY: "1920x1080"
      VISION_HTTP_SERVER: "0.0.0.0:3030"

Changing User Credentials

Edit the useradd line in the Dockerfile:

echo "sandbox:your-new-password" | chpasswd && \

Troubleshooting

Container won't start

Check logs:

docker-compose logs

Can't connect to noVNC

  1. Verify container is running: docker-compose ps
  2. Check port isn't already in use: lsof -i :6080
  3. Try accessing via container IP directly

Black screen in VNC

  1. Check VNC logs: docker-compose exec vision cat ~/.vnc/Xtigervnc.log ~/.vnc/xfce.log
  2. Restart the container: docker-compose restart

Vision not starting

  1. Check if Vision process is running: docker-compose exec vision ps aux | grep Vision
  2. Verify Vision installation: docker-compose exec vision which Vision
  3. Check Vision logs in container output

Performance issues

  • Increase shared memory in docker-compose.yml (currently 4GB)
  • Allocate more CPU/RAM to Docker
  • Reduce VNC screen resolution
  • On ARM hosts, remember the container runs under x86-64 emulation; prefer an x86-64 host for production

Security Notes

⚠️ Important Security Considerations:

  1. Default passwords: Change the default VNC password (password) and user password before deploying in production
  2. Network exposure: By default, ports are exposed on all interfaces (0.0.0.0). Consider restricting to localhost or using a reverse proxy
  3. Sudo access: The sandbox user has passwordless sudo. Remove if not needed
  4. No authentication: noVNC has no additional authentication beyond VNC password
  5. Production use: This setup is designed for development/testing. For production, add:
    • SSL/TLS encryption
    • Proper authentication
    • Network isolation
    • Regular security updates

System Requirements

  • CPU: 2+ cores recommended (x86-64 native preferred)
  • RAM: 4GB minimum, 8GB recommended
  • Disk: 5GB for image + additional space for usage
  • Network: Internet connection for building image

License

This project configuration is provided as-is. Please refer to individual component licenses:

Contributing

Feel free to submit issues and enhancement requests!

Acknowledgments

  • Vision team for the automation tool
  • noVNC project for browser-based VNC access
  • XFCE team for the lightweight desktop environment

About

Example to set up Vision antidetect browser in Docker container

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages