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:
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_hostpostgres_userpostgres_passwordhostnametls_cert_crt_pathtls_cert_key_pathuser_idsmtp_hostsmtp_portsmtp_usersmtp_passwordproject_nameavailable_memory
Example:
Destination Directory
The --installdir option sets where Unmeshed server files are installed.
Example:
The installer extracts:
- JDK into
<installdir>/jdk - Deno into
<installdir>/denobin - Server binaries into
<installdir> - UI files into
<installdir>/uihtmls
Run the Installer
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:
Check Nginx:
Then open the site using the configured hostname:
Uninstall
To remove a local server install, stop and remove the systemd service first:
If Java processes from the install are still running, stop them before removing files:
Drop all tables from the target PostgreSQL database. Set connection details through your shell, .pgpass, or another approved credential method before running the command.
Confirm the public tables are removed:
Remove the install directory:
Troubleshooting
- Missing archives: confirm all required files are present in the
--sourcedirectory. - Invalid TLS paths: confirm
tls_cert_crt_pathandtls_cert_key_pathpoint 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.