meta-core claims model: pin meta-core 2.0.1, meta-read 1.4.1, meta-watch 1.1.0, meta-search 1.3.2, meta-share 2.7.0, gateway 1.1.1, meta-sort 1.1.1, plugins 1.1.0; signing keys + db-cache backup exclude

This commit is contained in:
Worph
2026-10-27 19:08:14 +00:00
parent 26929835d3
commit fcd0a9703b
26 changed files with 415 additions and 70 deletions
+32 -7
View File
@@ -47,7 +47,7 @@ services:
# consumer, not a library indexer.
# ---------------------------------------------------------------------------
metaread-core:
image: ipcr-watch.nsl.sh/ipns/metadec.eth/metadec.eth/meta-core:1.0.24
image: ipcr-watch.nsl.sh/ipns/metadec.eth/metadec.eth/meta-core:2.0.1
container_name: metaread-core
# Hard RAM cap, swap disabled (memswap_limit == mem_limit) → OOM instead of
# swap.
@@ -62,6 +62,8 @@ services:
- 9000
volumes:
- ${DATA_ROOT:-/DATA}/AppData/metaread/metacore:/meta-core:rw
# (meta-core 2.0.0 keeps its rebuildable index cache at
# /meta-core/db-cache/cache.db inside this bind — excluded from backups.)
environment:
- BASE_URL=http://metaread-core:9000
- ENABLE_FILE_WATCHER=false
@@ -86,7 +88,7 @@ services:
# peer count before suspecting the feeders.
# ---------------------------------------------------------------------------
metaread-search:
image: ipcr-watch.nsl.sh/ipns/metadec.eth/metadec.eth/meta-search:1.2.10
image: ipcr-watch.nsl.sh/ipns/metadec.eth/metadec.eth/meta-search:1.3.2
container_name: metaread-search
mem_limit: 1g
memswap_limit: 1g
@@ -103,6 +105,9 @@ services:
# (beacon v2) instead of reading kv-leader.info off a shared
# volume. See docs/project-architecture/beacon-v2.md.
- ${DATA_ROOT:-/DATA}/AppData/metaread/search-data:/data:rw
# Claim-signing keys (meta-core 2.0.0 claims model), one file per writer
# service in this stack. Config — backed up, NOT in backup.exclude.
- ${DATA_ROOT:-/DATA}/AppData/metaread/keys:/keys:rw
environment:
P2P_LISTEN: "/ip4/0.0.0.0/tcp/4001"
# ⚠ The IPV4 spelling, never the bare APP_PUBLIC_IP: on an IPv6-primary
@@ -121,6 +126,8 @@ services:
META_CORE_URL: "http://metaread-core:9000"
BASE_URL: "http://metaread-search:3000"
INTERNAL_BASE_URL: "http://metaread-search:3000"
# Own claim-signing key (relayed claims are forwarded verbatim, never re-signed); generated on first boot if missing.
METAMESH_SIGNING_KEY_FILE: "/keys/metaread-search.key"
TZ: "$TZ"
depends_on:
metaread-core:
@@ -154,7 +161,7 @@ services:
# MetaShare app's `metashare-<tier>` hostnames, which on a shared `pcs`
# would be ANOTHER hull's plugins writing to another /data).
# - 3000 HTTP API - 3001 plugin callback API (internal only)
image: ipcr-watch.nsl.sh/ipns/metadec.eth/metadec.eth/meta-share:2.6.4
image: ipcr-watch.nsl.sh/ipns/metadec.eth/metadec.eth/meta-share:2.7.0
container_name: metaread-share
# The swarm and blockstore moved to the ipfs plugin, so the hull needs far
# less than the monolith did.
@@ -176,6 +183,9 @@ services:
# hull's; ipfs/blocks.redb is the ipfs plugin's corner of the SAME folder
# (layout unchanged from 1.0.x, so an existing cache carries over).
- ${DATA_ROOT:-/DATA}/AppData/metaread/share-data:/data:rw
# Claim-signing keys (meta-core 2.0.0 claims model), one file per writer
# service in this stack. Config — backed up, NOT in backup.exclude.
- ${DATA_ROOT:-/DATA}/AppData/metaread/keys:/keys:rw
environment:
META_CORE_URL: "http://metaread-core:9000"
BASE_URL: "http://metaread-share:3000"
@@ -183,6 +193,8 @@ services:
META_SHARE_PLUGIN_IPFS_URL: "http://metaread-share-ipfs:3000"
META_SHARE_PLUGIN_TORRENT_URL: "off"
META_SHARE_PLUGIN_NZB_URL: "off"
# Own claim-signing key; generated on first boot if missing.
METAMESH_SIGNING_KEY_FILE: "/keys/metaread-share.key"
TZ: "$TZ"
depends_on:
metaread-core:
@@ -247,7 +259,7 @@ services:
# My List, Continue Reading and reading positions live in the User Data Layer.
# ---------------------------------------------------------------------------
metaread-app:
image: ipcr-watch.nsl.sh/ipns/metadec.eth/metadec.eth/meta-read:1.3.9.2
image: ipcr-watch.nsl.sh/ipns/metadec.eth/metadec.eth/meta-read:1.4.1
container_name: metaread-app
hostname: metaread-app
restart: unless-stopped
@@ -303,7 +315,7 @@ services:
- 80
environment:
OIDC_REGISTRAR_URL: "http://auth-registrar:9092"
REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.${APP_IP_ZONE},${APP_PUBLIC_IP_DASH}.sslip.io"
REDIRECT_HOST_SUFFIXES: "${APP_HOST_SUFFIXES:-${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.${APP_IP_ZONE},${APP_PUBLIC_IP_DASH}.sslip.io}"
BACKEND_HOST: "metaread-app"
BACKEND_PORT: "3000"
LISTEN_PORT: "80"
@@ -337,7 +349,7 @@ services:
- 80
environment:
OIDC_REGISTRAR_URL: "http://auth-registrar:9092"
REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.${APP_IP_ZONE},${APP_PUBLIC_IP_DASH}.sslip.io"
REDIRECT_HOST_SUFFIXES: "${APP_HOST_SUFFIXES:-${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.${APP_IP_ZONE},${APP_PUBLIC_IP_DASH}.sslip.io}"
BACKEND_HOST: "metaread-share"
BACKEND_PORT: "3000"
LISTEN_PORT: "80"
@@ -367,7 +379,7 @@ services:
- 80
environment:
OIDC_REGISTRAR_URL: "http://auth-registrar:9092"
REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.${APP_IP_ZONE},${APP_PUBLIC_IP_DASH}.sslip.io"
REDIRECT_HOST_SUFFIXES: "${APP_HOST_SUFFIXES:-${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.${APP_IP_ZONE},${APP_PUBLIC_IP_DASH}.sslip.io}"
BACKEND_HOST: "metaread-search"
BACKEND_PORT: "3000"
LISTEN_PORT: "80"
@@ -524,6 +536,11 @@ x-compose-app:
- path: /DATA/AppData/metaread/metacore
user: $PUID
group: $PGID
# meta-core 2.0.0 rebuildable index cache (default
# /meta-core/db-cache/cache.db). Excluded from backups below.
- path: /DATA/AppData/metaread/metacore/db-cache
user: $PUID
group: $PGID
- path: /DATA/AppData/metaread/data
user: $PUID
group: $PGID
@@ -539,5 +556,13 @@ x-compose-app:
- path: /DATA/AppData/metaread/metashare-config
user: $PUID
group: $PGID
- path: /DATA/AppData/metaread/keys
user: $PUID
group: $PGID
# Derived data only: meta-core rebuilds its index cache from the truth file
# (metacore/db/meta-core.db, which IS backed up). keys/ stays backed up.
backup:
exclude:
- metacore/db-cache/
webui-host: metaread-${domain}
webui-path: "/"