Skip to content

Install on Debian / Ubuntu

This guide covers installing Astromesh Node on Debian-based Linux distributions (Debian 12+, Ubuntu 22.04+).

RequirementVersionCheck
Debian / UbuntuDebian 12+ / Ubuntu 22.04+lsb_release -a
systemd250+systemctl --version
PythonNone — the package carries its own CPython 3.12 in /opt/astromesh/python (since v0.1.8)—
Architectureamd64 onlydpkg --print-architecture
NetworkOutbound to LLM provider or local Ollama—

Node packages are attached to the node-v* releases on GitHub (the repository’s “latest” release is the core, so releases/latest/download/... does not find them):

Terminal window
VERSION=0.1.10
curl -LO https://github.com/monaccode/astromesh/releases/download/node-v${VERSION}/astromesh-node_${VERSION}_amd64.deb
Terminal window
sudo apt install ./astromesh-node_${VERSION}_amd64.deb

The package creates the astromesh system user, installs the virtualenv in /opt/astromesh/venv/, the config in /etc/astromesh/ and the systemd unit, and enables the unit without starting it.

Verify the installation:

Terminal window
astromeshctl version

Expected output:

astromesh-cli 0.3.1
astromesh core 0.61.0

Run the interactive wizard to generate your configuration:

Terminal window
sudo astromeshctl init

This creates, in /etc/astromesh/:

  • runtime.yaml — daemon configuration (services, API, peers/mesh)
  • providers.yaml — LLM provider connections
  • .env — the provider API key, if you entered one (loaded by the systemd unit)

The package already installs sample agents in /etc/astromesh/agents/. For a non-interactive setup:

Terminal window
sudo astromeshctl init --role full --non-interactive

See Configuration for the full runtime.yaml schema and the roles.

The package enables the unit but does not start it:

Terminal window
sudo systemctl start astromeshd

Check service status:

Terminal window
sudo systemctl status astromeshd

Expected output:

● astromeshd.service - Astromesh Agent Runtime Daemon
Loaded: loaded (/lib/systemd/system/astromeshd.service; enabled)
Active: active (running) since Mon 2026-03-20 10:00:00 UTC; 5s ago
Main PID: 4521 (astromeshd)
Memory: 128.0M
Terminal window
astromeshctl status
Terminal window
curl http://localhost:8000/v1/health
Terminal window
# Follow live logs
sudo journalctl -u astromeshd -f
# Last 100 lines
sudo journalctl -u astromeshd -n 100
# Only errors
sudo journalctl -u astromeshd -p err
PathPurpose
/etc/astromesh/Configuration files
/var/lib/astromesh/Persistent state (memory, models)
/var/log/astromesh/Audit logs (daemon logs go to journald)
/opt/astromesh/venv/Virtualenv; astromeshd and astromeshctl are symlinked into /usr/bin/
/lib/systemd/system/astromeshd.servicesystemd unit file
Terminal window
VERSION=0.1.10
curl -LO https://github.com/monaccode/astromesh/releases/download/node-v${VERSION}/astromesh-node_${VERSION}_amd64.deb
sudo apt install ./astromesh-node_${VERSION}_amd64.deb

Upgrading stops the service (the old package’s pre-remove script) and does not start it again. Start it and verify:

Terminal window
sudo systemctl start astromeshd
astromeshctl version
astromeshctl status
Terminal window
sudo apt remove astromesh-node

Removing stops and disables the service. To also remove configuration, data, logs, the virtualenv and the astromesh user:

Terminal window
sudo apt purge astromesh-node