xpipe-io / xpipe-webtop

A containerized web-based desktop environment for XPipe
https://xpipe.io/
GNU General Public License v3.0
11 stars 0 forks source link
docker

XPipe Webtop

XPipe Webtop is a web-based desktop environment that can be run in a container and accessed from a browser via KasmVNC. The desktop environment comes with XPipe and various terminals and editors preinstalled and configured. This docker image is a fork of https://github.com/linuxserver/docker-webtop.

Application Setup

The Webtop can be accessed at:

Authentication

Note that the authentication setup has to be done by you. By default, there is no authentication enabled and the webtop will be available to everyone. So you have to be careful not to publicly expose it in that state. As seen below, there are options to use basic HTTP authentication to restrict access. However, this might also not be considered very secure, and it is recommended to use a proper separate authentication solution in front of the actual webtop environment. Examples are Authelia, Authentik, KeyCloak, and others.

Options in all KasmVNC based GUI containers

This container is based on Docker Baseimage KasmVNC which means there are additional environment variables and run configurations to enable or disable specific functionality.

Optional environment variables

Variable Description
CUSTOM_USER HTTP Basic auth username, abc is default.
PASSWORD HTTP Basic auth password, abc is default. If unset there will be no auth
SUBFOLDER Subfolder for the application if running a subfolder reverse proxy, need both slashes IE /subfolder/

Usage

To help you get started creating a container from this image you can either use docker-compose or the docker cli.

docker-compose (recommended, click here for more info)

---
services:
  webtop:
    image: ghcr.io/xpipe-io/xpipe-webtop:latest
    container_name: xpipe-webtop
    environment:
      - SUBFOLDER=/ #optional
    volumes:
      - /path/to/data:/config
      - /var/run/docker.sock:/var/run/docker.sock #optional
    ports:
      - 127.0.0.1:3000:3000
      - 127.0.0.1:3001:3001
    restart: unless-stopped

docker cli (click here for more info)

docker run -d \
  --name=xpipe-webtop \
  -e SUBFOLDER=/ `#optional` \
  -p 127.0.0.1:3000:3000 \
  -p 127.0.0.1:3001:3001 \
  -v /path/to/data:/config \
  -v /var/run/docker.sock:/var/run/docker.sock `#optional` \
  --restart unless-stopped \
  ghcr.io/xpipe-io/xpipe-webtop:latest

Public Test Builds

There are also image variants published for the XPipe PTB in case you're interested in trying out early test versions. You can obtain these images by replacing the :latest tag with the :ptb tag.

Building locally

If you want to make local modifications to these images for development purposes or just to customize the logic:

git clone https://github.com/xpipe-io/xpipe-webtop.git
cd xpipe-webtop
docker build \
  --no-cache \
  --pull \
  .