{"id":687,"date":"2025-12-18T21:56:08","date_gmt":"2025-12-18T21:56:08","guid":{"rendered":"https:\/\/www.texturemind.com\/tmd\/docs\/tmd-administrator-guide\/setting-up-tmd-server\/linux\/installing-the-server\/"},"modified":"2026-10-21T22:15:59","modified_gmt":"2026-10-21T22:15:59","slug":"installing-the-server","status":"publish","type":"docs","link":"https:\/\/www.texturemind.com\/tmd\/docs\/tmd-administrator-guide\/setting-up-tmd-server\/linux\/installing-the-server\/","title":{"rendered":"Installing the server"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">This section describes how to install the TextureMind Desktop (TMD) server on a Linux system. The installation process consists of downloading a compressed package, extracting it to a directory of your choice, and running the provided installation script.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The TMD Linux installer supports both <strong>x86_64<\/strong> and <strong>arm64<\/strong> architectures.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Downloading the Server Package<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Download the appropriate TMD server package from the official TextureMind website:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Download URL<\/strong><br><a href=\"https:\/\/www.texturemind.com\/tmd\/download\/\">https:\/\/www.texturemind.com\/tmd\/download\/<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Package Naming Convention<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Linux server package follows this naming format:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>TMDServer2025.&lt;minor_version&gt;.&lt;patch_version&gt;-Linux-x86_64.zip\nTMDServer2025.&lt;minor_version&gt;.&lt;patch_version&gt;-Linux-arm64.zip\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Examples (latest versions at the time of writing):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>TMDServer2025.1.0-Linux-x86_64.zip\nTMDServer2025.1.0-Linux-arm64.zip\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Select the package that matches your system architecture.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Extracting the Package<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Copy the downloaded ZIP file to the target system and extract it to a directory of your choice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip TMDServer2025.1.0-Linux-x86_64.zip\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This creates a directory containing the TMD server binaries and installation script.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Change into the extracted directory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd TMDServer\n<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Note<\/strong><br>The installation directory can be anywhere on the filesystem. The installer copies all required files to system locations during installation.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Running the Installer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The TMD server installation must be performed with <strong>root privileges<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From the extracted directory, run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo .\/install-tmdserver.sh --console-owner &lt;user-name>\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Installer Output<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If the installation completes successfully, output similar to the following is displayed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;*] Installing\/Updating TMD Remote Desktop Server...\n    Service file will be installed to: \/usr\/lib\/systemd\/system\/tmdserver.service\n    Running as: root\n&#91;*] Copying binaries and plugins...\n&#91;*] Setting permissions...\n&#91;*] Writing systemd service...\nCreated symlink \/etc\/systemd\/system\/multi-user.target.wants\/tmdserver.service \u2192 \/usr\/lib\/systemd\/system\/tmdserver.service.\n&#91;*] Restarting service...\n&#91;+] Installation\/Update complete.\n    Check status with: systemctl status tmdserver\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The installer automatically:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Copies binaries and plugins to system directories<\/li>\n\n\n\n<li>Sets appropriate permissions<\/li>\n\n\n\n<li>Installs a <strong>systemd service<\/strong><\/li>\n\n\n\n<li>Enables and starts the service<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Verifying the Installation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After installation, verify that the TMD server service is running:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status tmdserver\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the service is active, the TMD server is ready to accept incoming connections.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Firewall Configuration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Unlike the Windows installer, the Linux installer <strong>does not modify firewall rules automatically<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You must manually allow inbound traffic on <strong>TCP port 8191<\/strong>, which is the fixed listening port used by the TMD server. Optionally you may add TCP port 4815 for supporting TMD 2026.0 or older.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example: firewalld<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo firewall-cmd --add-port=8191\/tcp --permanent\nsudo firewall-cmd --reload\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Example: UFW<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 8191\/tcp\nsudo ufw reload\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ensure that any external firewalls or network security appliances also allow traffic on port <strong>8191<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Installation Characteristics and Limitations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Be aware of the following behaviors:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The installation is performed via a shell script<\/li>\n\n\n\n<li>No interactive prompts are displayed<\/li>\n\n\n\n<li>The listening port is fixed to <strong>8191<\/strong><\/li>\n\n\n\n<li>The installer can be re-run to update an existing installation<\/li>\n\n\n\n<li>systemd is required<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This section describes how to install the TextureMind Desktop (TMD) server on a Linux system. The installation process consists of downloading a compressed package, extracting it to a directory of your choice, and running the provided installation script. The TMD Linux installer supports both x86_64 and arm64 architectures. Downloading the Server Package Download the appropriate &#8230; <a title=\"Installing the server\" class=\"read-more\" href=\"https:\/\/www.texturemind.com\/tmd\/docs\/tmd-administrator-guide\/setting-up-tmd-server\/linux\/installing-the-server\/\" aria-label=\"Read more about Installing the server\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":623,"menu_order":4,"comment_status":"open","ping_status":"closed","template":"","doc_tag":[],"class_list":["post-687","docs","type-docs","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/docs\/687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/comments?post=687"}],"version-history":[{"count":4,"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/docs\/687\/revisions"}],"predecessor-version":[{"id":909,"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/docs\/687\/revisions\/909"}],"up":[{"embeddable":true,"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/docs\/623"}],"wp:attachment":[{"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/media?parent=687"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/doc_tag?post=687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}