Files
meshcore-bot/docs/installation.md
T

2.6 KiB

Installation

Choose how to run the bot:

Method Best for
Docker Containers, consistent environments, easy updates
Service (systemd) Linux servers, run at boot, no containers
Debian package make deb in the repo — see README
pipx A single-user install with no repo checkout and no venv management

Requirements

  • Python 3.10+
  • MeshCore-compatible device (USB, BLE, or TCP)

pipx

pipx installs the meshcore-bot and meshcore-viewer console scripts into their own isolated environment, which sidesteps PEP 668 (externally-managed-environment) on Debian 12+, Ubuntu 23.04+, Fedora and Arch without you managing a virtualenv:

pipx install "git+https://github.com/agessaman/meshcore-bot@v1.1.0"

Upgrade to a newer tag with pipx install --force "git+https://github.com/agessaman/meshcore-bot@vX.Y.Z".

Where your data lives

The bot has no fixed data directory. Everything is resolved relative to the directory containing your config.ini, so that directory is effectively your install:

What Default Resolved against
Config config.ini your working directory, unless you pass --config
Database meshcore_bot.db ([Bot] db_path) the config file's directory
Local plugins local/ ([Bot] local_dir_path) the config file's directory

Because a bare meshcore-bot looks for config.ini in the current directory, running it from somewhere else silently starts a different, empty install. Pass an absolute --config so it is unambiguous:

mkdir -p ~/.local/share/meshcore-bot
cd ~/.local/share/meshcore-bot
# put your config.ini here, then:
meshcore-bot --config ~/.local/share/meshcore-bot/config.ini

The database and local/ are then created alongside that config.ini no matter where you launch from. Absolute paths in db_path or local_dir_path are used as-is.

For a systemd unit, set WorkingDirectory= to that directory and use the absolute --config in ExecStart=. Note the service installer is a separate, self-contained path — it builds its own virtualenv under /opt/meshcore-bot and does not use pipx.

Development setup

See Getting started for a quick development setup (run from the repo with python meshcore_bot.py).

Upgrading

If you are upgrading from an older release, read the Upgrade guide before restarting the bot.