Unmeshed Logo
Docs navigation

How To Guide

Install the Unmeshed Server Locally on Linux

Use the Unmeshed CLI install-server command to install a self-managed Unmeshed server on a Linux machine.

Prerequisites

Before running the installer, prepare:

  • A Linux machine with systemd
  • The Unmeshed CLI available on the machine
  • PostgreSQL available and reachable from the server
  • Nginx installed and running
  • DNS or hostname configured for the server
  • TLS certificate and key files already created on the server
  • Download links for the required binary and archive files from the Unmeshed team

Source Directory

The --source option points to a local directory that contains the installer inputs.

Required files:

text

Server templates are bundled in the CLI. Do not place server templates in the source directory.

install.properties

Create install.properties in the source directory with these properties:

  • postgres_host
  • postgres_user
  • postgres_password
  • hostname
  • tls_cert_crt_path
  • tls_cert_key_path
  • user_id
  • smtp_host
  • smtp_port
  • smtp_user
  • smtp_password
  • project_name
  • available_memory

Example:

properties

Destination Directory

The --installdir option sets where Unmeshed server files are installed.

Example:

text

The installer extracts:

  • JDK into <installdir>/jdk
  • Deno into <installdir>/denobin
  • Server binaries into <installdir>
  • UI files into <installdir>/uihtmls

Run the Installer

bash

Run the command from a shell with the permissions needed to write to the install directory, create a systemd service, write Nginx configuration, and run setup SQL.

What the Installer Does

The installer:

  • Validates the required archives
  • Validates install.properties
  • Validates TLS certificate and key paths
  • Validates the database connection
  • Validates that Nginx is running
  • Installs binaries and configuration files
  • Creates the systemd service
  • Runs setup SQL
  • Writes the Nginx configuration

Post-Install Checks

Check the Unmeshed service:

bash

Check Nginx:

bash

Then open the site using the configured hostname:

text

Uninstall

To remove a local server install, stop and remove the systemd service first:

bash

If Java processes from the install are still running, stop them before removing files:

bash

Drop all tables from the target PostgreSQL database. Set connection details through your shell, .pgpass, or another approved credential method before running the command.

bash

Confirm the public tables are removed:

bash

Remove the install directory:

bash

Troubleshooting

  • Missing archives: confirm all required files are present in the --source directory.
  • Invalid TLS paths: confirm tls_cert_crt_path and tls_cert_key_path point to existing files on the server.
  • Database connection failure: confirm postgres_host, credentials, network access, and PostgreSQL permissions.
  • Nginx not running: start Nginx and rerun the installer.
  • Non-empty install directories: extraction stops when target directories already contain files. Use a clean install directory or move existing files before retrying.