App.yml v3

This commit is contained in:
AaronDewes 2022-04-07 16:25:31 +00:00
parent 83b2430df9
commit a55e2e4589
24 changed files with 304 additions and 98 deletions

201
app-standard-v3.yml Normal file
View File

@ -0,0 +1,201 @@
# 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 v3
description: The third revision 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.
This can also contain an array like [c-lightning, lnd] if your app requires one of two dependencies to function.
type: array
items:
type: [string, 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.
Set this to $APP_SEED if the password is the environment variable $APP_SEED.
type: string
torOnly:
description: Whether the app is only available over tor
type: boolean
updateContainer:
type:
- string
- array
description: The container(s) 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
requiredPorts:
type: array
items:
type: number
description: Ports this container requires to be exposed to work properly
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.
If this is not set, the port is passed as an env variable in the format APP_${APP_NAME}_${CONTAINER_NAME}_PORT
preferredOutsidePort:
type: number
description: The port this container would like to have "port" exposed as.
requiresPort:
type: boolean
description: Set this to true if the app requires the preferredOutsidePort to be the real outside port.
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
mounts:
type: object
description: Where to mount some services' data directories
properties:
bitcoin:
type: string
description: Where to mount the bitcoin dir
lnd:
type: string
description: Where to mount the lnd dir
c_lightning:
type: string
description: Where to mount the c-lightning dir
additionalProperties: false
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. This isn't necessary, but helps the docker-compose.yml generator to generate a cleaner output.
hiddenServicePorts:
type:
- object
- number
- array
items:
type:
- string
- number
- array
description: >-
This can either be a map of hidden service names (human readable names, not the .onion URL, and strings, not numbers)
to a port if your app needs multiple hidden services on different ports,
a map of port inside to port on the hidden service (if your app has multiple ports on one hidden service),
or simply one port number if your apps hidden service should only expose one port to the outside which isn't 80.
restart:
type: string
description: When the container should restart. Can be 'always' or 'on-failure'.
network_mode:
type: string
additionalProperties: false
required:
- name
- image
additionalProperties: false
required:
- metadata
- containers
additionalProperties: false

View File

@ -2,9 +2,9 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v2.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 2
version: 3
metadata:
category: Explorers
name: Bitfeed
@ -28,6 +28,7 @@ metadata:
updateContainer:
- main
- api
containers:
- name: main
image: ghcr.io/bitfeed-project/bitfeed-client:v2.2.1@sha256:70c89d49d20ba3da21c648c259f45a4b89e06bfe1d97374a092dce6f891d03c6
@ -40,6 +41,7 @@ containers:
TARGET: citadel
BACKEND_HOST: $APP_BITFEED_API_IP
BACKEND_PORT: "3000"
- name: api
image: ghcr.io/bitfeed-project/bitfeed-server:v2.2.1@sha256:60eae8109d3d6a377aec8a954f93b6be9ee48de717c9ab5810c2a5afcf688554
user: 1000:1000
@ -58,5 +60,3 @@ containers:
RPC_POOL_SIZE: 4
data:
- data:/app/data
permissions:
- bitcoind

View File

@ -2,9 +2,9 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v2.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 2
version: 3
metadata:
category: Wallet Servers
@ -30,18 +30,8 @@ metadata:
- 3.jpg
containers:
- name: redis
image: redis:6.2.6-bullseye@sha256:0c0484b1d1ff36faace984fe9d8e0fe58892ecc34a4859b97171045b9cd343e1
command: redis-server --requirepass moneyprintergobrrr
data:
- data/redis:/data
user: 1000:1000
init: true
- name: main
image: bluewalletorganization/lndhub:v1.4.1@sha256:db673a8d360982984d05f97303e26dc0e5a3eea36ba54d0abdae5bbbeef31d3a
permissions:
- lnd
depends_on:
- redis
port: 3000
@ -70,3 +60,11 @@ containers:
user: 1000:1000
init: true
restart: "on-failure"
- name: redis
image: redis:6.2.6-bullseye@sha256:0c0484b1d1ff36faace984fe9d8e0fe58892ecc34a4859b97171045b9cd343e1
command: redis-server --requirepass moneyprintergobrrr
data:
- data/redis:/data
user: 1000:1000
init: true

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# yaml-language-server: $schema=../../app-standard-v1.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 1
metadata:
category: Explorers
name: BTC RPC Explorer (Public; Fast version)
@ -32,9 +33,6 @@ metadata:
containers:
- name: main
image: ghcr.io/runcitadel/btc-rpc-explorer:v3.3.0@sha256:01ecdf20d75cfe758c2c0908492ed938f89da55dd6ee98e61cacc4c73ef8cef1
permissions:
- electrum
- bitcoind
port: 3002
environment:
BTCEXP_HOST: 0.0.0.0

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# yaml-language-server: $schema=../../app-standard-v1.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 1
metadata:
category: Explorers
name: BTC RPC Explorer (Public)
@ -31,9 +32,6 @@ metadata:
containers:
- name: main
image: ghcr.io/runcitadel/btc-rpc-explorer:v3.3.0@sha256:01ecdf20d75cfe758c2c0908492ed938f89da55dd6ee98e61cacc4c73ef8cef1
permissions:
- electrum
- bitcoind
port: 3002
environment:
BTCEXP_HOST: 0.0.0.0

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# yaml-language-server: $schema=../../app-standard-v1.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 1
metadata:
category: Explorers
name: BTC RPC Explorer
@ -28,12 +29,10 @@ metadata:
- 2.jpg
- 3.jpg
defaultPassword: $APP_SEED
containers:
- name: main
image: ghcr.io/runcitadel/btc-rpc-explorer:v3.3.0@sha256:01ecdf20d75cfe758c2c0908492ed938f89da55dd6ee98e61cacc4c73ef8cef1
permissions:
- electrum
- bitcoind
port: 3002
environment:
BTCEXP_HOST: 0.0.0.0

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# yaml-language-server: $schema=../../app-standard-v2.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 2
metadata:
category: Payments
name: BTCPay Server
@ -41,8 +42,7 @@ containers:
NBXPLORER_BTCRPCPASSWORD: $BITCOIN_RPC_PASS
data:
- data/nbxplorer:/data
permissions:
- bitcoind
- name: main
image: btcpayserver/btcpayserver:1.4.9@sha256:3310ef8c5fecb3a1c66507b97ebc84a3475fc77e63cd3bd29ab8b76474214566
port: 1234
@ -68,8 +68,7 @@ containers:
data:
- data/nbxplorer:/data/.nbxplorer
- data/btcpay:/data
permissions:
- lnd
user: 1000:1000
- name: postgres
image: postgres:14.1-bullseye@sha256:1fe27b334443793af98d7eb320ad6f9f30fcc9bc068f545cb46ec01cefe9c8ee

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# yaml-language-server: $schema=../../app-standard-v2.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 2
metadata:
category: Development
name: code-server

View File

@ -1,5 +1,11 @@
# SPDX-FileCopyrightText: 2021 Citadel and contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: "2"
metadata:
category: Wallets
name: JAM
@ -51,5 +57,4 @@ containers:
jm_network: $BITCOIN_NETWORK
jm_max_cj_fee_abs: 300000
jm_max_cj_fee_rel: 0.0003
permissions:
- bitcoind

View File

@ -2,9 +2,9 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v1.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 1
version: 3
metadata:
category: Social

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# yaml-language-server: $schema=../../app-standard-v1.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 2
metadata:
category: Lightning Node Management
name: Lightning Shell
@ -32,8 +33,6 @@ containers:
port: 7681
data:
- data:/data
permissions:
- lnd
environment:
APP_PASSWORD: ${APP_SEED}
USERNAME: citadel

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v1.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 1
metadata:
category: Lightning Node Management
name: Lightning Terminal
@ -51,5 +52,3 @@ containers:
- --uipassword="${APP_SEED}"
data:
- data:/data
permissions:
- lnd

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v2.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 2
metadata:
category: Lightning Node Management
name: LNDg
@ -31,7 +32,8 @@ containers:
image: ghcr.io/cryptosharks131/lndg:v1.0.5@sha256:cebb3cb42ebc26e7d148792e9f191dea78016cd514940a19143d3e51b5e023d2
restart: on-failure
stop_grace_period: 1m
lnd_mount_dir: /root/.lnd
mounts:
lnd: /root/.lnd
data:
- data:/lndg/data
command:
@ -40,5 +42,4 @@ containers:
- python initialize.py -net '${BITCOIN_NETWORK}' -server
'${LND_IP}:${LND_GRPC_PORT}' -pw '${APP_SEED}' -d && supervisord &&
python manage.py runserver 0.0.0.0:${APP_LNDG_WEB_PORT}
permissions:
- lnd

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v1.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 1
metadata:
category: Wallets
name: Specter Desktop
@ -59,8 +60,8 @@ containers:
BTC_RPC_PROTOCOL: http
name: web
port: 25441
preferredOutsidePort: 25441
data:
- data:/data
bitcoin_mount_dir: /data/.bitcoin
permissions:
- bitcoind
mounts:
bitcoin: /data/.bitcoin

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v1.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 1
metadata:
category: Social
name: Sphinx Relay
@ -47,5 +48,3 @@ containers:
port: 3300
data:
- data:/relay/.lnd/
permissions:
- lnd

View File

@ -2,9 +2,9 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v2.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 2
version: 3
metadata:
category: Fun
@ -39,5 +39,5 @@ containers:
EULA: "TRUE"
ALLOW_NETHER: "true"
port: 8000
ports:
- 25565:25565
requiredPorts:
- 25565

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v2.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 1
metadata:
category: Social
name: Squeaknode
@ -34,8 +35,8 @@ containers:
image: ghcr.io/squeaknode/squeaknode:v0.2.16@sha256:25d9bd4ce22b4265979d64ce9a2417c883492cd8dce7f171fc5488d27db6c809
stop_grace_period: 1m
port: 12994
ports:
- 8994:8994
requiredPorts:
- 8994
user: 1000:1000
environment:
SQUEAKNODE_BITCOIN_RPC_HOST: $BITCOIN_IP
@ -59,9 +60,6 @@ containers:
DEBUG: squeaknode:*
data:
- sqk:/sqk
permissions:
- bitcoind
- lnd
hiddenServicePorts:
p2p:
- 8555

View File

@ -1,5 +1,11 @@
# SPDX-FileCopyrightText: 2022 Citadel and contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 1
metadata:
category: Social
name: Synapse Admin

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# yaml-language-server: $schema=../../app-standard-v2.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 2
metadata:
category: Social
name: Synapse
@ -31,9 +32,9 @@ containers:
GID: "1000"
SYNAPSE_HTTP_PORT: 8008
SYNAPSE_SERVER_NAME: ${APP_HIDDEN_SERVICE}
SYNAPSE_REPORT_STATS: yes
SYNAPSE_ENABLE_REGISTRATION: yes
SYNAPSE_NO_TLS: yes
SYNAPSE_REPORT_STATS: "yes"
SYNAPSE_ENABLE_REGISTRATION: "yes"
SYNAPSE_NO_TLS: "yes"
name: server
data:
- data/synapse:/data

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# yaml-language-server: $schema=../../app-standard-v2.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 2
metadata:
category: Networking
name: Tailscale

View File

@ -2,10 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v1.json
#user: 1000:1000
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 1
metadata:
category: Lightning Node Management
name: ThunderHub
@ -44,5 +44,3 @@ containers:
port: 3000
data:
- data:/data
permissions:
- lnd

View File

@ -1,7 +1,11 @@
# SPDX-FileCopyrightText: 2021 Anthony Potdevin
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v2.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 2
metadata:
category: Networking
name: Uptime Kuma

View File

@ -3,9 +3,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# yaml-language-server: $schema=../../app-standard-v1.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 1
metadata:
category: Social
name: Usocial
@ -32,8 +33,6 @@ containers:
port: 5000
data:
- data:/instance
permissions:
- lnd
environment:
USOCIAL_JOB: WEB
APP_PASSWORD: ${APP_SEED}

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v1.json
# yaml-language-server: $schema=../../app-standard-v3.yml
version: 3
version: 1
metadata:
category: Password Managers
name: Vaultwarden