Skip to content

DAppNode packages manifest

Álex edited this page Nov 30, 2018 · 8 revisions

DNP Manifest v1

This document describes the DAppNode packages manifest and the different fields stored in JSON format.

Manifest fields description

  • name Name of the DApp Package. It should follow the ENS domain naming format. For more information, check the ENS documentation.

  • version The version of the package. It must follow the semver semantic versioning. Please take in account that the package version is not the internal version of the package you want to upload. We use Aragon Package Manager, and it only lets starting with version 1 and increment one by one. Valid initial versions are 1.0.0, 0.1.0 or 0.0.1

  • description Short description of the package.

  • avatar IPFS path of an avatar or logo for the package. The recommended size is 640x640px with transparent background.

  • type Type of the package. It can be service or library.

  • image Object which describes the docker image that contains the DApp.

    • path Name of the XZ tarball to save the docker image to. It is recommended to follow the format: name_version.tar.xz.
    • hash IPFS hash which contains the docker image tarball.
    • size Size in bytes of the tarball. With this field the DApp Manager has an expected size to validate with.
    • ports Exposed ports of the service(s). Check docker compose as a syntax reference.
    • volumes Data volumes to store local data in. Check docker compose as a reference.
    • environment Environment variables to be used in docker compose. They can have a default value or they can be referenced to be defined later in the Admin interface.
  • author Name of the author. Also email, github or twitter user, etc.

  • keywords Tags or categories of the app.

  • homepage

    • homepage URL of the homepage of the project.
  • repository

    • type SCM type of the repository (git, ...)
    • url URL of the repository.
  • bugs

    • url URL to the issue reporting page.
  • license License type.

  • dependencies Array of dappnode packages and versions which this package depends on.

Example

{
  "name": "example.public.dappnode.eth",
  "version": "0.0.3",
  "description": "Example DApp for DAppNode",
  "avatar": "QmYyT1ivVEVvu9V4cgSJVw3ivVTpq96h3Knkujs3qVzzoR",
  "type": "service",
  "image": {
    "path": "example.public.dappnode.eth_0.0.3.tar.xz",
    "hash": "QmaBqQA9bj6dYiMhGzAoVQeUwJ6G7szva1yPGYrPYXtjdS",
    "size": 4873175,
    "ports": [
        "80:8000"
     ],
    "volumes": [
        "config_volume:/home/example/.config"
    ]
    "environment": [
      "SOME_VAR",
      "DEFINED_VAR=1024"
    ],
  },
  "author": "Nicolas van Saberhagen (nsaberhagen)",
  "keywords": [
    "IPFS",
    "database",
    "testing"
  ],
  "homepage": {
    "homepage": "http://example.io/"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/someorg/example.git"
  },
  "bugs": {
    "url": "https://github.com/someorg/example/issues"
  },
  "license": "MIT",
  "dependencies": {
    "nginx-proxy.dnp.dappnode.eth": "0.0.3",
    "letsencrypt-nginx.dnp.dappnode.eth": "0.0.4"
  }
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.