XPipe Webtop is a web-based desktop environment that can be run as a docker/OCI container and accessed from a browser or the XPipe mobile app. The desktop environment comes with XPipe, various terminals, editors, and other useful tools preinstalled and configured. It also supports transferring your settings from your local installation to the webtop environment.
The webtop can either be set up manually or also through the built-in webtop deployment wizard in XPipe, which can automatically configure and deploy a webtop container for docker, podman, and Proxmox.
You can find the documentation at https://docs.xpipe.io/guide/webtop.
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 .You can run the container locally via docker compose by utilizing the files in ./compose.
First, you can rename the file .env.default to .env. Then, you have to set the XPIPE_DATA_DIR location in the .env file to the mounted user data directory for the container. For the usage of XPIPE_REPO_DIR in the env file, see further down below. You can leave this value empty.
Then, you can run the container with the latest stable XPipe release:
docker compose --env-file ./compose/.env -f ./compose/core.yaml -f ./compose/prod-main.yaml up --buildTo run the latest PTB release instead, you can use
docker compose --env-file ./compose/.env -f ./compose/core.yaml -f ./compose/prod-ptb.yaml up --buildYou can make use of a local development within the container by cloning the repository with git clone https://github.com/xpipe-io/xpipe and then passing a bind mount to <path to repo dir>:/config/xpipe-dev. You can do this by setting XPIPE_REPO_DIR in the .env file. This will then trigger a gradle build within the container.
You can run this with
docker compose --env-file ./compose/.env -f ./compose/core.yaml -f ./compose/dev.yaml up --buildYou can also attach a Java debugger to the dev build of XPipe by passing the environment variable XPIPE_DEBUG=1. The started XPipe app will then wait and listen for a remote JDWP debugger to attach at port 7857.
You can run this with
docker compose --env-file ./compose/.env -f ./compose/core.yaml -f ./compose/dev-debug.yaml up --buildYou can run the tests to check if all packages install correctly with
docker build -t xpipe-webtop-test .
docker run --rm --entrypoint bash xpipe-webtop-test -l -c /apps/test.shTo only test a single application install, you can pass the script file name with
docker run --rm --entrypoint bash xpipe-webtop-test -l -c "/apps/test.sh 1password"