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.
- The repository is in Github.
- Also, you can find the docker images.
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
- Install a VPN (Wireguard, Headscale…)
- Configure NGINX with DuckDNS to point to the running Docker instance of the Webtop
- 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
- Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP - https://docs.linuxserver.io/images/docker-rdesktop/#version-tags
- Guacamole