- Meet Webtops A Linux Desktop Environment In Your Browser
- For Users
- Basic Usage:
- Flavors:
- Authentication:
- Keeping Up to Date:
- For Developers
- Building an image:
- Autostart applications:
- Branding:
- We are here to help
- The 10 Best Websites to Run Linux in a Web Browser
- 1. CB.VU
- 2. CoCalc
- 3. Codeanywhere
- 4. Copy.sh
- 5. DistroTest
- 6. Linux Containers
- 7. JSLinux
- 8. JS/UIX Terminal
- 9. Tutorialspoint
- 10. Webminal
- Запуск и тестирование Linux прямо из браузера
Meet Webtops A Linux Desktop Environment In Your Browser
A lot of different Docker GUI solutions exist today, but what we always found is they were just missing some common sense stuff like:
- Pixel perfect resolution for rendering
- A basic window manager
- Audio support
- Using the RDP protocol
- Clipboard support
- On screen keyboard support
- Remote file management for uploads/downloads
Because we control the whole stack and went into this with the design philosophy of building a baseimage any Linux GUI app could be easily embedded in, doing a desktop environment where users could customize it to their needs by installing the packages they want, seemed like the logical next step.
For Users
Basic Usage:
Spinning up is relatively straightforward:
docker run -d \ --name=webtop \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/London \ -p 3000:3000 \ -v /path/to/data:/config \ --shm-size="1gb" \ --restart unless-stopped \ ghcr.io/linuxserver/webtop
Hop into http://localhost:3000 and you should be greeted with an Alpine XFCE desktop environment: On the left hand side of the screen is an arrow that will expand a menu with some baked in features, this menu can also be opened and closed using the keyboard combination of ctrl+alt+shift: From this menu you can launch a file browser, a keyboard overlay, or pull clipboard contents in and out of the desktop. The current webtop’s clipboard contents will be in the text area in the menu and any text you enter in there will be available on the webtop’s native clipboard. If you are a heavy user pressing ctrl+alt+shift to move clipboard contents in and out becomes second nature.
Flavors:
The image is also available in Ubuntu outside of just Alpine in the following Desktop environments installed and pre-configured:
Please take a look at the Github Repo for updated lists of supported tags:
Authentication:
By default the image is based around the abc user and we recommend using this user as all of the init/config is based around it. The default password is also abc . If you want to change this password and require authentication when accessing the interface simply issue passwd inside a gui terminal in the webtop. Then when accessing the web interface use the path:
http://localhost:3000/?login=true This will bring up xrdp’s default login manager where you can enter the credentials you set inside of the container.
If you are planning to publish this port to the internet to hop into your remote server first off never do it over plain http you will expose your credentials, also we highly recommend doing two layers of security and running something like SWAG with password authentication at the reverse proxy level:
Keeping Up to Date:
As stated previously baking a whole Linux desktop env is not really compatible with the classic Docker model, and because these are designed to be customized by the user inside the running container we highly recommend not using Docker to handle image updates. Your user’s home folder will stay in tact with it’s files and settings but you would lose any software you installed inside of the container. Instead just use Alpine and Ubuntu’s package managers to keep software up to date inside the container.
sudo apt-get update && sudo apt-get dist-upgrade -y
For Developers
Building an image:
We tried to make using our desktop base image for embedding a desktop application as easy as possible. Let’s take a look at an example Dockerfile for a Firefox container:
FROM lsiobase/rdesktop-web:alpine RUN \ echo "**** install packages ****" && \ apk add --no-cache \ firefox-esr && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* # add local files COPY /root / # ports and volumes EXPOSE 3000 VOLUME /config
On top of installing the app in the Dockerfile you need to create the file /root/defaults/autostart with the contents firefox .
And that’s it, when the container spins up and the user accesses the web interface on port 3000 Firefox will be launched in a basic Openbox gui: For a slightly more advanced example check out the LibreOffice image:
Autostart applications:
By default the desktop applications will only be launched when the user logs into the web interface, if you need your application to run on container spinup you will need to set the environment variable:
If the user changes the in container password from the default abc , they will also need to pass a password option to ensure the application autostarts:
Branding:
If you do not want the Linuxserver splash on container spinup make sure to include a modified one in your repo’s path /root/etc/cont-init.d/10-adduser , the only required logic is:
#!/usr/bin/with-contenv bash PUID=$ PGID=$ groupmod -o -g "$PGID" abc usermod -o -u "$PUID" abc chown abc:abc /app chown abc:abc /config chown abc:abc /defaults
We are here to help
If you have any questions about using these Webtop images or developing new containers based on our rdesktop-web baseimage just hop on Discord and ask:
The 10 Best Websites to Run Linux in a Web Browser
Have you been looking for a method to run Linux without setting up an environment from scratch? Today, we’re happy to present you with a list of the best websites that enable you to run Linux from the convenience of your already up and running system. They are listed in alphabetical order.
1. CB.VU
CB.VU is a JavaScript-based virtual terminal that runs in the browser without the need for connecting to a server or interacting with any system processes on your local machine.
From the moment you launch it, it welcomes you and logs you into a guest user account. It features an implementation of Vi text editor and supports file sharing.
2. CoCalc
CoCalc is a full online Linux terminal built to offer users a full, collaborative, real-time synchronized Linux terminal in your browser.
It requires no installation or maintenance and it features automatic backup, compiles programs, run scripts, copy/paste between local desktop and online terminal, and a side-chat for discussing commands with other collaborators in real-time.
3. Codeanywhere
Codeanywhere is a cloud IDE that allows users to deploy a development environment in seconds mainly for learning to code, build, and collaborate on development projects. All that you require to run a free Linux virtual machine is to sign up on the website and select the free plan.
Create a new connection, set up a container with the OS of your choice, and you will be good to go.
4. Copy.sh
Copy.sh is a full-fledged emulator that you can use to run Windows 98, Windows 1.01, FreeDOS, OpenBSD, KolibriOS, and Solar OS. It has a boot time of less than one minute. You should check it out.
5. DistroTest
DistroTest is a fun initiative that enables you to test your Linux commands in your web browser before installing an OS on your computer.
It supports over 300 Linux distros on top which you can install and uninstall any software you have permission to thanks to the full control that DistroTest gives to its users.
6. Linux Containers
Linux containers offer a distro and vendor-neutral environment for the development of Linux-based container technologies. I don’t know if you have heard about LXC, LXD, and LXCFS before, but Linux Containers is the main project behind them.
Alongside it is a 30-minute demo server which you can use a shell for running Linux terminals. And since it is sponsored by Canonical, you can rest assured that you’ll be getting a reliable setup.
7. JSLinux
JSLinux is a Linux emulator package with which you can run simple Linux versions in your web browser. As you might have already guessed from the title, it is written in JavaScript.
It has quickly become one of the most popular emulators in the field thanks to its support for all modern browsers. The available emulated systems include Alpine Linux 3.12.0, Windows 2000, FreeDOS, and Fedora 33.
8. JS/UIX Terminal
JS/UIX terminal is a terminal written in JavaScript. It features a shell, a virtual machine, a virtual file system, keyboard mapping, a screen, and support for ASCII character sets.
It requires no plugins or user accounts and is an ideal environment for brushing up on your Linux command skills. If you need technical information on its usage, that’s readily available via a simple command.
9. Tutorialspoint
Tutorialspoint is one of the world’s biggest learning hubs with hundreds, if not thousands, of materials for different academic fields such as office productivity, data science, artificial intelligence, business, programming, etc.
It features an integrated coding environment for different programming and scripting languages. With it, you can run a CentOS terminal in your browser which takes just under ten seconds to load.
10. Webminal
Webminal is a free GNU/Linux online terminal and programming IDE designed for users to learn about Linux, practice, play, and interact with other Linux users.
With it, you can run up to 10 simultaneous processes, create groups for file sharing, run debugging scripts, and enjoy up to 100MB of storage space.
It also has MySQL features that allow you to create up to 4 tables and execute up to 200 queries per hour.
So that’s it, folks! Which websites will you be testing some Linux distros on today? Which ones have you already used? And which ones do you think should be on this list? Drop your comments below.
Запуск и тестирование Linux прямо из браузера
Еще не используете ОС на базе Linux и хотите попробовать, либо немного устали от Windows, то следующие онлайн-сервисы помогут вам попробовать Linux без всяких установок прямо через ваш браузер.
Как уже было сказано, преимущество состоит в том, что не нужно ничего устанавливать на компьютер. Все сервисы представляют собой эмуляторы, в точности копирующие настоящую Linux.
Webminal — уникальная платформу онлайн-обучения, где вы можете узнать о Linux, попрактиковаться и поиграть с Linux. Сервис позволяет практиковать команды Linux, писать сценарии bash, создавать таблицы MySQL и обращаться к ним, изучать программирование на Python, C, Ruby, Java, Rust и выполнять основные задачи пользователя root на виртуальной платформе.
DistroTest — предлагает множество операционных систем, которые вы можете протестировать прямо в режиме онлайн без установки. Для операционной системы нет ограничений: вы можете использовать все функции системы, удалять и устанавливать программы и даже удалять или форматировать жесткий диск или системные файлы.
JSLinux — это полнофункциональный эмулятор Linux, разработанный на JavaScript и полностью работающий в любом браузере.
copy.sh — позволяет запустить эмулятор как Linux, так и множества других операционных систем, таких как Windows, React OS и многие другие.
JS/UNIX — это простой терминал Unix-подобной системы, где с помощью гостевого логина вы можете практиковаться в различных командах.
WebVM — виртуальная среда Linux, полностью работающая через браузер. Используется модифицированный дистрибутив Debian, включающий множество инструментов разработки.
Конечно же это далеко не все эмуляторы операционных систем. Однако описанных в данной статье может быть достаточно, чтобы протестировать Linux или любую другую систему.