All apps · 0 apps
MeshCore-Self-Hosted
Docker app from lalexfrank's Repository
Overview
Readme
View on GitHubMeshCore 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:7171and 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.
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/lalexfrank/meshcore-selfhosted:latestRuntime arguments
- Web UI
http://[IP]:[PORT:80]/- Network
bridge- Shell
sh- Privileged
- false
Template configuration
Port to access the MeshCore web interface
- Target
- 80
- Default
- 7171
- Value
- 7171
Timezone for container logs e.g. America/Chicago, America/New_York, Europe/London
- Target
- TZ
- Default
- America/Chicago
- Value
- America/Chicago
How often to check for MeshCore updates in seconds. Default is 86400 (24 hours).
- Target
- UPDATE_INTERVAL
- Default
- 86400
- Value
- 86400
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 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
Persistent storage for cached downloads and version tracking.
- Target
- /app/data
- Default
- /mnt/user/appdata/meshcore-selfhosted
- Value
- /mnt/user/appdata/meshcore-selfhosted