Skip to main content

Desktop App Overview

Complete guide for developing and running the Tauri desktop application.

📋 Table of Contents


🚀 Run Options

The desktop application can be run in three ways:

Install system dependencies (once):

Linux (Ubuntu/Debian)
sudo apt install -y \
libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
pkg-config

# Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
Windows
  1. Visual Studio 2022 Build Tools

  2. WebView2 Runtime (usually already installed on Windows 11)

  3. Rust

macOS
# Xcode Command Line Tools
xcode-select --install

# Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

Run the application:

cd apps/desktop
pnpm install
pnpm dev # Starts Tauri application with a native window

Advantages:

  • ✅ Full Tauri functionality
  • ✅ GPU hardware acceleration
  • ✅ Fast hot reload
  • ✅ Access to all native APIs

Option 2: Docker UI only

Runs only the Vite dev server without the Tauri backend.

# Start Vite dev server in container
docker compose --profile desktop up -d desktop

# Open in browser
http://localhost:1420

Limitations:

  • ✅ Shows React UI
  • ❌ No Tauri backend
  • ❌ No access to native APIs

Option 3: Docker with VNC

Full Tauri application with GUI access via browser.

Quick Start

# Stop the regular desktop container if running
docker compose --profile desktop down

# Start the VNC version
cd apps/desktop
docker compose -f docker-compose.vnc.yml up --build

⏱️ First build will take ~5-10 minutes (downloading dependencies, compiling Rust).

Accessing the application

1. noVNC (browser) - easiest

http://localhost:6080/vnc.html
  • Click "Connect"
  • Enter password: bitrate
  • You will see the desktop with the Tauri application

2. VNC client (RealVNC, TigerVNC, Remmina)

vnc://localhost:5900
  • Password: bitrate

🔌 Available Ports

For Option 2 (Docker UI only)

PortPurpose
1420Vite dev server

For Option 3 (Docker VNC)

PortPurpose
5900VNC server
6080noVNC (web interface)
1421Vite dev server

⚙️ Management Commands (VNC)

# Start in background
docker compose -f docker-compose.vnc.yml up -d --build

# View logs
docker compose -f docker-compose.vnc.yml logs -f

# Stop
docker compose -f docker-compose.vnc.yml down

# Enter container
docker compose -f docker-compose.vnc.yml exec desktop-vnc bash

# Rebuild without cache
docker compose -f docker-compose.vnc.yml build --no-cache

🔧 Configuration

Changing screen resolution (VNC)

In apps/desktop/docker-compose.vnc.yml:

environment:
- RESOLUTION=1920x1080x24 # change to desired

Available resolutions:

  • 1920x1080x24 (Full HD)
  • 1280x720x24 (HD)
  • 2560x1440x24 (2K)
  • 3840x2160x24 (4K)

🔍 Debugging

Check processes (VNC)

docker compose -f docker-compose.vnc.yml exec desktop-vnc ps aux | grep -E "Xvfb|x11vnc|tauri"

Manual application start

docker compose -f docker-compose.vnc.yml exec desktop-vnc bash
cd /app/apps/desktop
pnpm tauri dev

Check VNC

curl http://localhost:6080

View Tauri logs

docker compose -f docker-compose.vnc.yml logs | grep tauri

🐛 Common Issues

Black screen in VNC

Cause: Xvfb starts slowly on first boot.

Solution:

  • Wait 30-60 seconds after connecting
  • Check logs: docker compose -f docker-compose.vnc.yml logs -f
  • Make sure Xvfb is running: docker compose exec desktop-vnc ps aux | grep Xvfb

Error "port is already allocated"

Cause: Port is occupied by another container.

Solution:

# Stop the regular desktop container
docker compose --profile desktop down

# Or change ports in docker-compose.vnc.yml

Application doesn't appear

Cause: Tauri did not start or crashed.

Solution:

# Check if Tauri started
docker compose -f docker-compose.vnc.yml logs | grep tauri

# Enter container and start manually
docker compose -f docker-compose.vnc.yml exec desktop-vnc bash
cd /app/apps/desktop
pnpm tauri dev

VNC won't connect

Solution:

# Check if container is running
docker compose -f docker-compose.vnc.yml ps

# Check VNC server logs
docker compose -f docker-compose.vnc.yml logs | grep x11vnc

# Restart
docker compose -f docker-compose.vnc.yml restart

Slow performance

Cause: VNC runs without GPU acceleration.

Solution:

  • This is expected for VNC mode
  • For fast development, use local execution
  • VNC is intended for CI/CD or demonstrations

📊 Options Comparison

MethodTauri BackendGUIHot ReloadComplexitySpeedImage Size
LocalLowFast-
Docker UIBrowserLowFast~9.4 GB
Docker VNCMediumSlow~12.5 GB

When to use each option

Local run:

  • ✅ Daily development
  • ✅ Debugging Tauri functionality
  • ✅ Fast iteration

Docker UI only:

  • ✅ Testing React components
  • ✅ UI development without Tauri
  • ✅ Quick preview of changes

Docker VNC:

  • ✅ CI/CD GUI testing
  • ✅ Application demonstrations
  • ✅ Development on a remote server
  • ✅ No local GUI environment

📚 Additional Resources


⚡ Quick Commands

Local run

cd apps/desktop && pnpm dev

Docker UI

docker compose --profile desktop up -d desktop

Docker VNC

cd apps/desktop && docker compose -f docker-compose.vnc.yml up --build

Stop

docker compose --profile desktop down
# or
docker compose -f docker-compose.vnc.yml down