forked from michael.heier/citadel-core
196 lines
5.5 KiB
YAML
196 lines
5.5 KiB
YAML
# yaml-language-server: $schema=https://json-schema.org/draft/2020-12/schema
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
|
|
|
|
title: Citadel app.yml v1
|
|
description: The first draft of Citadel's app.yml format
|
|
type: object
|
|
|
|
properties:
|
|
version:
|
|
type:
|
|
- string
|
|
- number
|
|
description: The version of the app.yml format you're using.
|
|
|
|
metadata:
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: Displayed name of the app
|
|
type: string
|
|
version:
|
|
description: Displayed version for the app
|
|
type: string
|
|
category:
|
|
description: The category you'd put the app in
|
|
type: string
|
|
tagline:
|
|
description: A clever tagline
|
|
type: string
|
|
description:
|
|
description: A longer description of the app
|
|
type: string
|
|
developer:
|
|
description: The awesome people behind the app
|
|
type: string
|
|
website:
|
|
description: Displayed version for the app
|
|
type: string
|
|
dependencies:
|
|
description: The services the app depends on
|
|
type: array
|
|
items:
|
|
type: string
|
|
repo:
|
|
description: The development repository for your app
|
|
type: string
|
|
support:
|
|
description: A link to the app support wiki/chat/...
|
|
type: string
|
|
gallery:
|
|
type: array
|
|
description: >-
|
|
URLs or paths in the runcitadel/app-images/[app-name] folder with app
|
|
images
|
|
items:
|
|
type: string
|
|
path:
|
|
description: The path of the app's visible site the open button should open
|
|
type: string
|
|
defaultPassword:
|
|
description: The app's default password
|
|
type: string
|
|
torOnly:
|
|
description: Whether the app is only available over tor
|
|
type: boolean
|
|
mainContainer:
|
|
type: string
|
|
description: >-
|
|
The name of the main container for the app. If set, IP, port, and
|
|
hidden service will be assigned to it automatically.
|
|
updateContainer:
|
|
type: string
|
|
description: The container the developer system should automatically update.
|
|
required:
|
|
- name
|
|
- version
|
|
- category
|
|
- tagline
|
|
- description
|
|
- developer
|
|
- website
|
|
- repo
|
|
- support
|
|
- gallery
|
|
additionalProperties: false
|
|
|
|
containers:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
image:
|
|
type: string
|
|
permissions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum:
|
|
- c-lightning
|
|
- lnd
|
|
- bitcoind
|
|
- electrum
|
|
- root
|
|
- hw
|
|
ports:
|
|
type: array
|
|
items:
|
|
type:
|
|
- string
|
|
- number
|
|
port:
|
|
type: number
|
|
description: >-
|
|
If this is the main container, the port inside the container which
|
|
will be exposed to the outside as the port specified in metadata.
|
|
environment:
|
|
type: object
|
|
data:
|
|
type: array
|
|
description: >-
|
|
An array of at directories in the container the app stores its data
|
|
in. Can be empty. Please only list top-level directories.
|
|
items:
|
|
type: string
|
|
user:
|
|
type: string
|
|
description: The user the container should run as
|
|
stop_grace_period:
|
|
type: string
|
|
description: The grace period for stopping the container. Defaults to 1 minute.
|
|
depends_on:
|
|
type: array
|
|
description: The services the container depends on
|
|
entrypoint:
|
|
type:
|
|
- string
|
|
- array
|
|
description: The entrypoint for the container
|
|
bitcoin_mount_dir:
|
|
type: string
|
|
description: Where to mount the bitcoin dir
|
|
command:
|
|
type:
|
|
- string
|
|
- array
|
|
description: The command for the container
|
|
init:
|
|
type: boolean
|
|
description: Whether the container should be run with init
|
|
stop_signal:
|
|
type: string
|
|
description: The signal to send to the container when stopping
|
|
noNetwork:
|
|
type: boolean
|
|
description: >-
|
|
Set this to true if the container shouldn't get an IP & port
|
|
exposed.
|
|
needsHiddenService:
|
|
type: boolean
|
|
description: >-
|
|
Set this to true if the container should be assigned a hidden
|
|
service even if it's not the main container.
|
|
hiddenServicePort:
|
|
type: number
|
|
description: >-
|
|
Set this to a port if your container exposes multiple ports, but
|
|
only one should be a hidden service.
|
|
hiddenServicePorts:
|
|
type: object
|
|
description: >-
|
|
Set this to a map of service names to hidden service ports if your
|
|
container exposes multiple ports, and all of them should be hidden
|
|
services.
|
|
patternProperties:
|
|
^[a-zA-Z0-9_]+$:
|
|
type:
|
|
- number
|
|
- array
|
|
restart:
|
|
type: string
|
|
description: When the container should restart. Can be 'always' or 'on-failure'.
|
|
additionalProperties: false
|
|
required:
|
|
- name
|
|
- image
|
|
additionalProperties: false
|
|
|
|
required:
|
|
- metadata
|
|
- containers
|
|
|
|
additionalProperties: false
|