3.7 KiB
3.7 KiB
Service Setup Guide: Webtop
Webtop provides a full Linux desktop environment (Ubuntu XFCE) directly in your web browser.
1. Pre-Setup (Manual)
Create Service User
- Manual: Create a local user named
svc-webtopin Synology DSM (Control Panel > User & Group). - Manual: Give this user read/write access to the
dockershared folder.
Get User IDs
- Manual: SSH into your NAS and run
sudo synouser --get svc-webtop. - Confirmed IDs: Locate the
User ID(PUID) andGroup ID(PGID). - Action: Open
create_webtop_folders.shand update theUSER_ID="[PUID]:[PGID]"line. - Action: Open
stack.envand update thePUIDandPGIDvariables.
2. Infrastructure Setup
Run Setup Script
- Action: Run the setup script in Dry-Run mode to verify changes:
sudo bash create_webtop_folders.sh - Action: Apply the folder creation and ownership settings:
sudo bash create_webtop_folders.sh --run - What it does:
- Creates
/volume1/docker/webtop/configwhich acts as the persistent home directory (/config) for your virtual desktop. - Sets ownership securely to the
svc-webtopuser so the container process can write to it.
- Creates
3. Portainer Deployment
Environment Variables
- Action: Review
stack.env. You can customize the browser tab name by editingTITLE.
Deploy Stack
- Action: Create a new stack named
webtop-stack. - Action: Upload or paste the environment variables from
stack.env. - Action: Paste the content of
docker-compose.portainer.ymland deploy. - Verification: Access the Webtop desktop interface at
http://[NAS_IP]:3030.
4. Post-Setup Notes
- Persistent Data: Everything saved strictly within the virtual
~or/configdirectory is retained. If you want to access your real NAS files (like your ebooks or movies) from inside this desktop, you can uncomment and map/volume1/mediain thedocker-compose.portainer.ymlfile. - Security Opt: The
seccomp:unconfinedflag is enabled. This is required to run multi-process modern browsers (like Google Chrome or Firefox) natively inside the container without crashing. - Execution User: Unlike some custom containers, Linuxserver.io images (like Webtop) handle user switching natively inside the container. Do not forcefully apply the
user:directive in Docker Compose, as it will break the container's boot process which relies on root purely to set permissions before downgrading to the PUID/PGID.
5. Security: Cloudflare Zero Trust (Required for Internet Exposure)
Caution
The Webtop container gives anyone who accesses it a passwordless root terminal (
sudo) within the container. You must not expose this to the public internet (e.g., via Cloudflare Tunnel) without an authentication layer in front of it.
If you are routing webtop.chengs.uk through a Cloudflare Tunnel, follow these steps to secure it with Cloudflare Access:
- Go to your Cloudflare Zero Trust Dashboard (
one.dash.cloudflare.com). - Navigate to Access -> Applications and click Add an Application.
- Choose Self-hosted.
- Application Configuration:
- Application Name: Webtop NAS
- Subdomain:
webtop - Domain:
chengs.uk
- Add a Policy:
- Policy Name: Allow Admin Only
- Action: Allow
- Include: Select Emails and type your personal email address (e.g.,
your-email@gmail.com).
- Save the application.
Now, when you visit webtop.chengs.uk, you will be intercepted by a Cloudflare login screen. Cloudflare will email you a one-time pin, verifying your identity before you are allowed to reach the Webtop desktop.