OverviewFilesCommitsIssuesDocsReleasesPeers

P2P-Hiverelay / startos / manifest.yaml

143 lines · yaml ref:
# Blindspark — StartOS (Start9) package manifest.
#
# Mirrors the Umbrel packaging (umbrel-app/) for the StartOS channel:
# same multi-arch GHCR image, same data-volume layout (/data), same
# proxy-UI auth (HIVERELAY_UI_EXPOSE_TOKEN + a seed persisted on the
# data volume — StartOS has no APP_SEED equivalent, so the entrypoint
# generates one on first run and reuses it forever; reinstalls keep the
# same relay identity as long as the data volume survives).
#
# Validate with `start-sdk` before submission (see README.md). Field
# names target the 0.3.5.x manifest schema; re-check against
# https://github.com/Start9Labs/start-os when packing.

id: blindspark
title: "Blindspark"
version: 1.0.0-rc.1
release-notes: |
  Blindspark v1.0.0-rc.1: sealed Blind Cell release candidate; gateway activation
  remains disabled pending the later signed HTTPS release. Fleet and marketplace
  promotion are not authorized by this package metadata.
license: apache-2.0
wrapper-repo: "https://github.com/bigdestiny2/P2P-Hiverelay"
upstream-repo: "https://github.com/bigdestiny2/P2P-Hiverelay"
support-site: "https://github.com/bigdestiny2/P2P-Hiverelay/issues"
marketing-site: "https://github.com/bigdestiny2/P2P-Hiverelay"
donation-url: ~

build: ["make"]

description:
  short: Keep P2P apps alive — a blind relay for the Pear ecosystem
  long: |
    Blindspark is a blind relay for the Pear/Holepunch decentralized app
    ecosystem. It seeds end-to-end-encrypted Hyperdrives — content the
    relay cannot read but can verify and serve — so P2P apps stay
    available while their users are offline.

    The relay is genuinely "blind": it holds ciphertext blocks and
    Merkle proofs, never plaintext, and never sees who reads what. By
    default every incoming seed request waits for your approval
    ("review" mode); you can switch to auto-accept from the dashboard.

    The Blindspark dashboard is a single, simple page: your relay's name
    and public key, live online status, connected peers, how many apps it
    keeps alive, and real measured on-disk usage. Fresh installs start
    with review-mode seed acceptance and a conservative 10 GB storage cap;
    saved operator config wins on later restarts. No account, no telemetry,
    no payment.

assets:
  license: LICENSE
  icon: icon.png
  instructions: instructions.md
  # A directory of per-arch tarballs (x86_64.tar, aarch64.tar). At pack
  # time start-sdk writes a multiarch.cbor index; on install the device
  # extracts the tar matching its CPU. See the Makefile (buildx exports a
  # legacy docker-archive per platform).
  docker-images: image

main:
  type: docker
  image: main
  entrypoint: "docker_entrypoint.sh"
  args: []
  mounts:
    main: /data
  gpu-acceleration: false

hardware-requirements:
  arch:
    - x86_64
    - aarch64

health-checks:
  web-ui:
    name: Dashboard
    success-message: The Blindspark dashboard is reachable
    type: docker
    image: main
    entrypoint: check-web.sh
    args: []
    io-format: yaml
    inject: true

config: ~
properties: ~

volumes:
  main:
    type: data

interfaces:
  main:
    name: Blindspark Dashboard
    description: Web dashboard — status, peers, storage, and the apps your relay keeps alive
    tor-config:
      port-mapping:
        80: "9100"
    lan-config:
      443:
        ssl: true
        internal: 9100
    ui: true
    protocols:
      - tcp
      - http

dependencies: {}

backup:
  create:
    type: docker
    image: compat
    system: true
    entrypoint: compat
    args:
      - duplicity
      - create
      - /mnt/backup
      - /root/data
    mounts:
      BACKUP: /mnt/backup
      main: /root/data
  restore:
    type: docker
    image: compat
    system: true
    entrypoint: compat
    args:
      - duplicity
      - restore
      - /mnt/backup
      - /root/data
    mounts:
      BACKUP: /mnt/backup
      main: /root/data

# No prior versions exist — nothing to migrate from/to. (`type: script`
# migrations need the js-engine SDK feature; not used here.)
migrations:
  from: {}
  to: {}