MeshCore-Self-Hosted

MeshCore-Self-Hosted

Docker app from lalexfrank's Repository

Overview

Self-hosted MeshCore web application with automatic updates. Hosts the official MeshCore web client locally, allowing you to connect to your MeshCore companion radio via USB or Bluetooth. Automatically checks for and downloads new MeshCore releases daily. USB connections work over HTTP with no extra setup. Bluetooth requires HTTPS — use a reverse proxy such as Cloudflare Tunnel or Nginx Proxy Manager in front of this container. Note: your MeshCore device must be flashed with BLE companion firmware to use Bluetooth.

MeshCore Self-Hosted

Self-hosted Docker container for the MeshCore web application.

Automatically downloads the latest MeshCore web release on startup and checks for updates daily.

Quick Start

docker-compose up -d

Access at http://localhost:7171

Connection Methods

USB (No HTTPS required)

Plug your MeshCore companion radio into your Unraid server via USB and connect directly in Chrome/Edge over HTTP. This is the simplest setup and works without any additional configuration.

Bluetooth (HTTPS required)

Bluetooth requires a secure context (HTTPS) in the browser. You must put this container behind a reverse proxy with a valid SSL certificate. Options:

  • Cloudflare Tunnel — Easiest. Create a tunnel pointing to localhost:7171 and you get HTTPS automatically with no port forwarding needed.
  • Nginx Proxy Manager — GUI-based reverse proxy, available in Unraid Community Applications.
  • Caddy — Minimal config, auto-handles Let's Encrypt certificates.

Browser Compatibility

  • Chrome / Edge — Works out of the box.
  • Brave — Web Bluetooth is disabled by default. Go to brave://flags/#enable-web-bluetooth, set to Enabled, and restart.
  • Safari / Firefox — Not supported. Web Bluetooth is not available in these browsers.

Note: Your MeshCore companion radio must be flashed with BLE companion firmware to use Bluetooth. USB serial and BLE are separate firmware builds — you can only use one at a time.

Environment Variables

Variable Default Description
TZ UTC Timezone
MESHCORE_BASE_URL https://files.liamcottle.net/MeshCore Base URL for releases
MESHCORE_VERSION (latest) Pin to a specific version e.g. v1.43.0. If set, auto-updates are disabled.
UPDATE_INTERVAL 86400 How often to check for updates in seconds (default: 24 hours)

Auto-Updates

The container checks for a new MeshCore release every UPDATE_INTERVAL seconds. When a new version is found it downloads and replaces the web files in place — nginx serves the new version immediately without a restart.

To disable auto-updates, pin to a specific version using MESHCORE_VERSION.

Unraid

Set container port 80 to your desired host port (e.g. 7171).

Map /app/data to a persistent path (e.g. /mnt/user/appdata/meshcore-selfhosted) to cache downloads. On restart the container will use the cached version instantly and only download again when a new release is available. If no cache exists or the server is unreachable, it falls back gracefully.

Install MeshCore-Self-Hosted on Unraid in a few clicks.

Find MeshCore-Self-Hosted in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for MeshCore-Self-Hosted Review the template variables and paths Click Install

Related apps

Details

Repository
ghcr.io/lalexfrank/meshcore-selfhosted:latest
Last Updated2026-07-17
First Seen2026-05-13

Runtime arguments

Web UI
http://[IP]:[PORT:80]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

WebUI PortPorttcp

Port to access the MeshCore web interface

Target
80
Default
7171
Value
7171
TimezoneVariable

Timezone for container logs e.g. America/Chicago, America/New_York, Europe/London

Target
TZ
Default
America/Chicago
Value
America/Chicago
Update IntervalVariable

How often to check for MeshCore updates in seconds. Default is 86400 (24 hours).

Target
UPDATE_INTERVAL
Default
86400
Value
86400
Pin VersionVariable

Pin to a specific MeshCore version e.g. v1.43.0. Leave blank to always use the latest version. When set, auto-updates are disabled.

Target
MESHCORE_VERSION
Base URLVariable

Base URL for MeshCore releases. Do not change unless you know what you are doing.

Target
MESHCORE_BASE_URL
Default
https://files.liamcottle.net/MeshCore
Value
https://files.liamcottle.net/MeshCore
App DataPathrw

Persistent storage for cached downloads and version tracking.

Target
/app/data
Default
/mnt/user/appdata/meshcore-selfhosted
Value
/mnt/user/appdata/meshcore-selfhosted