{"id":13495990,"url":"https://github.com/MysticRyuujin/guac-install","last_synced_at":"2025-03-28T17:34:32.309Z","repository":{"id":40003053,"uuid":"65679611","full_name":"MysticRyuujin/guac-install","owner":"MysticRyuujin","description":"Script for installing Guacamole on Ubuntu","archived":false,"fork":false,"pushed_at":"2024-06-21T11:22:02.000Z","size":193,"stargazers_count":972,"open_issues_count":57,"forks_count":269,"subscribers_count":54,"default_branch":"main","last_synced_at":"2024-08-01T19:57:27.064Z","etag":null,"topics":["guacamole","guacamole-server","mysql","tomcat","ubuntu"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MysticRyuujin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-14T18:05:45.000Z","updated_at":"2024-07-31T19:07:17.000Z","dependencies_parsed_at":"2024-01-16T09:53:22.097Z","dependency_job_id":"c762b538-5b8a-4fab-94f5-ca0e88029d79","html_url":"https://github.com/MysticRyuujin/guac-install","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MysticRyuujin%2Fguac-install","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MysticRyuujin%2Fguac-install/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MysticRyuujin%2Fguac-install/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MysticRyuujin%2Fguac-install/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MysticRyuujin","download_url":"https://codeload.github.com/MysticRyuujin/guac-install/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222402848,"owners_count":16978747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["guacamole","guacamole-server","mysql","tomcat","ubuntu"],"created_at":"2024-07-31T19:01:40.445Z","updated_at":"2024-10-31T11:30:35.274Z","avatar_url":"https://github.com/MysticRyuujin.png","language":"Shell","funding_links":[],"categories":["Shell","Script/Code snippet"],"sub_categories":[],"readme":"# guac-install\n\nI've maintained this script for quite a few years now with the help of the other contributors and it seems to be getting more and more fragmented as libraries and system OSes diverge in their package management. I do **not** plan on maintaining this beyond perhaps approving other people's PRs and letting people continue to discuss issues, so I won't archive it but I'm also not actively maintaining it 🤷‍♂️\n\nYou can also check out this other [Guacamole-Setup](https://github.com/itiligent/Guacamole-Setup) repo which sets up a complete **Virtual Desktop/Jump Server appliance with MFA, Active Directory integration \u0026 Nginx SSL reverse proxy** for more inspiration.\n\n## NOTE: The fixes below are not to be used UNLESS you're having issues, don't run these for no reason, use the distro maintainers version unless there's a reason not to.\n\n## NOTE: Ubuntu users having issues with RDP have reported the following fix:\n```\nsudo add-apt-repository ppa:remmina-ppa-team/remmina-next\nsudo apt-get update\nsudo apt-get install freerdp2-dev freerdp2-x11\n```\n\n## NOTE: Debian users having issues with RDP have reported the following fix:\n```\nsudo bash -c 'echo \"deb http://deb.debian.org/debian buster-backports main\" \u003e\u003e /etc/apt/sources.list.d/backports.list'\nsudo apt update\nsudo apt -y -t buster-backports install freerdp2-dev libpulse-dev\n```\n\nScript for installing Guacamole 1.5.5 on Ubuntu 16.04 or newer (with MySQL, or remote MySQL). It should also work on pure [Debian](https://www.debian.org/), [Raspbian](https://www.raspberrypi.org/downloads/raspbian/), [Linux Mint](https://linuxmint.com/) (18/LMDE 4 or newer) or [Kali Linux](https://www.kali.org/). I have tested this with Debian 10.3.0 (Buster). **If other versions don't work please open an issue.** It is likely due to a required library having a different name.\n\nRun script, enter MySQL Root Password and Guacamole User password. Guacamole User is used to connect to the Guacamole Database. Be sure to save these!\n\nThe script attempts to install `tomcat9` by default (it will fall back on `tomcat8` **if the available version is 8.5.x or newer**, otherwise it will fall back to `tomcat7`). If you want to manually specify a tomcat version there's a commented out line you can modify. Have at it.\n\n## MFA/2FA\n\nBy default the script will not install MFA support (QR code for Google/Microsoft Authenticator, Duo Mobile, etc. or Duo Push), if you do want MFA support you can use the `-t` or `--totp` or for Duo `-d` or `--duo` flags on the command line. Or modify the script variables `installTOTP=true` or `installDuo=true`. **Do not install both!**\n\n## FYI\n\nHere's a cool PowerShell module for using the Guacamole API: https://github.com/UpperM/guacamole-powershell\n\nDoes not work if you have MFA turned on (however, you can authenticate via the gui and get a token to use it that way).\n\n## How to Run:\n\n### Download file directly from here:\n\n`wget https://git.io/fxZq5 -O guac-install.sh`\n\n### Make it executable:\n\n`chmod +x guac-install.sh`\n\n### Run it as root:\n\nInteractive (asks for passwords):\n\n`./guac-install.sh`\n\nNon-Interactive (values provided via cli):\n\n`./guac-install.sh --mysqlpwd password --guacpwd password --nomfa --installmysql`\n\nOR\n\n`./guac-install.sh -r password -gp password -o -i`\n\nOnce installation is done you can access Guacamole by browsing to: http://\u003chost_or_ip\u003e:8080/guacamole/\nThe default credentials are `guacadmin` as both username and password. Please change them or disable guacadmin after install!\n\n# guac-upgrade\n\nScript for upgrading currently installed Guacamole instance (previously installed via this script/guide).  This will also now update the TOTP or Duo extensions if used.\n\nIf looks for the tomcat folder in /etc/ (E.G. `/etc/tomcat7` or `/etc/tomcat8`) hopefully that works to identify the correct tomcat version/path :smile: I'm open to suggestions/pull requests for a cleaner method.\n\n## All Switches\n\nInstall MySQL:\n\n`-i or --installmysql`\n\nDo *NOT* install MySQL:\n\n`-n or --nomysql`\n\nMySQL Host:\n\n`-h or --mysqlhost`\n\nMySQL Port:\n\n`-p or --mysqlport`\n\nMySQL Root Password:\n\n`-r or --mysqlpwd`\n\nGuacamole Database:\n\n`-db or --guacdb`\n\nGuacamole User:\n\n`-gu or --guacuser`\n\nGuacamole User Password:\n\n`-gp or --guacpwd`\n\nNo MFA (No TOTP + Duo):\n\n`-o or --nomfa`\n\nInstall TOTP:\n\n`-t or --totp`\n\nInstall Duo:\n\n`-d or --duo`\n\nNOTE: Only the switches for MySQL Host, MySQL Port and Guacamole Database are available in the upgrade script.\n\n## WARNING\n\n- Upgrading from versions older than a couple dot fixes ago have not been tested with this script, use at your own risk and take backups first!\n\n## How to Upgrade:\n\n### Download file directly from here:\n\n`wget https://raw.githubusercontent.com/MysticRyuujin/guac-install/master/guac-upgrade.sh`\n\n### Make it executable:\n\n`chmod +x guac-upgrade.sh`\n\n### Run it as root:\n\nInteractive (asks for passwords):\n\n`./guac-upgrade.sh`\n\nNon-Interactive (MySQL root password provided via cli):\n\n`./guac-upgrade.sh --mysqlpwd password`\n\n## Post Installation - Reverse Proxies\n\nMake sure that you configure your reverse proxy (NGinx or Apache) as per the [Official Documentation](https://guacamole.apache.org/doc/0.9.7/gug/proxying-guacamole.html)\n\nFor Nginx:\n```\nlocation /guacamole/ {\n    proxy_pass http://HOSTNAME:8080/guacamole/;\n    proxy_buffering off;\n    proxy_http_version 1.1;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection $http_connection;\n    access_log off;\n}\n```\nFor Apache:\n```\n\u003cLocation /guacamole/\u003e\n    Order allow,deny\n    Allow from all\n    ProxyPass http://HOSTNAME:8080/guacamole/ flushpackets=on\n    ProxyPassReverse http://HOSTNAME:8080/guacamole/\n\u003c/Location\u003e\n```\n\n## NOTE: SSH doesnt work with Ubuntu 22.04:\n\nGuacamole only supports ssh-dss and ssh-rsa, and both have been disabled in Ubuntu 22.04.\n\nIn the meantime a workaround is adding ```HostKeyAlgorithms +ssh-rsa``` to the end of ``` /etc/ssh/sshd_config ``` on the Ubuntu machine and restart sshd. \n\n###### :warning: use at your own risk! :warning:\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMysticRyuujin%2Fguac-install","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMysticRyuujin%2Fguac-install","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMysticRyuujin%2Fguac-install/lists"}