Webtops in Docker

A webtop, short for “webtop computer” or “webtop environment,” is a concept that combines elements of a desktop computer and web-based applications. It refers to a desktop-like interface or operating system environment that runs entirely within a web browser.

A webtop typically provides a set of productivity tools and applications accessible through a web browser, allowing users to perform tasks such as word processing, spreadsheet management, email, and file management.

One of the main advantages of a webtop is its platform independence. Since it operates within a web browser, it can be accessed from various devices and operating systems, including desktop computers, laptops, tablets, and smartphones. This flexibility enables users to access their webtop environment and data from anywhere with an internet connection.

Yes, we are going to have a Linux inside Linux, inside…

Why using Webtops?

A webtop can improve productivity in several ways, especially in scenarios where you need to access your work or applications from different devices or locations.

  • Accessibility: With a webtop, you can access your work environment and applications from any device with a web browser, whether it’s your stationary computer, laptop, tablet, or smartphone. This flexibility allows you to continue your work seamlessly from different locations.

  • Syncing and Continuity: Webtops often provide synchronization capabilities, meaning your work and data are stored in the cloud and synced across devices. This ensures that you can pick up exactly where you left off, regardless of the device you’re using. For example, if you were working on a document on your stationary computer, you can access and edit the same document on your tablet at the cafe, maintaining continuity in your workflow.

  • Software Updates and Maintenance: With a webtop, you don’t need to manually update or maintain software applications on your devices. The webtop provider takes care of software updates and maintenance, ensuring that you’re always using the latest version without the hassle of installation or configuration.

  • Reduced Hardware Requirements: Since the webtop environment runs within a web browser, it reduces the hardware requirements for the devices you use. You don’t need high-end hardware to access and utilize the webtop, as most of the processing and resource-intensive tasks are handled on the server-side.

Webtop - Docker container

The project is managed by linuxserver, you can see their great documentation here.

I tried Ubuntu-KDE version directly from my browser as simple as using this docker-compose:

Pre-Requisites!! Just Get Docker 🐋👇

Important step and quite recommended for any SelfHosting Project - Get Docker Installed

It will be one command, this one, if you are in Linux:

apt-get update && sudo apt-get upgrade && curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh && docker version

And install also Docker-compose with:

apt install docker-compose -y
---
version: "2.1"
services:
  webtop:
    image: lscr.io/linuxserver/webtop:ubuntu-kde #latest #choose the one you want
    container_name: webtop3
    security_opt:
      - seccomp:unconfined #optional
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - SUBFOLDER=/ #optional
      - TITLE=Webtop #optional
    volumes:
      - /home/Docker/webtop3:/config
      - /var/run/docker.sock:/var/run/docker.sock #optional
    ports:
      - 2003:3000
      - 2033:3001
    devices:
      - /dev/dri:/dev/dri #optional
    shm_size: "2gb" #optional
    restart: unless-stopped
    networks:  #optional
      nginx_nginx_network:       #optional

networks:  #optional
  nginx_nginx_network:  #optional
    external: true         #optional

I found this project really useful also to try new distributions, for example Arch.

It has also helped me with some Docker builds for Shiny dashboards on ARM devices, where the dependencies to be installed were not clear for some libraries.

How to use Arch with a Webtop

---
version: "2.1"
services:
  webtop:
    image: lscr.io/linuxserver/webtop:arch-xfce #latest #choose the one you want
    container_name: webtop3
    security_opt:
      - seccomp:unconfined #optional
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - SUBFOLDER=/ #optional
      - TITLE=Webtop #optional
    volumes:
      - /home/Docker/webtop3:/config
      - /var/run/docker.sock:/var/run/docker.sock #optional
    ports:
      - 2003:3000
      - 2033:3001
    devices:
      - /dev/dri:/dev/dri #optional
    shm_size: "2gb" #optional
    restart: unless-stopped
    networks:  #optional
      nginx_nginx_network:       #optional

networks:  #optional
  nginx_nginx_network:  #optional
    external: true         #optional

How to use WebTops with https

NGINX + DuckDNS

Connecting to Webtops Through VPN

  1. Install a VPN (Wireguard, Headscale…)
  2. Configure NGINX with DuckDNS to point to the running Docker instance of the Webtop
  3. Use any browser to have a full desktop thanks to Webtops

How to develop anywhere with a WebTop

sudo apt install git
#git --version

# curl -O #.deb
# sudo dpkg -i portmaster-installer.deb

apt-get install wget
sudo wget https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg -O /usr/share/keyrings/vscodium-archive-keyring.asc #trust the packages that are signed by paulcarroty
echo 'deb [ signed-by=/usr/share/keyrings/vscodium-archive-keyring.asc ] https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs vscodium main' | sudo tee /etc/apt/sources.list.d/vscodium.list #add it to the sources list files
sudo apt update #update local packages cache
sudo apt install codium #just install VSCodium

#sudo apt remove codium


# sudo apt-get install flatpak
# flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# flatpak install flathub com.vscodium.codium

FAQ

Alternatives to WebTops