No description
Find a file
amir-climy fe90753a37 feat(install): detect and display host architecture (amd64/arm64)
Uses uname -m to detect x86_64/aarch64 and maps to the OCI arch name.
Printed at startup so users can confirm the correct image variant will
be pulled. Fails early on unsupported architectures.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 14:59:39 +08:00
manage-server feat(install): detect and display host architecture (amd64/arm64) 2026-05-21 14:59:39 +08:00
get.sh fix(get.sh): refresh installer files before uninstall 2026-05-19 19:58:02 +08:00
README.md feat: remove --license-server-url flag — URL now baked into binary 2026-05-20 07:59:56 +02:00

Triton Manage Server Installer

Production installer for the Triton Manage Server. Container-based (Docker or Podman), idempotent — safe to re-run.

Install

Your vendor provides a licence bundle — a single file:

license.lic   # signed offline licence token

The vendor's public key is baked into the image at build time — nothing else to configure.

Point the installer at the bundle:

curl -fsSL https://raw.githubusercontent.com/primatekuntech/triton-install/main/get.sh | sudo bash -s -- --license-file /path/to/triton-bundle/license.lic

Setup wizard

After install, open http://localhost:8082 and complete the wizard:

  1. Set your manage server name
  2. Create the admin account

Optional flags

Pass flags after --:

curl -fsSL https://raw.githubusercontent.com/primatekuntech/triton-install/main/get.sh | sudo bash -s -- --license-file /path/to/license.lic [flags]
Flag Description
--license-file PATH Path to license.lic from your vendor bundle. Required.
--gateway-hostname HOST Agent mTLS hostname (defaults to current FQDN).
--manage-host-ip IP Host LAN IP for "+ This machine" auto-registration.
--port PORT Host port for the web UI (default: 8082).
--image TAG Pin a specific image tag (e.g. 1.0.0-rc.2).
--no-tls Skip TLS sanity check (dev only).

Upgrade

Pull the latest image and restart (keeps all data, runs DB migrations automatically):

curl -fsSL https://raw.githubusercontent.com/primatekuntech/triton-install/main/get.sh | sudo bash -s -- --upgrade

Pin a specific version:

curl -fsSL https://raw.githubusercontent.com/primatekuntech/triton-install/main/get.sh | sudo bash -s -- --upgrade --image ghcr.io/primatekuntech/triton-manage-server:1.2.0

Uninstall

Stop containers and remove them, but keep all data (PostgreSQL volume, credentials vault):

curl -fsSL https://raw.githubusercontent.com/primatekuntech/triton-install/main/get.sh | sudo bash -s -- --uninstall

Also delete all data (irreversible):

curl -fsSL https://raw.githubusercontent.com/primatekuntech/triton-install/main/get.sh | sudo bash -s -- --uninstall --purge-data

Host-bound licences

Your vendor can issue an offline .lic file that is cryptographically bound to a specific host so it cannot be used on any other machine.

To get a host-bound licence:

  1. Run the installer on the target server. At the end of the output you will see:
    [manage-server] ── Host Machine ID ──────────────────────────────────────────────────────
    [manage-server]   Provide this value to your vendor when requesting a host-bound .lic file.
    [manage-server]   Machine ID (SHA-3-256): <64-hex-chars>
    [manage-server] ────────────────────────────────────────────────────────────────────────
    
  2. Share the 64-character hex value with your vendor.
  3. The vendor enters it in the License Portal when generating the offline .lic token.
  4. Re-run the installer with the new .lic file — the Manage Server verifies the binding at every startup.

The Machine ID is stable. It is a SHA-3-256 hash of /etc/machine-id, which is written once at OS installation and never changes. Container restarts, image upgrades, and re-running the installer will always produce the same value.

To retrieve the Machine ID at any time without re-installing, simply re-run the install command:

curl -fsSL https://raw.githubusercontent.com/primatekuntech/triton-install/main/get.sh | sudo bash -s -- --license-file /path/to/license.lic

For air-gapped deployments without host binding the .lic file is portable, but anyone who obtains the file can run a second instance. Host binding removes that risk.

Requirements

  • Linux (amd64 or arm64) or macOS
  • Docker or Podman with Compose (auto-installed if missing)
  • Port 443 open (HTTPS)