diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f270c918..4de5f040c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ### Changed +- The Docker Compose files no longer start a guacd container. npm run dev -- --guacd also points remote desktop at the guacd it starts - The side menu now opens over the page when it expands on hover, so open sessions like remote desktop are not resized each time. Turn on Push content when it expands in Settings to get the old behavior back ### Fixed diff --git a/README.md b/README.md index ef3cf839f..8f2aa812a 100644 --- a/README.md +++ b/README.md @@ -137,7 +137,7 @@ Want to build your own? Start from the [plugin template](https://github.com/Term See the [docs](https://docs.termix.site/install) for install steps on every platform. -Sample Docker Compose file (you can leave out `guacd` and the network if you don't plan to use the Remote Desktop plugin): +Sample Docker Compose file. Remote desktop (RDP, VNC and Telnet) is built in, so nothing else needs to run next to it: ```yaml services: @@ -151,31 +151,10 @@ services: - termix-data:/app/data environment: PORT: "8080" - GUACD_HOST: "guacd" - GUACD_TUNNEL_HOST: "termix" - GUACD_RECORDING_PATH: "/termix-data/session_recordings/guacamole" - GUACD_DRIVE_PATH: "/termix-data/rdp-drive" - depends_on: - - guacd - networks: - - termix-net - - guacd: - image: guacamole/guacd:1.6.0 - container_name: guacd - restart: unless-stopped - volumes: - - termix-data:/termix-data - networks: - - termix-net volumes: termix-data: driver: local - -networks: - termix-net: - driver: bridge ``` ### Cloud Hosting diff --git a/docker/compose-dev.yml b/docker/compose-dev.yml index 3c181e5aa..caf202612 100644 --- a/docker/compose-dev.yml +++ b/docker/compose-dev.yml @@ -12,24 +12,9 @@ services: environment: PORT: "8080" NODE_ENV: development - GUACD_HOST: "guacd-dev" - GUACD_TUNNEL_HOST: "termix-dev" - GUACD_RECORDING_PATH: "/termix-data/session_recordings/guacamole" - GUACD_DRIVE_PATH: "/termix-data/rdp-drive" # REDIS_URL: "redis://redis:6379" # TERMIX_REDIS_PREFIX: "termix:collab" # TERMIX_STEP_CA_REDIS_PREFIX: "termix:step-ca" - depends_on: - - guacd-dev - networks: - - termix-dev-net - - guacd-dev: - image: guacamole/guacd:1.6.0 - container_name: guacd-dev - restart: unless-stopped - volumes: - - termix-dev-data:/termix-data networks: - termix-dev-net diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 10d35d746..8a3a49d0f 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -9,12 +9,6 @@ services: - termix-data:/app/data environment: PORT: "8080" - GUACD_HOST: "guacd" - GUACD_TUNNEL_HOST: "termix" - GUACD_RECORDING_PATH: "/termix-data/session_recordings/guacamole" - # Where guacd stores files for RDP drive redirection (one folder per - # user is created underneath). Must be writable by guacd's user. - GUACD_DRIVE_PATH: "/termix-data/rdp-drive" # Multi-instance deployments should point every backend at the same # Redis. Without it, collaboration rooms keep their single-instance # in-memory fallback. @@ -36,17 +30,6 @@ services: # TRUSTED_PROXY_AUTH_ROLE_MAP: '{"operators":["user"]}' # TRUSTED_PROXY_AUTH_USERNAME_HEADER: "x-forwarded-username" # TRUSTED_PROXY_AUTH_ROLE_HEADER: "x-forwarded-role" - depends_on: - - guacd - networks: - - termix-net - - guacd: - image: guacamole/guacd:1.6.0 - container_name: guacd - restart: unless-stopped - volumes: - - termix-data:/termix-data networks: - termix-net diff --git a/scripts/dev-docker.test.ts b/scripts/dev-docker.test.ts index 325bbce30..959206159 100644 --- a/scripts/dev-docker.test.ts +++ b/scripts/dev-docker.test.ts @@ -42,6 +42,7 @@ describe("serviceEnv", () => { DATABASE_URL: "postgres://termix:termix@127.0.0.1:55432/termix", GUACD_HOST: "127.0.0.1", GUACD_PORT: "4822", + REMOTE_DESKTOP_ENGINE: "guacd", }); }); @@ -53,6 +54,7 @@ describe("serviceEnv", () => { DATABASE_URL: "mysql://root:termix@termix-dev-mysql:3306/termix", GUACD_HOST: "termix-dev-guacd", GUACD_PORT: "4822", + REMOTE_DESKTOP_ENGINE: "guacd", }); }); }); diff --git a/scripts/dev.mjs b/scripts/dev.mjs index 9d4474a27..2dcb80b74 100644 --- a/scripts/dev.mjs +++ b/scripts/dev.mjs @@ -14,7 +14,8 @@ * mounted. A plugin change rebuilds it and restarts the container. Core * changes wait for "r", since an image build is slow. * - * --db postgres|mysql and --guacd run those in Docker next to it. + * --db postgres|mysql and --guacd run those in Docker next to it; --guacd also + * switches remote desktop from its built-in engine to that guacd. */ import fs from "node:fs"; diff --git a/scripts/lib/dev-docker.mjs b/scripts/lib/dev-docker.mjs index 79070ad98..5b5846a01 100644 --- a/scripts/lib/dev-docker.mjs +++ b/scripts/lib/dev-docker.mjs @@ -85,6 +85,8 @@ export function serviceEnv(options, inDocker) { const guacd = SERVICES.guacd; env.GUACD_HOST = inDocker ? guacd.container : "127.0.0.1"; env.GUACD_PORT = String(inDocker ? guacd.port : guacd.hostPort); + // Remote desktop runs built in unless told to use guacd. + env.REMOTE_DESKTOP_ENGINE = "guacd"; } return env; } diff --git a/scripts/lib/dev-runner.mjs b/scripts/lib/dev-runner.mjs index 13a2a074a..f1095a3b0 100644 --- a/scripts/lib/dev-runner.mjs +++ b/scripts/lib/dev-runner.mjs @@ -125,7 +125,7 @@ Options --plugins Plugin repos to build and watch (default ../Plugins) --no-local Use only the plugins pinned in docker/bundled-plugins.json --db sqlite (default), postgres or mysql. Postgres and MySQL run in Docker - --guacd Run guacd in Docker for remote desktop + --guacd Run guacd in Docker and use it instead of the built-in remote desktop --fresh Start from empty data (first run, onboarding) --data Data folder for the backend (default db/data, db/data-desktop for electron, plus - for postgres or mysql)