Linux containers with full desktop environments accessible trough a web browser.
You can choose from these distros and desktops.
Distro | Flavour |
---|---|
Ubuntu | |
Fedora |
To setup the container, you can use the docker cli, or docker compose. Don't forget to change the image tag to your desired desktop variant!
docker-compose (recommended)
---
services:
webtop:
image: ghcr.io/tibor309/webtop:ubuntu-cinnamon
container_name: webtop
security_opt:
- seccomp:unconfined #optional
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- SUBFOLDER=/ #optional
- TITLE=Webtop #optional
volumes:
- /path/to/data:/config
- /var/run/docker.sock:/var/run/docker.sock #optional
ports:
- 3000:3000
- 3001:3001
devices:
- /dev/dri:/dev/dri #optional
shm_size: "1gb" #optional
restart: unless-stopped
docker run -d \
--name=webtop \
--security-opt seccomp=unconfined `#optional` \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e SUBFOLDER=/ `#optional` \
-e TITLE=Webtop `#optional` \
-p 3000:3000 \
-p 3001:3001 \
-v /path/to/data:/config \
-v /var/run/docker.sock:/var/run/docker.sock `#optional` \
--device /dev/dri:/dev/dri `#optional` \
--shm-size="1gb" `#optional` \
--restart unless-stopped \
ghcr.io/tibor309/webtop:ubuntu-cinnamon
This container is based on the linuxserver.io kasmvnc base image, so you can use their mods and additional configs if you want.
Parameter | Function |
---|---|
-p 3000 |
Web Desktop GUI |
-p 3001 |
Web Desktop GUI HTTPS |
-e PUID=1000 |
For UserID |
-e PGID=1000 |
For GroupID |
-e TZ=Etc/UTC |
Specify a timezone to use, see this list. |
-e SUBFOLDER=/ |
Specify a subfolder to use with reverse proxies, IE /subfolder/ |
-e TITLE=Webtop |
String which will be used as page/tab title in the web browser. |
-v /config |
abc user's home directory, stores local files and settings |
-v /var/run/docker.sock |
Docker Socket on the system, if you want to use Docker in the container |
--device /dev/dri |
Add this for GL support (Linux hosts only) |
--shm-size= |
We set this to 1 gig to prevent modern web browsers from crashing |
--security-opt seccomp=unconfined |
For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. |
To access the container, navigate to the ip address for your machine with the port you provided at the setup.