mirror of
https://github.com/runcitadel/apps.git
synced 2024-11-11 16:30:37 +00:00
246 lines
5.3 KiB
YAML
246 lines
5.3 KiB
YAML
|
---
|
||
|
$schema: "http://json-schema.org/draft-07/schema#"
|
||
|
title: AppYml
|
||
|
description: Citadel app definition
|
||
|
type: object
|
||
|
required:
|
||
|
- citadel_version
|
||
|
- metadata
|
||
|
- services
|
||
|
properties:
|
||
|
citadel_version:
|
||
|
type: integer
|
||
|
format: uint8
|
||
|
minimum: 0.0
|
||
|
metadata:
|
||
|
$ref: "#/definitions/Metadata"
|
||
|
services:
|
||
|
type: object
|
||
|
additionalProperties:
|
||
|
$ref: "#/definitions/Container"
|
||
|
definitions:
|
||
|
Command:
|
||
|
anyOf:
|
||
|
- type: string
|
||
|
- type: array
|
||
|
items:
|
||
|
type: string
|
||
|
Container:
|
||
|
type: object
|
||
|
required:
|
||
|
- image
|
||
|
properties:
|
||
|
command:
|
||
|
anyOf:
|
||
|
- $ref: "#/definitions/Command"
|
||
|
- type: "null"
|
||
|
depends_on:
|
||
|
type:
|
||
|
- array
|
||
|
- "null"
|
||
|
items:
|
||
|
type: string
|
||
|
enable_networking:
|
||
|
default: true
|
||
|
type: boolean
|
||
|
entrypoint:
|
||
|
anyOf:
|
||
|
- $ref: "#/definitions/Command"
|
||
|
- type: "null"
|
||
|
environment:
|
||
|
type:
|
||
|
- object
|
||
|
- "null"
|
||
|
additionalProperties:
|
||
|
type: string
|
||
|
hidden_services:
|
||
|
anyOf:
|
||
|
- $ref: "#/definitions/HiddenServices"
|
||
|
- type: "null"
|
||
|
image:
|
||
|
type: string
|
||
|
init:
|
||
|
type:
|
||
|
- boolean
|
||
|
- "null"
|
||
|
mounts:
|
||
|
anyOf:
|
||
|
- $ref: "#/definitions/Mounts"
|
||
|
- type: "null"
|
||
|
network_mode:
|
||
|
type:
|
||
|
- string
|
||
|
- "null"
|
||
|
port:
|
||
|
type:
|
||
|
- integer
|
||
|
- "null"
|
||
|
format: uint16
|
||
|
minimum: 0.0
|
||
|
port_priority:
|
||
|
anyOf:
|
||
|
- $ref: "#/definitions/PortPriority"
|
||
|
- type: "null"
|
||
|
required_ports:
|
||
|
anyOf:
|
||
|
- $ref: "#/definitions/PortsDefinition"
|
||
|
- type: "null"
|
||
|
requires:
|
||
|
description: "Unlike depends_on, this is dependencies (defined in metadata) that are required for this container The container gets ignored without them"
|
||
|
type:
|
||
|
- array
|
||
|
- "null"
|
||
|
items:
|
||
|
type: string
|
||
|
restart:
|
||
|
type:
|
||
|
- string
|
||
|
- "null"
|
||
|
stop_grace_period:
|
||
|
type:
|
||
|
- string
|
||
|
- "null"
|
||
|
stop_signal:
|
||
|
type:
|
||
|
- string
|
||
|
- "null"
|
||
|
user:
|
||
|
type:
|
||
|
- string
|
||
|
- "null"
|
||
|
HiddenServices:
|
||
|
anyOf:
|
||
|
- type: object
|
||
|
additionalProperties:
|
||
|
type: integer
|
||
|
format: uint16
|
||
|
minimum: 0.0
|
||
|
- type: object
|
||
|
additionalProperties:
|
||
|
type: object
|
||
|
additionalProperties:
|
||
|
type: integer
|
||
|
format: uint16
|
||
|
minimum: 0.0
|
||
|
Metadata:
|
||
|
type: object
|
||
|
required:
|
||
|
- category
|
||
|
- developers
|
||
|
- name
|
||
|
- repo
|
||
|
- support
|
||
|
- tagline
|
||
|
- version
|
||
|
properties:
|
||
|
category:
|
||
|
description: The category for the app
|
||
|
type: string
|
||
|
defaultPassword:
|
||
|
description: "The app's default password. Can also be $APP_SEED for a random password"
|
||
|
type:
|
||
|
- string
|
||
|
- "null"
|
||
|
developers:
|
||
|
type: object
|
||
|
additionalProperties:
|
||
|
type: string
|
||
|
gallery:
|
||
|
description: A list of promo images for the apps
|
||
|
type:
|
||
|
- array
|
||
|
- "null"
|
||
|
items:
|
||
|
type: string
|
||
|
name:
|
||
|
description: The name of the app
|
||
|
type: string
|
||
|
path:
|
||
|
description: "The path the \"Open\" link on the dashboard should lead to"
|
||
|
type:
|
||
|
- string
|
||
|
- "null"
|
||
|
permissions:
|
||
|
description: Permissions the app requires
|
||
|
default: []
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: "#/definitions/Permissions"
|
||
|
repo:
|
||
|
description: App repository name -> repo URL
|
||
|
type: object
|
||
|
additionalProperties:
|
||
|
type: string
|
||
|
support:
|
||
|
description: A support link for the app
|
||
|
type: string
|
||
|
tagline:
|
||
|
description: A short tagline for the app
|
||
|
type: string
|
||
|
torOnly:
|
||
|
description: True if the app only works over Tor
|
||
|
default: false
|
||
|
type: boolean
|
||
|
updateContainers:
|
||
|
description: A list of containers to update automatically (still validated by the Citadel team)
|
||
|
type:
|
||
|
- array
|
||
|
- "null"
|
||
|
items:
|
||
|
type: string
|
||
|
version:
|
||
|
description: The version of the app
|
||
|
type: string
|
||
|
Mounts:
|
||
|
type: object
|
||
|
properties:
|
||
|
bitcoin:
|
||
|
type:
|
||
|
- string
|
||
|
- "null"
|
||
|
c_lightning:
|
||
|
type:
|
||
|
- string
|
||
|
- "null"
|
||
|
data:
|
||
|
type:
|
||
|
- object
|
||
|
- "null"
|
||
|
additionalProperties:
|
||
|
type: string
|
||
|
lnd:
|
||
|
type:
|
||
|
- string
|
||
|
- "null"
|
||
|
Permissions:
|
||
|
anyOf:
|
||
|
- type: string
|
||
|
- type: array
|
||
|
items:
|
||
|
type: string
|
||
|
PortPriority:
|
||
|
type: string
|
||
|
enum:
|
||
|
- Optional
|
||
|
- Recommended
|
||
|
- Required
|
||
|
PortsDefinition:
|
||
|
type: object
|
||
|
properties:
|
||
|
tcp:
|
||
|
type:
|
||
|
- object
|
||
|
- "null"
|
||
|
additionalProperties:
|
||
|
type: integer
|
||
|
format: uint16
|
||
|
minimum: 0.0
|
||
|
udp:
|
||
|
type:
|
||
|
- object
|
||
|
- "null"
|
||
|
additionalProperties:
|
||
|
type: integer
|
||
|
format: uint16
|
||
|
minimum: 0.0
|