148 lines
6.4 KiB
YAML
148 lines
6.4 KiB
YAML
name: metatransportipfs
|
|
|
|
# One of MetaShare's transport plugins (meta-transport-ipfs). MetaShare (the
|
|
# hull) reaches it at http://metashare-ipfs:3000 over `pcs` — the default entry
|
|
# in its plugin list — and probes it every 10 s, so installing or removing this
|
|
# app takes effect with no other step. Manage it from MetaShare → Plugins.
|
|
#
|
|
# It shares MetaShare's data volume (same /data layout the monolith used: the
|
|
# `tmp/` → `cache/` promote is one rename(2), and the hull reads plugin-written
|
|
# files directly). Its own settings live in its state dir (config.json), edited
|
|
# through MetaShare's dashboard.
|
|
#
|
|
# A headless service: no tile link, no Caddy route, no AppShield. Its config
|
|
# page is reached only through MetaShare (Plugins → configure, proxied by
|
|
# /api/plugins/<name>/ui/*), behind MetaShare's own perimeter.
|
|
|
|
services:
|
|
metashare-ipfs:
|
|
image: ipcr-watch.nsl.sh/ipns/metadec.eth/metadec.eth/meta-transport-ipfs:1.3.2
|
|
container_name: metashare-ipfs
|
|
hostname: metashare-ipfs
|
|
restart: unless-stopped
|
|
cpu_shares: 20
|
|
# Hard RAM cap, swap disabled (memswap_limit == mem_limit) → OOM instead of swap.
|
|
mem_limit: 2g
|
|
memswap_limit: 2g
|
|
# Clean redb / session shutdown on SIGTERM before docker escalates.
|
|
stop_grace_period: 30s
|
|
# Root, like MetaShare: the shared data volume is root-owned.
|
|
user: 0:0
|
|
expose:
|
|
- 3000 # transport contract (internal, reached by MetaShare only)
|
|
# libp2p TCP must be host-published: other peers' kad-DHT lookups dial
|
|
# the public multiaddr directly, and Caddy cannot proxy it (not HTTP).
|
|
ports:
|
|
- "4001:4001"
|
|
volumes:
|
|
- ${DATA_ROOT:-/DATA}/AppData/metashare/data:/data:rw
|
|
- ${DATA_ROOT:-/DATA}/AppData/metatransportipfs/state:/state:rw
|
|
environment:
|
|
- META_SHARE_HULL_URL=http://metashare-app:3001
|
|
# Beacon v2: this plugin bind-mounts MetaShare's /data, so only that hull
|
|
# may list it — another meta-share on `pcs` (metawatch-share) ignores it.
|
|
- BEACON_BINDS=metashare-app
|
|
# The local gateway, reached over HTTP: resolves NZB and subtitle pointers
|
|
# even when the libp2p link to it is down. Harmless when no MetaGateway is
|
|
# installed (the caps fetch just fails); remote gateways still come from
|
|
# the swarm.
|
|
- META_SHARE_GATEWAY_URLS=http://metagateway-app:3000
|
|
# Advertise the routable address so provider records + identify carry a
|
|
# dialable multiaddr. ${APP_PUBLIC_IPV4}, NOT ${APP_PUBLIC_IP}: on an
|
|
# IPv6-primary PCS the latter holds a v6 address, and /ip4/<v6>/… is not a
|
|
# parseable multiaddr (the plugin refuses to start rather than announce a lie).
|
|
- PUBLIC_ADDR=/ip4/${APP_PUBLIC_IPV4}/tcp/4001
|
|
# Public IPFS DHT bootstraps by explicit /dns4/.../tcp/4001 (the nested
|
|
# dnsaddr default resolves to wss-only in some container resolvers), plus
|
|
# mars.i.ipfs.io as a fifth in case the foundation four refuse this IP.
|
|
# Editable later from MetaShare → Plugins → ipfs → configure.
|
|
- KAD_BOOTSTRAP_PEERS=/dns4/sg1.bootstrap.libp2p.io/tcp/4001/p2p/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt,/dns4/sv15.bootstrap.libp2p.io/tcp/4001/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN,/dns4/ny5.bootstrap.libp2p.io/tcp/4001/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa,/dns4/am6.bootstrap.libp2p.io/tcp/4001/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb,/dns4/mars.i.ipfs.io/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ
|
|
- TZ=$TZ
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-sf", "http://localhost:3000/health"]
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 10
|
|
start_period: 30s
|
|
networks:
|
|
- pcs
|
|
|
|
networks:
|
|
pcs:
|
|
name: ${APP_NET:-pcs}
|
|
external: true
|
|
|
|
x-casaos:
|
|
architectures:
|
|
- amd64
|
|
- arm64
|
|
author: Worph Team
|
|
category: Media
|
|
tags: ["media", "needs-public-ip"]
|
|
developer: Aptero Team
|
|
|
|
description:
|
|
en_us: |
|
|
**IPFS transport for MetaShare — the mesh itself.**
|
|
|
|
Runs MetaShare's libp2p node: peer discovery (public IPFS DHT, mDNS on the
|
|
LAN), bitswap block exchange, and seeding of your library and of what you
|
|
fetched, without a second copy on disk. It is also how MetaShare finds the
|
|
gateways on the mesh.
|
|
|
|
**One of MetaShare's transport plugins** — without it MetaShare can still
|
|
use BitTorrent and Usenet, but has no swarm. Configure it from
|
|
**MetaShare → Plugins → ipfs → configure** (cohort namespace, bootstrap
|
|
peers, DHT announce).
|
|
|
|
**Requires:** **MetaShare** (it shares MetaShare's storage).
|
|
|
|
**Port 4001 must be reachable from the internet** so other peers can dial
|
|
you. Behind CGNAT it still works, but peers cannot reach you.
|
|
|
|
fr_fr: |
|
|
**Transport IPFS pour MetaShare — le mesh lui-même.**
|
|
|
|
Fait tourner le nœud libp2p de MetaShare : découverte des pairs (DHT IPFS
|
|
public, mDNS sur le LAN), échange de blocs bitswap et partage de votre
|
|
bibliothèque sans seconde copie. C'est aussi par lui que MetaShare trouve les
|
|
passerelles du mesh.
|
|
|
|
**Un des plugins de transport de MetaShare.** Réglages dans
|
|
**MetaShare → Plugins → ipfs → configure**.
|
|
|
|
**Nécessite :** **MetaShare**. Le **port 4001** doit être joignable depuis
|
|
Internet.
|
|
|
|
tagline:
|
|
en_us: IPFS for MetaShare — find and share content with peers by CID
|
|
fr_fr: IPFS pour MetaShare — trouver et partager du contenu par CID
|
|
|
|
title:
|
|
en_us: MetaTransport · IPFS
|
|
|
|
icon: https://cdn.jsdelivr.net/gh/Worph/MetaAppStore@main/Apps/MetaTransportIpfs/icon.png
|
|
thumbnail: https://cdn.jsdelivr.net/gh/Worph/MetaAppStore@main/Apps/MetaTransportIpfs/thumbnail.png
|
|
|
|
store_app_id: metatransportipfs
|
|
is_uncontrolled: false
|
|
|
|
tips:
|
|
before_install:
|
|
en_us: |
|
|
**Install MetaShare first** — this plugin shares its storage and is
|
|
driven by it. MetaShare picks it up automatically within ~10 s; check
|
|
**MetaShare → Plugins**, where it shows as *live*.
|
|
|
|
Settings: **MetaShare → Plugins → ipfs → configure**. Saving restarts the plugin to apply.
|
|
|
|
# Maison (Yundera dashboard) configuration. Read in preference to x-casaos.
|
|
x-compose-app:
|
|
schema_version: 2
|
|
folders:
|
|
- path: /DATA/AppData/metatransportipfs/state
|
|
user: $PUID
|
|
group: $PGID
|
|
# No webui-host and no x-casaos hostname/webui_port/port_map: Maison files it
|
|
# under Services (no click target). Its config opens from MetaShare → Plugins.
|