mirror of
https://github.com/kingomarnajjar/desktop-environment.git
synced 2026-07-29 21:21:53 +10:00
working
This commit is contained in:
parent
8a47099ace
commit
ab5047c991
4 changed files with 52 additions and 52 deletions
|
|
@ -4,6 +4,14 @@ REPO_ROOT=$(dirname $(realpath $0))/../..
|
|||
DESKTOP_ENVIRONMENT_CONTAINER=desktop-environment
|
||||
DESKTOP_ENVIRONMENT_REGISTRY=sabrehagen
|
||||
DESKTOP_ENVIRONMENT_USER=jackson
|
||||
DESKTOP_ENVIRONMENT_DOMAIN_NAME=cloud.jacksondelahunt.com
|
||||
echo DESKTOP_ENVIRONMENT_CONTAINER=$DESKTOP_ENVIRONMENT_CONTAINER
|
||||
echo DESKTOP_ENVIRONMENT_REGISTRY=$DESKTOP_ENVIRONMENT_REGISTRY
|
||||
echo DESKTOP_ENVIRONMENT_USER=$DESKTOP_ENVIRONMENT_USER
|
||||
echo DESKTOP_ENVIRONMENT_DOMAIN_NAME=$DESKTOP_ENVIRONMENT_DOMAIN_NAME
|
||||
|
||||
# Desktop environment docker configuration
|
||||
echo DESKTOP_ENVIRONMENT_DOCKER_NETWORK=$DESKTOP_ENVIRONMENT_REGISTRY-$DESKTOP_ENVIRONMENT_CONTAINER
|
||||
|
||||
# Desktop environment host configuration
|
||||
DESKTOP_ENVIRONMENT_HOST_HOME=/$DESKTOP_ENVIRONMENT_USER/home
|
||||
|
|
@ -12,9 +20,6 @@ echo DESKTOP_ENVIRONMENT_HOST_REPOSITORY=/$DESKTOP_ENVIRONMENT_USER/$DESKTOP_ENV
|
|||
|
||||
# Desktop environment repository information
|
||||
echo DESKTOP_ENVIRONMENT_BRANCH=$(git --git-dir $REPO_ROOT/.git rev-parse --abbrev-ref HEAD)
|
||||
echo DESKTOP_ENVIRONMENT_CONTAINER=$DESKTOP_ENVIRONMENT_CONTAINER
|
||||
echo DESKTOP_ENVIRONMENT_REGISTRY=$DESKTOP_ENVIRONMENT_REGISTRY
|
||||
echo DESKTOP_ENVIRONMENT_USER=$DESKTOP_ENVIRONMENT_USER
|
||||
|
||||
# Desktop environment application cache volumes
|
||||
echo DESKTOP_ENVIRONMENT_CACHE_CERTIFICATES=$DESKTOP_ENVIRONMENT_HOST_HOME/.pki
|
||||
|
|
@ -27,6 +32,7 @@ echo DESKTOP_ENVIRONMENT_CACHE_VCSH=$DESKTOP_ENVIRONMENT_HOST_HOME/.config/vcsh/
|
|||
echo DESKTOP_ENVIRONMENT_CACHE_VCSH_PRIVATE=$DESKTOP_ENVIRONMENT_HOST_HOME/.config/vcsh/repo-private.d
|
||||
echo DESKTOP_ENVIRONMENT_CACHE_YARN=$DESKTOP_ENVIRONMENT_HOST_HOME/.cache/yarn
|
||||
echo DESKTOP_ENVIRONMENT_CACHE_ZOOM=$DESKTOP_ENVIRONMENT_HOST_HOME/.cache/zoom
|
||||
echo DESKTOP_ENVIRONMENT_CACHE_X11=/tmp/.X11-unix
|
||||
echo DESKTOP_ENVIRONMENT_CACHE_ZSH=$DESKTOP_ENVIRONMENT_HOST_HOME/.cache/zsh
|
||||
|
||||
# Desktop environment application state volumes
|
||||
|
|
@ -35,6 +41,7 @@ echo DESKTOP_ENVIRONMENT_STATE_CODE=$DESKTOP_ENVIRONMENT_HOST_HOME/.config/Code
|
|||
echo DESKTOP_ENVIRONMENT_STATE_GITHUB=$DESKTOP_ENVIRONMENT_HOST_HOME/.config/github
|
||||
echo DESKTOP_ENVIRONMENT_STATE_JUMP=$DESKTOP_ENVIRONMENT_HOST_HOME/.jump
|
||||
echo DESKTOP_ENVIRONMENT_STATE_MUSIKCUBE=$DESKTOP_ENVIRONMENT_HOST_HOME/.musikcube
|
||||
echo DESKTOP_ENVIRONMENT_STATE_TRAEFIK=$DESKTOP_ENVIRONMENT_HOST_HOME/.traefik
|
||||
echo DESKTOP_ENVIRONMENT_STATE_ZOOM=$DESKTOP_ENVIRONMENT_HOST_HOME/.zoom
|
||||
|
||||
# Desktop environment user state volumes
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@ REPO_ROOT=$(dirname $(realpath $0))/../..
|
|||
# Export desktop environment shell configuration
|
||||
export $($REPO_ROOT/docker/scripts/environment.sh)
|
||||
|
||||
# Ensure desktop environment network exists
|
||||
docker network create $DESKTOP_ENVIRONMENT_DOCKER_NETWORK
|
||||
|
||||
docker run \
|
||||
--cap-add SYS_PTRACE \
|
||||
--detach \
|
||||
|
|
@ -19,6 +22,7 @@ docker run \
|
|||
--hostname $DESKTOP_ENVIRONMENT_REGISTRY-$DESKTOP_ENVIRONMENT_CONTAINER-$(hostname) \
|
||||
--interactive \
|
||||
--name $DESKTOP_ENVIRONMENT_CONTAINER \
|
||||
--network $DESKTOP_ENVIRONMENT_DOCKER_NETWORK \
|
||||
--publish 80 \
|
||||
--publish 443 \
|
||||
--rm \
|
||||
|
|
@ -46,6 +50,7 @@ docker run \
|
|||
--volume DESKTOP_ENVIRONMENT_STATE_GITHUB:$DESKTOP_ENVIRONMENT_STATE_GITHUB \
|
||||
--volume DESKTOP_ENVIRONMENT_STATE_JUMP:$DESKTOP_ENVIRONMENT_STATE_JUMP \
|
||||
--volume DESKTOP_ENVIRONMENT_STATE_MUSIKCUBE:$DESKTOP_ENVIRONMENT_STATE_MUSIKCUBE \
|
||||
--volume DESKTOP_ENVIRONMENT_STATE_TRAEFIK=$DESKTOP_ENVIRONMENT_STATE_TRAEFIK \
|
||||
--volume DESKTOP_ENVIRONMENT_STATE_ZOOM:$DESKTOP_ENVIRONMENT_STATE_ZOOM \
|
||||
--volume DESKTOP_ENVIRONMENT_USER_DOCUMENTS:$DESKTOP_ENVIRONMENT_USER_DOCUMENTS \
|
||||
--volume DESKTOP_ENVIRONMENT_USER_DOWNLOADS:$DESKTOP_ENVIRONMENT_USER_DOWNLOADS \
|
||||
|
|
|
|||
27
docker/scripts/traefik.sh
Executable file
27
docker/scripts/traefik.sh
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
REPO_ROOT=$(dirname $(realpath $0))/../..
|
||||
|
||||
# Export desktop environment shell configuration
|
||||
export $($REPO_ROOT/docker/scripts/environment.sh)
|
||||
|
||||
# Start traefik to expose the xpra web client publicly
|
||||
docker exec \
|
||||
--detach \
|
||||
--tty \
|
||||
$DESKTOP_ENVIRONMENT_CONTAINER \
|
||||
traefik \
|
||||
--acme.domains=*.stemn.com \
|
||||
--acme.email=security@stemn.com \
|
||||
--acme.entrypoint=https \
|
||||
--acme.httpchallenge \
|
||||
--acme.httpchallenge.entrypoint=http \
|
||||
--acme.storage=/etc/traefik/acme.json \
|
||||
--acme=true \
|
||||
--defaultentrypoints=http,https \
|
||||
--docker \
|
||||
--docker.endpoint=unix:///var/run/docker.sock \
|
||||
--docker.exposedbydefault=false \
|
||||
--docker.watch=true \
|
||||
--entryPoints='Name:http Address::80 Redirect.EntryPoint:https' \
|
||||
--entryPoints='Name:https Address::443 TLS' \
|
||||
--logLevel=info \
|
||||
--web
|
||||
59
host/xpra.sh
59
host/xpra.sh
|
|
@ -7,69 +7,30 @@ export $($REPO_ROOT/docker/scripts/environment.sh)
|
|||
docker ps -a | grep xpra | cut -c 1-15 | xargs docker rm -f
|
||||
|
||||
# Xpra client configuration
|
||||
XPRA_DESKTOP_ENVIRONMENT_CONTAINER=$DESKTOP_ENVIRONMENT_CONTAINER-xpra-client
|
||||
DESKTOP_ENVIRONMENT_CONTAINER=$DESKTOP_ENVIRONMENT_CONTAINER-xpra-client
|
||||
|
||||
# Xpra server configuration
|
||||
XPRA_CONTAINER=$DESKTOP_ENVIRONMENT_CONTAINER-xpra-server
|
||||
XPRA_DISPLAY=:14
|
||||
XPRA_SERVER_CONTAINER=$DESKTOP_ENVIRONMENT_CONTAINER-xpra-server
|
||||
XPRA_WEB_PORT=10000
|
||||
|
||||
# Traefik configuration
|
||||
ACME_DOMAINS=*.stemn.com
|
||||
ACME_EMAIL=security@stemn.com
|
||||
ACME_ENABLE=true
|
||||
TRAEFIK_DEFAULT_ENTRYPOINTS=http,https
|
||||
TRAEFIK_ENTRYPOINT_HTTP=
|
||||
TRAEFIK_ENTRYPOINT_HTTPS=
|
||||
TRAEFIK_HOST=cloud.jacksondelahunt.com
|
||||
|
||||
# Start the xpra server
|
||||
docker run \
|
||||
--detach \
|
||||
--env DISPLAY=$XPRA_DISPLAY \
|
||||
--env MODE=tcp \
|
||||
--env XPRA_HTML=yes \
|
||||
--label traefik.backend=$XPRA_CONTAINER \
|
||||
--label traefik.backend=$XPRA_SERVER_CONTAINER \
|
||||
--label traefik.enable=true \
|
||||
--label traefik.frontend.entryPoints=https \
|
||||
--label traefik.frontend.rule=Host:$TRAEFIK_HOST \
|
||||
--label traefik.frontend.rule=Host:$DESKTOP_ENVIRONMENT_DOMAIN_NAME \
|
||||
--label traefik.port=$XPRA_WEB_PORT \
|
||||
--name $XPRA_CONTAINER \
|
||||
--publish $XPRA_WEB_PORT:$XPRA_WEB_PORT \
|
||||
--name $XPRA_SERVER_CONTAINER \
|
||||
--network $DESKTOP_ENVIRONMENT_DOCKER_NETWORK \
|
||||
--expose $XPRA_WEB_PORT \
|
||||
--rm \
|
||||
jare/x11-bridge:latest
|
||||
|
||||
# Start a desktop environment attached to the xpra server
|
||||
docker run \
|
||||
--detach \
|
||||
--env DISPLAY=$XPRA_DISPLAY \
|
||||
--name $XPRA_DESKTOP_ENVIRONMENT_CONTAINER \
|
||||
--publish 80:80 \
|
||||
--publish 443:443 \
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock \
|
||||
--volume DESKTOP_ENVIRONMENT_TRAEFIK_CERTIFICATES=/etc/traefik \
|
||||
--volumes-from $XPRA_CONTAINER \
|
||||
$DESKTOP_ENVIRONMENT_REGISTRY/$DESKTOP_ENVIRONMENT_CONTAINER:$DESKTOP_ENVIRONMENT_BRANCH
|
||||
|
||||
# Start traefik to expose the xpra web client publicly
|
||||
docker exec \
|
||||
--tty \
|
||||
--user $DESKTOP_ENVIRONMENT_USER \
|
||||
$XPRA_DESKTOP_ENVIRONMENT_CONTAINER \
|
||||
traefik \
|
||||
--acme.domains=$ACME_DOMAINS \
|
||||
--acme.email=$ACME_EMAIL \
|
||||
--acme.entrypoint=https \
|
||||
--acme.httpchallenge \
|
||||
--acme.httpchallenge.entrypoint=http \
|
||||
--acme.storage=/etc/traefik/acme.json \
|
||||
--acme=$ACME_ENABLE \
|
||||
--defaultentrypoints=$TRAEFIK_DEFAULT_ENTRYPOINTS \
|
||||
--docker \
|
||||
--docker.endpoint=unix:///var/run/docker.sock \
|
||||
--docker.exposedbydefault=false \
|
||||
--docker.watch=true \
|
||||
--entryPoints='Name:http Address::80 Redirect.EntryPoint:https' \
|
||||
--entryPoints='Name:https Address::443 TLS' \
|
||||
--logLevel=info \
|
||||
--web
|
||||
# $TRAEFIK_ENTRYPOINT_HTTP $TRAEFIK_ENTRYPOINT_HTTPS
|
||||
DISPLAY=$XPRA_DISPLAY $REPO_ROOT/docker/scripts/start.sh
|
||||
--volumes-from $XPRA_SERVER_CONTAINER \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue