mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-04-28 21:30:41 +00:00
Termix: add guacd build and systemd integration
Install and build Apache Guacamole Server (guacd) and integrate it with Termix. - Added required native dependencies to install/termix-install.sh and build steps to download, compile and install guacd, recording its tag in ~/.guacd. - Created /etc/guacamole/guacd.conf and a systemd unit for guacd; enabled and started guacd alongside termix, and made termix.service depend on guacd. - Extended ct/termix.sh update flow to detect guacd GitHub tags, stop guacd, rebuild/install the specified release, add default config/unit files if missing, and enable/start the service. - Minor messaging tweaks: use "Termix" in stop/start logs. This ensures guacd is available and managed automatically when installing or updating Termix.
This commit is contained in:
@@ -19,9 +19,46 @@ $STD apt install -y \
|
||||
python3 \
|
||||
nginx \
|
||||
openssl \
|
||||
gettext-base
|
||||
gettext-base \
|
||||
libcairo2-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libpng-dev \
|
||||
libtool-bin \
|
||||
uuid-dev \
|
||||
libvncserver-dev \
|
||||
freerdp3-dev \
|
||||
libssh2-1-dev \
|
||||
libtelnet-dev \
|
||||
libwebsockets-dev \
|
||||
libpulse-dev \
|
||||
libvorbis-dev \
|
||||
libwebp-dev \
|
||||
libssl-dev \
|
||||
libpango1.0-dev \
|
||||
libswscale-dev \
|
||||
libavcodec-dev \
|
||||
libavutil-dev \
|
||||
libavformat-dev
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Building Guacamole Server (guacd)"
|
||||
GUAC_SERVER_VERSION=$(get_latest_gh_tag "apache/guacamole-server")
|
||||
mkdir -p /opt/guacamole-server
|
||||
download_file "https://github.com/apache/guacamole-server/archive/refs/tags/${GUAC_SERVER_VERSION}.tar.gz" "/tmp/guacamole-server.tar.gz"
|
||||
tar -xzf /tmp/guacamole-server.tar.gz --strip-components=1 -C /opt/guacamole-server
|
||||
rm -f /tmp/guacamole-server.tar.gz
|
||||
cd /opt/guacamole-server
|
||||
export CPPFLAGS="-Wno-error=deprecated-declarations"
|
||||
$STD autoreconf -fi
|
||||
$STD ./configure --with-init-dir=/etc/init.d --enable-allow-freerdp-snapshots
|
||||
$STD make
|
||||
$STD make install
|
||||
$STD ldconfig
|
||||
echo "${GUAC_SERVER_VERSION}" >~/.guacd
|
||||
cd /opt
|
||||
rm -rf /opt/guacamole-server
|
||||
msg_ok "Built Guacamole Server (guacd) ${GUAC_SERVER_VERSION}"
|
||||
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
fetch_and_deploy_gh_release "termix" "Termix-SSH/Termix"
|
||||
|
||||
@@ -74,10 +111,36 @@ systemctl reload nginx
|
||||
msg_ok "Configured Nginx"
|
||||
|
||||
msg_info "Creating Service"
|
||||
mkdir -p /etc/guacamole
|
||||
cat <<EOF >/etc/guacamole/guacd.conf
|
||||
[server]
|
||||
bind_host = 127.0.0.1
|
||||
bind_port = 4822
|
||||
EOF
|
||||
|
||||
cat <<EOF >/etc/systemd/system/guacd.service
|
||||
[Unit]
|
||||
Description=Guacamole Proxy Daemon (guacd)
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
ExecStart=/etc/init.d/guacd start
|
||||
ExecStop=/etc/init.d/guacd stop
|
||||
ExecReload=/etc/init.d/guacd restart
|
||||
PIDFile=/var/run/guacd.pid
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
cat <<EOF >/etc/systemd/system/termix.service
|
||||
[Unit]
|
||||
Description=Termix Backend
|
||||
After=network.target
|
||||
After=network.target guacd.service
|
||||
Wants=guacd.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
@@ -92,7 +155,7 @@ RestartSec=5
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now termix
|
||||
systemctl enable -q --now guacd termix
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
|
||||
Reference in New Issue
Block a user