Webtop (mate-ubuntu)¶
Openbox-ubuntu is now deprecated as it’s not supported by the new Linuxserver Selkie container.
Use environment variable for fixed desktop size 2048x1024
services:
webtop:
image: lscr.io/linuxserver/webtop:amd64-ubuntu-openbox
container_name: webtop-openbox
security_opt:
- seccomp:unconfined #optional
- apparmor:unconfined
environment:
- PUID=1000
- PGID=1001
- TZ=America/Vancouver
- SUBFOLDER=/ # For reverse proxy
- TITLE=WebtopMate # The title as it shown in browser
volumes:
- ~/docker/webtop/config:/config # default home folder
- /mnt/data:/mnt/data
- /var/run/docker.sock:/var/run/docker.sock # Run docker inside docker
ports:
- 3050:3000
cap_add:
- SYS_ADMIN
shm_size: "1gb" #optional
restart: unless-stopped
- the
apparmorandSYS_ADMINis required
The default installation with config folder copied is not usable. Packages to be installed
packages removed in Selkies version (some are pre-installed)
ntp nitrogen lxappearance compton tint2 nitrogen fonts-wqy-zenhei language-pack-zh-hans mousepad spacefm
apt update
apt install wget curl rsync vim unrar unzip xarchiver p7zip libmpv-dev vlc ffmpeg mediainfo mediainfo-gui fzf firefox less
- SubtitleEdit no longer need Mono to run as it can run portably on Linux
- functionalities like OCR and spellcheck won’t be used so
tesseractandlibhunspellis not needed - SubtitleEdit 5 Chinese fonts display properly without needing to install Chinese fonts
Desktop (tint2, nitrogen)
- nitrogen cannot keep scaled option after restarting and needs to change it manually
- nitrogen wallpaper are found in /config/Pictures/wallpaper.jpg
Panel¶
tint2 related customization is no longer used, the default one from MATE will be used.
Manual Steps¶
Add spacefm into MATE startup application.
Firefox Browser¶
Proot librewolf is also deprecated, the new setup uses the standard firefox installed from apt because proot librewolf always runs on top and fails to interact with other applications. When it spawns other apps like file manager or xarchiver, these are buried under firefox.
When migrating firefox, except for policies.json, everything is stored in /config/.mozilla, no additional configuration needed.
Firefox now uses proot-apps where installation and each customization steps are preserved in the home folder and there is no longer need to automate provisioning
To migrate from existing browser to librewolf new, copy the files from
Some notable locations
~~- ~~places.sqlite - browser history, pinned apps on home
- extensions/ - the extensions file
It’s not possible to export extension data, so these must be exported manually
Tampermonkey - Dashboards > Utilities > Zip > Export
FoxyProxy - Options > Export
By default, it’s not possible to set dark theme for librewolf
- Settings > Librewolf settings > uncheck resist fingerprint
- Settings > Extension & Themes > Themes > Enable the Dark Theme
- Settings > Appearance > Website appearance > Dark
Re-enable Google search engine (may need to edit policies.json)
~~- restore default search engine
switch to Google
Manual Configs
- ublock add Chinese filter
- pin bookmarks
- remove default bookmarks and getting started from toolbar
Files¶
SpaceFM
- upon installing, with config copied over, everything works fine
- configuration is stored in
~/.config/spacefm
Movie-Renamer Script
- works after copying
Subtitles¶
Subtitle Edit¶
Install dependencies
Download subtitle-edit
SubtitleEdit can now be run portably without using Mono
Subtitle-Edit Dark theme has to be changed manually
Options->Settings->Appearance->Use Dark ThemeOptions->Settings->Syntax Coloring->Error colorand change to27111DOptions->Settings->Appearance->UI Font->Generaland change toWenQuanYi Zen Hei
Autoshutdown¶
The new Linuxserver webtop uses substantial CPU/RAM where it may be needed to use container autostart to shutdown when it’s not needed
Using lazytainer
On lazytainer configuration
services:
lazytainer:
image: ghcr.io/vmorganp/lazytainer:master
container_name: lazytainer
ports:
- 3001:3001
labels:
- "lazytainer.group.webtop.pollRate=5"
- "lazytainer.group.webtop.inactiveTimeout=20"
- "lazytainer.group.webtop.ports=3001"
- "lazytainer.group.webtop.sleepMethod=stop"
- "lazytainer.group.webtop.minPacketThreshold=10"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Labels on webtop
pollRatechecks for traffic every 5 secondsminPacketThresholddetect if there are more than 10 packets than it will start the container- by default the value is 30 packets
- each inaccessible attempt generate a SYN and RST, so with threshold of 10, user need to refresh the page 5 times
It’s not recommended to manually stop the container before the timeout, as the container will be quickly spun up again. Use the automatic timeout from Lazytainer instead
Obsidian Webtop¶
Make sure to close everything in Obsidian to reduce CPU usage.
services:
obsidian:
image: lscr.io/linuxserver/obsidian:latest
container_name: obsidian
security_opt:
- seccomp:unconfined #optional
environment:
- PUID=1000
- PGID=1001
- TZ=America/Vancouver
- SUBFOLDER=/obsidian/
- TITLE=Obsidian
volumes:
- ~/docker/obsidian-webtop:/config
- ~/Documents/notes:/notes
networks:
- public
ports:
- 3010:3000
devices:
- /dev/dri:/dev/dri
shm_size: "1gb"
restart: unless-stopped
networks:
public:
name: public
external: true
- standard procedure for PUGID, TZ and docker networks
- optional environment variable
PASSWORDfor HTTP basic auth SUBFOLDERcan be used for reverse proxy with custom location
Authentication¶
Setup of webtop with Authelia require more configurations. Needs to manually configure the custom location in Nginx Proxy Manager just like bluemap.
location /obsidian/ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
include /snippets/proxy.conf;
include /snippets/authelia-authrequest.conf;
proxy_pass http://10.10.120.12:3010/obsidian/;
}
- the
proxy_set_headerlines are required because of websocket
Authelia configuration (need whitelist VNC assets)
- domain: "basedomainforsubfolder.mywire.org"
resources:
- "socket.io/*"
- "public/*"
- "vnc/*"
policy: bypass
- domain: "basedomainforsubfolder.mywire.org"
policy: one_factor