Skip to content

arcxteam/Chrome-Linux-Desktop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Setup Installation Full-control Browser Google Chrome on Linux (Server/VPS)

image

Note

KasmVNC is a modern open source VNC server. Enhanced security, higher compression, smoother encoding... all in a web-based client. Connect to your Linux server's desktop from any web browser. No client software install required. And for XFCE is a lightweight desktop environment for UNIX-like operating systems. It aims to be fast and low on system resources. For more information visit https://www.xfce.org & https://kasmweb.com/kasmvnc

For Comparison & List of Desktop Environments https://eylenburg.github.io/de_comparison.htm

(1) By KasmVNC Workspaces only client browser

(2) By Xfce Linux desktop environments (DE) GUI

System Requirements

VPS Linux Docker Chrome

Component Minimum
OS Ubuntu 20-24 LTS
CPU Cores 2-4 vCPU
RAM/VRAM Min 512MB-4GB
STORAGE Up to free space
NETWORK Open port for access
Component Kasm-Chrome Xfce-Desktop GUI
Access KasmVNC client noVNC client
Support Web browser Web browser & app/mobile
Port/Firewall 6901 (default) 8080 (custom) app/mobile
8081 (custom) browser

Note: You can setup up to you for Port/Fiewall in (custom) & for Xfce-desktop, if dont access in app/mobile skipping open port for 8080

System Update & Essential Tools

sudo apt update && sudo apt upgrade -y \
sudo apt -qy install curl unzip git nano jq lz4 build-essential screen ufw

Install Docker & Compose → if not yet

curl -sSL https://raw.githubusercontent.com/arcxteam/succinct-prover/refs/heads/main/docker.sh | sudo bash

Required Firewall Port

sudo ufw allow 6901/tcp # KasmVNC
sudo ufw allow 8081/tcp # noVNC web browser
sudo ufw allow 8080/tcp # RealVNC viewer app/mobile 
sudo ufw enable
sudo ufw status verbose

1. Kasm Workspaces - Quick Install

Auto Install: EDIT first YOUR_PASSWORD

curl -s https://raw.githubusercontent.com/arcxteam/Chrome-Linux/refs/heads/main/Setup-Kasmweb-Chrome.sh | bash -s "YOUR_PASSWORD"

Manual Installation

If you prefer to run manually, edit your password VNC_PW=YOUR_PASSWORD

# Create directory
mkdir -p ~/kasm-chrome
cd ~/kasm-chrome

# Create docker-compose.yml
cat > docker-compose.yml << EOF
services:
  chrome:
    image: kasmweb/chrome:1.17.0
    container_name: kasm-chrome
    environment:
      - VNC_PW=YOUR_PASSWORD # Setup up to u
    ports:
      - "6901:6901"
    shm_size: 1g # Setup up to u
    restart: unless-stopped
    volumes:
      - ./downloads:/home/kasm-user/Downloads
EOF

# Start service
docker compose up -d

Access by Browser

Steps to Access:

Get → IP Address Server

curl ifconfig.me && echo
  1. Open URL Navigate to → https://YOUR_SERVER_IP:6901
  2. Accept SSL Certificate Click AdvancedProceed to site
  3. Login
    • Username: kasm_userdefault
    • Password: passwordyour custom password
  4. Bookmark access tab

2. Xfce Desktop GUI - Quick Install

Manual Installation

If you prefer to run manually, edit your password VNC_PW=YOUR_PASSWORD

# Create directory
mkdir -p ~/desktop
cd ~/desktop

# Create docker-compose.yml
cat > docker-compose.yml << EOF
services:
  xfce-desktop:
    image: accetto/ubuntu-vnc-xfce:latest
    container_name: xfce-desktop
    restart: unless-stopped
    ports:
      - "8080:5901"  # App/mobile access, remove not use
      - "8081:6901"  # Web access
    environment:
      - VNC_RESOLUTION=1280x720 # for the best 1920x1080
      - VNC_PW=YOUR_PASSWORD # up to u
      - ENABLE_VNC_AUDIO=true
      - ENABLE_VNC_COPY=true
      - ENABLE_VNC_PASTE=true
    volumes:
      - xfce-data:/home/headless
      - ./downloads:/home/headless/Downloads
    shm_size: 2gb # up to u
    networks:
      - desktop-network

volumes:
  xfce-data:
    driver: local

networks:
  desktop-network:
    driver: bridge
EOF

# Start service
docker compose up -d

Open container docker

docker exec -it xfce-desktop bash

In container, download google chrome:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -O /tmp/chrome.deb
apt update
apt install -y unzip autocutsel engrampa /tmp/chrome.deb
apt install -y --fix-broken
rm /tmp/chrome.deb

Create google chrome icon and relaunch

cat > ~/Desktop/google-chrome.desktop << 'EOF'
[Desktop Entry]
Version=1.0
Type=Application
Name=Google Chrome
Comment=Access the Internet
Exec=google-chrome --no-sandbox --disable-dev-shm-usage --disable-gpu --test-type
Icon=google-chrome
Categories=Network;WebBrowser;
Terminal=false
EOF

Update & Permission

chmod +x ~/Desktop/google-chrome.desktop &&
update-desktop-database

Test Chrome version & exit container

google-chrome --version &&
exit

Steps to Access:

Get → IP Address Server

curl ifconfig.me && echo

1. Access by Web browser

  1. Open URL Navigate to → http://YOUR_SERVER_IP:8081/vnc.html
  2. You can see menu dashboard noVNC
  3. Connect
    • Credentials: passwordyour custom password
  4. Bookmark access tab

2. Access by VNC on app/mobile

  1. Download App VNC viewer Support like TigerVNC, RealVNC
  2. RealVNC (recommend) iOS/Android https://www.realvnc.com/en/connect/download/viewer/
  3. Connect
    • Address: ip-address+portYOUR_SERVER_IP:8080
    • Name: Up to you
  4. Browsing on app/mobile

Management Commands

## Check Status & realtime resources
- docker ps | grep kasm-chrome
- docker ps | grep xfce-desktop
- docker stats

## View Logs
- docker logs -f kasm-chrome
- docker logs -f xfce-desktop

## Stop and Run Browser
- cd ~/kasm-chrome
- cd ~/desktop
- docker compose down
- docker compose up -d