mirror of
https://github.com/ipnet-mesh/meshcore-hub.git
synced 2026-05-18 15:26:00 +02:00
Rename Docker volumes: hub_data→data, mqtt_broker_data→mqtt_data; rename db-migrate service to migrate
This commit is contained in:
+1
-1
@@ -31,7 +31,7 @@
|
||||
|
||||
# Docker Compose project name
|
||||
# Used as a prefix for container names (e.g., hub-api) and volume names
|
||||
# (e.g., hub_hub_data). Change per instance when running multiple deployments
|
||||
# (e.g., hub_data). Change per instance when running multiple deployments
|
||||
# on the same Docker host (e.g., hub-prod, hub-beta, hub-stg).
|
||||
# For multi-instance setups, see the "Multi-Instance Deployment" section in README.md.
|
||||
COMPOSE_PROJECT_NAME=hub
|
||||
|
||||
@@ -6,7 +6,7 @@ endif
|
||||
COMPOSE_PROJECT_NAME ?= hub
|
||||
PROFILES ?= mqtt core
|
||||
COMPOSE_FILES = -f docker-compose.yml -f docker-compose.dev.yml
|
||||
VOLUMES = $(COMPOSE_PROJECT_NAME)_hub_data $(COMPOSE_PROJECT_NAME)_mqtt_broker_data \
|
||||
VOLUMES = $(COMPOSE_PROJECT_NAME)_data $(COMPOSE_PROJECT_NAME)_mqtt_data \
|
||||
$(COMPOSE_PROJECT_NAME)_observer_data
|
||||
|
||||
.PHONY: build up down logs backup restore
|
||||
|
||||
@@ -101,18 +101,18 @@ Service profiles:
|
||||
|
||||
| Profile | Services | Use Case |
|
||||
| ---------- | ------------------------------- | ----------------------------------------- |
|
||||
| `all` | db-migrate, collector, api, web | Everything on one host |
|
||||
| `core` | db-migrate, collector, api, web | Central server infrastructure |
|
||||
| `all` | migrate, collector, api, web | Everything on one host |
|
||||
| `core` | migrate, collector, api, web | Central server infrastructure |
|
||||
| `mqtt` | meshcore-mqtt-broker | Local MQTT broker (optional) |
|
||||
| `observer` | packet capture observer | Observes RF traffic and publishes to MQTT |
|
||||
| `seed` | seed | One-time seed data import |
|
||||
| `migrate` | db-migrate | One-time database migration |
|
||||
| `migrate` | migrate | One-time database migration |
|
||||
|
||||
**Note:** Most deployments connect to an external MQTT broker. Add `--profile mqtt` only if you need a local broker. The `observer` profile runs [meshcore-packet-capture](https://github.com/agessaman/meshcore-packet-capture) to observe MeshCore RF traffic and publish decoded packets to MQTT.
|
||||
|
||||
```bash
|
||||
# Create database schema
|
||||
docker compose -f docker-compose.yml -f docker-compose.dev.yml --profile migrate run --rm db-migrate
|
||||
docker compose -f docker-compose.yml -f docker-compose.dev.yml --profile migrate run --rm migrate
|
||||
|
||||
# Seed the database
|
||||
docker compose -f docker-compose.yml -f docker-compose.dev.yml --profile seed run --rm seed
|
||||
@@ -283,7 +283,7 @@ PACKETCAPTURE_MQTT3_TOKEN_AUDIENCE=mqtt.localhost
|
||||
make backup
|
||||
|
||||
# Restore a specific volume
|
||||
make restore FILE=backup/hub_hub_data-20260414-120000.tar.gz
|
||||
make restore FILE=backup/hub_data-20260414-120000.tar.gz
|
||||
```
|
||||
|
||||
#### Using shell commands
|
||||
@@ -292,13 +292,13 @@ make restore FILE=backup/hub_hub_data-20260414-120000.tar.gz
|
||||
# Back up the database volume
|
||||
source .env 2>/dev/null || true
|
||||
mkdir -p backup
|
||||
vol=${COMPOSE_PROJECT_NAME:-hub}_hub_data
|
||||
vol=${COMPOSE_PROJECT_NAME:-hub}_data
|
||||
docker run --rm -v $vol:/data -v $(pwd)/backup:/backup \
|
||||
alpine tar czf /backup/$vol-$(date +%Y%m%d-%H%M%S).tar.gz -C / data
|
||||
|
||||
# Restore a specific volume (volume name derived from tarball filename)
|
||||
source .env 2>/dev/null || true
|
||||
FILE=backup/${COMPOSE_PROJECT_NAME:-hub}_hub_data-20260414-120000.tar.gz
|
||||
FILE=backup/${COMPOSE_PROJECT_NAME:-hub}_data-20260414-120000.tar.gz
|
||||
vol=$(basename "$FILE" | sed 's/-[0-9]\{8\}-[0-9]\{6\}\.tar\.gz//')
|
||||
docker run --rm -v $vol:/data -v $(pwd)/backup:/backup \
|
||||
alpine sh -c "cd / && tar xzf /backup/$(basename $FILE)"
|
||||
|
||||
+8
-8
@@ -66,16 +66,16 @@ These volumes always need migrating:
|
||||
|
||||
| Old Name | New Name |
|
||||
|----------|----------|
|
||||
| `meshcore_hub_data` | `hub_hub_data` |
|
||||
| `meshcore_hub_data` | `hub_data` |
|
||||
|
||||
> **Note:** `observer_data` and `mqtt_broker_data` are new — they are created automatically on first run and do not need migrating. Monitoring infrastructure (Prometheus, Alertmanager) is no longer bundled — if you used the previous `metrics` profile, manage those volumes separately.
|
||||
> **Note:** `observer_data` and `mqtt_data` are new — they are created automatically on first run and do not need migrating.
|
||||
|
||||
### Option A: Rename (Docker Engine 23.0+)
|
||||
|
||||
> **Note:** `docker volume rename` is not available in all Docker builds (e.g., Docker Desktop). If the command is not found, use Option B instead.
|
||||
|
||||
```bash
|
||||
docker volume rename meshcore_hub_data hub_hub_data
|
||||
docker volume rename meshcore_hub_data hub_data
|
||||
```
|
||||
|
||||
### Option B: Copy (all Docker versions)
|
||||
@@ -84,8 +84,8 @@ If `docker volume rename` is not available in your Docker build:
|
||||
|
||||
```bash
|
||||
# Create new volume, copy data, remove old
|
||||
docker volume create hub_hub_data
|
||||
docker run --rm -v meshcore_hub_data:/from -v hub_hub_data:/to alpine sh -c "cp -a /from/. /to/"
|
||||
docker volume create hub_data
|
||||
docker run --rm -v meshcore_hub_data:/from -v hub_data:/to alpine sh -c "cp -a /from/. /to/"
|
||||
|
||||
# Verify the new volume has data, then remove old one
|
||||
docker volume rm meshcore_hub_data
|
||||
@@ -95,7 +95,7 @@ docker volume rm meshcore_hub_data
|
||||
|
||||
> **Note:** If setting up a multi-instance deployment (e.g., `hub-prod`, `hub-beta`), use that project name instead of `hub`.
|
||||
|
||||
> **Note:** After migrating volumes, you may see warnings like `volume "hub_hub_data" already exists but was not created by Docker Compose. Use \`external: true\` to use an existing volume`. This is safe to ignore — it appears because the volumes were created manually during migration rather than by Docker Compose. Fresh deployments will not see this warning.
|
||||
> **Note:** After migrating volumes, you may see warnings like `volume "hub_data" already exists but was not created by Docker Compose. Use \`external: true\` to use an existing volume`. This is safe to ignore — it appears because the volumes were created manually during migration rather than by Docker Compose. Fresh deployments will not see this warning.
|
||||
|
||||
## Step 4: Update Configuration Files
|
||||
|
||||
@@ -182,13 +182,13 @@ All other `PACKETCAPTURE_*` variables have sensible defaults in `docker-compose.
|
||||
The migration renames `receiver_node_id` → `observer_node_id` across all event tables, `event_receivers` → `event_observers`, and `received_at` → `observed_at` in the event observers table:
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.dev.yml --profile core run --rm db-migrate
|
||||
docker compose -f docker-compose.yml -f docker-compose.dev.yml --profile core run --rm migrate
|
||||
```
|
||||
|
||||
This runs automatically as part of the `core` profile, but can also be run standalone with the `migrate` profile:
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.dev.yml --profile migrate run --rm db-migrate
|
||||
docker compose -f docker-compose.yml -f docker-compose.dev.yml --profile migrate run --rm migrate
|
||||
```
|
||||
|
||||
## Step 7: Start Services
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
services:
|
||||
collector:
|
||||
depends_on:
|
||||
db-migrate:
|
||||
migrate:
|
||||
condition: service_completed_successfully
|
||||
mqtt:
|
||||
condition: service_healthy
|
||||
|
||||
+13
-13
@@ -13,7 +13,7 @@ services:
|
||||
- mqtt
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- mqtt_broker_data:/data
|
||||
- mqtt_data:/data
|
||||
environment:
|
||||
# Broker listener
|
||||
- MQTT_WS_PORT=${MQTT_PORT:-1883}
|
||||
@@ -139,11 +139,11 @@ services:
|
||||
- all
|
||||
- core
|
||||
depends_on:
|
||||
db-migrate:
|
||||
migrate:
|
||||
condition: service_completed_successfully
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- hub_data:/data
|
||||
- data:/data
|
||||
- ${SEED_HOME:-./seed}:/seed
|
||||
environment:
|
||||
- LOG_LEVEL=${LOG_LEVEL:-INFO}
|
||||
@@ -199,12 +199,12 @@ services:
|
||||
- core
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
db-migrate:
|
||||
migrate:
|
||||
condition: service_completed_successfully
|
||||
collector:
|
||||
condition: service_started
|
||||
volumes:
|
||||
- hub_data:/data
|
||||
- data:/data
|
||||
environment:
|
||||
- LOG_LEVEL=${LOG_LEVEL:-INFO}
|
||||
- MQTT_HOST=${MQTT_HOST:-mqtt}
|
||||
@@ -304,19 +304,19 @@ services:
|
||||
# ==========================================================================
|
||||
# Database Migrations - Run Alembic migrations
|
||||
# ==========================================================================
|
||||
db-migrate:
|
||||
migrate:
|
||||
image: ghcr.io/ipnet-mesh/meshcore-hub:${IMAGE_VERSION:-latest}
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: ${COMPOSE_PROJECT_NAME:-hub}-db-migrate
|
||||
container_name: ${COMPOSE_PROJECT_NAME:-hub}-migrate
|
||||
profiles:
|
||||
- all
|
||||
- core
|
||||
- migrate
|
||||
restart: "no"
|
||||
volumes:
|
||||
- hub_data:/data
|
||||
- data:/data
|
||||
environment:
|
||||
- DATA_HOME=/data
|
||||
command: ["db", "upgrade"]
|
||||
@@ -337,7 +337,7 @@ services:
|
||||
- seed
|
||||
restart: "no"
|
||||
volumes:
|
||||
- hub_data:/data
|
||||
- data:/data
|
||||
- ${SEED_HOME:-./seed}:/seed:ro
|
||||
environment:
|
||||
- DATA_HOME=/data
|
||||
@@ -350,9 +350,9 @@ services:
|
||||
# Volumes
|
||||
# ==========================================================================
|
||||
volumes:
|
||||
hub_data:
|
||||
name: ${COMPOSE_PROJECT_NAME:-hub}_hub_data
|
||||
mqtt_broker_data:
|
||||
name: ${COMPOSE_PROJECT_NAME:-hub}_mqtt_broker_data
|
||||
data:
|
||||
name: ${COMPOSE_PROJECT_NAME:-hub}_data
|
||||
mqtt_data:
|
||||
name: ${COMPOSE_PROJECT_NAME:-hub}_mqtt_data
|
||||
observer_data:
|
||||
name: ${COMPOSE_PROJECT_NAME:-hub}_observer_data
|
||||
|
||||
Reference in New Issue
Block a user