Webtop is a Linux desktop environment in a browser. You can learn more about Webtop from the links below:
Webtop is a nice little container that allows you to run a Linux desktop in a container. This container gives you access to a Linux desktop complete with GUI, Browser, File Manager, and more! This container also allows you to manage docker from inside the container. We have not played around and tested this container a ton because we don't really need a desktop in a container but it is a neat little container and it could be pretty useful to know about.
Just like we did on our VS Code service page, we ran apk update && apk add git nodejs npm
and git cloned a three.js starter pack and deployed a local webserver at localhost:8080. This site cannot be accessed on the host machine but you can set up an Nginx-Reverse-Proxy host going to webtop_webtop
at port 8080 (Follow the steps in Webtop Domain Setup and change the port to achieve this.) and access it on the host machine from the URL of your choosing.
This is just providing an example of how you may want to use this container.
We are going to assume you already have a working server with Docker, Portainer, and Nginx Proxy Manager running. We will go over the compose for the stack and configuring Nginx-Proxy-Manager. We are not using our own images for this stack so please consult the Docker hub and GitHub links for more information regarding the Docker image and source code.
This is strictly how to get the app running. Once again, we cover how to do this at TrueFreedomTech.com in much more detail! This should be good enough to get beginners running, and experts should be able to adapt this to their own configuration with relative ease.
Step 1: Go to Stacks.
Step 2: Click Add Stack.
Step 3: Name your stack (Ex. webtop).
Step 4: Paste in the contents below:
Step 5: Press Deploy the Stack.
![]() |
![]() |
![]() |
#Docker-compose version
version: "3.8"
#Apps
services:
#Name of app
webtop:
#Docker image
image: ghcr.io/linuxserver/webtop
#Docker network
networks:
- nginx-public
#Ports to expose
ports:
- 3000:3000
#App restart policy
restart: unless-stopped
#App data
volumes:
- config:/config
- /var/run/docker.sock:/var/run/docker.sock
shm_size: "1gb" #optional
#Environmental variables
environment:
#User ID
- PUID=1000
#Group ID
- PGID=1000
# Find more information about TZ here: (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
- TZ=America/New_York
networks:
nginx-public:
external: true
volumes:
config:
Before we configure our apps, we will set up our domains using Nginx-Proxy-Manager. If you followed our Nginx-Proxy-Manager stack setup you should be able to copy everything we do step by step.
Step 1: Copy the Heimdall service name.
This should be webtop_webtop
if you did not change the names of apps.
Step 2: Log in to Nginx-Proxy-Manager and create a new proxy host.
Step 3: Enter your Domain name (Ex. webtop.example.com)
Step 4: Add the service name to the Forward Hostname / IP at port 3000.
Step 5: Enable Cache Assets, Block Common Exploits, and Websockets Support.
Step 6: Click Save.
Step 7 (Optional): Enable SSL (we say this is optional, but you should always have an SSL cert if possible).
![]() |
![]() |
![]() |
![]() |
After setting up your domain name it's time to finish configuring the app. Go to the URL you chose for your application. You should arrive at a screen like this!
(If you do not arrive at a screen like this, something is wrong! Our premium members can open a support ticket Here!)
Congrats! This is the basic setup for Webtop, as mentioned at the beginning we have a more in-depth course available at TrueFreedomTech.com.
If you want to add a little bit more security to your webtop container you can add AUTO_LOGIN=false
to the docker-compose under environmental variables.
EX.
environment:
#User ID
- PUID=1000
#Group ID
- PGID=1000
# Find more information about TZ here: (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
- TZ=America/New_York
# Enable/Disable Login by Default
- AUTO_LOGIN=false
The default login is:
User: abc
Pass: abc
We have not tried to change this information and Linux Server themselves say they do not recommend exposing Webtop to the public.