forked from michael.heier/citadel-apps
Clean up this repo
This commit is contained in:
parent
7d51f9292c
commit
ee9a520227
5
.github/workflows/main.yml
vendored
5
.github/workflows/main.yml
vendored
|
@ -2,9 +2,9 @@ name: Check app updates
|
|||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, v2 ]
|
||||
branches: [ main, v2, v3, v3-dev ]
|
||||
pull_request:
|
||||
branches: [ main, v2 ]
|
||||
branches: [ main, v2, v3, v3-dev ]
|
||||
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
|
@ -27,7 +27,6 @@ jobs:
|
|||
yarn citadel-dev --consumerkey ${{ secrets.TWITTER_CONSUMER_API_KEY }} --consumersecret ${{ secrets.TWITTER_CONSUMER_API_SECRET }} --accesstoken ${{ secrets.TWITTER_ACCESS_TOKEN }} --accesstokensecret ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} appcheck -d ../apps
|
||||
cd ..
|
||||
rm -rf dev-tools
|
||||
./update.py
|
||||
git config --global user.name "GitHub Actions"
|
||||
git config --global user.email "actions@github.com"
|
||||
git commit -a -m "Update apps" || true
|
||||
|
|
|
@ -1,226 +0,0 @@
|
|||
{
|
||||
"$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": [
|
||||
"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
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"metadata",
|
||||
"containers"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
SPDX-FileCopyrightText: 2021 Aaron Dewes <aaron.dewes@protonmail.com>
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
|
@ -1,209 +0,0 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "Citadel app.yml v2",
|
||||
"description": "The second 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",
|
||||
"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 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."
|
||||
},
|
||||
"lightningImplementation": {
|
||||
"description": "The supported lightning implementation for this app. If your app supports multiple, please publish a separate app.yml for each implementation.",
|
||||
"type": "string",
|
||||
"enum": ["lnd", "c-lightning"]
|
||||
}
|
||||
},
|
||||
"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": [
|
||||
"lnd",
|
||||
"c-lightning",
|
||||
"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. If this is not set, the port is passed as an env variable in the format APP_${APP_NAME}_${CONTAINER_NAME}_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"
|
||||
},
|
||||
"bitcoin_mount_dir": {
|
||||
"type": "string",
|
||||
"description": "Where to mount the bitcoin dir"
|
||||
},
|
||||
"lnd_mount_dir": {
|
||||
"type": "string",
|
||||
"description": "Where to mount the lnd dir"
|
||||
},
|
||||
"c_lightning_mount_dir": {
|
||||
"type": "string",
|
||||
"description": "Where to mount the c-lightning 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. 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'."
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": ["name", "image"]
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": ["metadata", "containers"],
|
||||
"additionalProperties": false
|
||||
}
|
188
apps.json
188
apps.json
|
@ -1,188 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "bitfeed",
|
||||
"name": "Bitfeed",
|
||||
"repo": "https://github.com/bitfeed-project/bitfeed",
|
||||
"version": "2.2.1"
|
||||
},
|
||||
{
|
||||
"id": "bluewallet",
|
||||
"name": "BlueWallet Lightning",
|
||||
"repo": "https://github.com/BlueWallet/LndHub",
|
||||
"version": "1.4.1"
|
||||
},
|
||||
{
|
||||
"id": "btc-rpc-explorer",
|
||||
"name": "BTC RPC Explorer",
|
||||
"repo": "https://github.com/janoside/btc-rpc-explorer",
|
||||
"version": "3.3.0"
|
||||
},
|
||||
{
|
||||
"id": "btc-rpc-explorer-public",
|
||||
"name": "BTC RPC Explorer (Public)",
|
||||
"repo": "https://github.com/janoside/btc-rpc-explorer",
|
||||
"version": "3.3.0"
|
||||
},
|
||||
{
|
||||
"id": "btc-rpc-explorer-public-fast",
|
||||
"name": "BTC RPC Explorer (Public; Fast version)",
|
||||
"repo": "https://github.com/janoside/btc-rpc-explorer",
|
||||
"version": "3.3.0"
|
||||
},
|
||||
{
|
||||
"id": "btcpay-server",
|
||||
"name": "BTCPay Server",
|
||||
"repo": "https://github.com/btcpayserver/btcpayserver",
|
||||
"version": "1.4.9"
|
||||
},
|
||||
{
|
||||
"id": "code-server",
|
||||
"name": "code-server",
|
||||
"repo": "https://github.com/cdr/code-server",
|
||||
"version": "4.2.0"
|
||||
},
|
||||
{
|
||||
"id": "jam",
|
||||
"name": "JAM",
|
||||
"repo": "https://github.com/joinmarket-webui/joinmarket-webui",
|
||||
"version": "0.0.5"
|
||||
},
|
||||
{
|
||||
"id": "krystal-bull",
|
||||
"name": "Krystal Bull",
|
||||
"repo": "https://github.com/bitcoin-s/krystal-bull",
|
||||
"version": "1.7.0-212-d9126650"
|
||||
},
|
||||
{
|
||||
"id": "lightning-shell",
|
||||
"name": "Lightning Shell",
|
||||
"repo": "https://github.com/ibz/lightning-shell",
|
||||
"version": "0.1.10"
|
||||
},
|
||||
{
|
||||
"id": "lightning-terminal",
|
||||
"name": "Lightning Terminal",
|
||||
"repo": "https://github.com/lightninglabs/lightning-terminal",
|
||||
"version": "0.6.5-alpha"
|
||||
},
|
||||
{
|
||||
"id": "lnbits",
|
||||
"name": "LNbits",
|
||||
"repo": "https://github.com/lnbits/lnbits",
|
||||
"version": "baf55af"
|
||||
},
|
||||
{
|
||||
"id": "lndg",
|
||||
"name": "LNDg",
|
||||
"repo": "https://github.com/cryptosharks131/lndg",
|
||||
"version": "1.0.5"
|
||||
},
|
||||
{
|
||||
"id": "lnmarkets",
|
||||
"name": "LN Markets",
|
||||
"repo": "https://github.com/ln-markets/umbrel",
|
||||
"version": "1.1.5"
|
||||
},
|
||||
{
|
||||
"id": "lnme",
|
||||
"name": "LnMe",
|
||||
"repo": "https://github.com/bumi/lnme",
|
||||
"version": "1.4.0"
|
||||
},
|
||||
{
|
||||
"id": "mempool",
|
||||
"name": "Mempool",
|
||||
"repo": "https://github.com/mempool/mempool",
|
||||
"version": "2.3.1"
|
||||
},
|
||||
{
|
||||
"id": "nextcloud",
|
||||
"name": "Nextcloud",
|
||||
"repo": "https://github.com/nextcloud/server",
|
||||
"version": "23.0.3"
|
||||
},
|
||||
{
|
||||
"id": "node-red",
|
||||
"name": "Node-RED",
|
||||
"repo": "https://github.com/node-red/node-red",
|
||||
"version": "2.2.2"
|
||||
},
|
||||
{
|
||||
"id": "ride-the-lightning",
|
||||
"name": "Ride The Lightning",
|
||||
"repo": "https://github.com/Ride-The-Lightning/RTL",
|
||||
"version": "0.12.2"
|
||||
},
|
||||
{
|
||||
"id": "snowflake",
|
||||
"name": "Snowflake",
|
||||
"repo": "https://github.com/runcitadel/docker-snowflake",
|
||||
"version": "2.1.0"
|
||||
},
|
||||
{
|
||||
"id": "specter-desktop",
|
||||
"name": "Specter Desktop",
|
||||
"repo": "https://github.com/cryptoadvance/specter-desktop",
|
||||
"version": "1.9.2"
|
||||
},
|
||||
{
|
||||
"id": "sphinx-relay",
|
||||
"name": "Sphinx Relay",
|
||||
"repo": "https://github.com/stakwork/sphinx-relay",
|
||||
"version": "2.2.6"
|
||||
},
|
||||
{
|
||||
"id": "spigot-mc",
|
||||
"name": "Spigot",
|
||||
"repo": "https://github.com/SpigotMC",
|
||||
"version": "Latest"
|
||||
},
|
||||
{
|
||||
"id": "squeaknode",
|
||||
"name": "Squeaknode",
|
||||
"repo": "https://github.com/squeaknode/squeaknode",
|
||||
"version": "0.2.16"
|
||||
},
|
||||
{
|
||||
"id": "synapse",
|
||||
"name": "Synapse",
|
||||
"repo": "https://github.com/matrix-org/synapse",
|
||||
"version": "1.56.0"
|
||||
},
|
||||
{
|
||||
"id": "synapse-admin",
|
||||
"name": "Synapse Admin",
|
||||
"repo": "https://github.com/Awesome-Technologies/synapse-admin",
|
||||
"version": "0.8.5"
|
||||
},
|
||||
{
|
||||
"id": "tailscale",
|
||||
"name": "Tailscale",
|
||||
"repo": "https://github.com/tailscale/tailscale",
|
||||
"version": "23.0.2"
|
||||
},
|
||||
{
|
||||
"id": "thunderhub",
|
||||
"name": "ThunderHub",
|
||||
"repo": "https://github.com/apotdevin/thunderhub",
|
||||
"version": "0.13.7"
|
||||
},
|
||||
{
|
||||
"id": "uptime-kuma",
|
||||
"name": "Uptime Kuma",
|
||||
"repo": "https://github.com/louislam/uptime-kuma",
|
||||
"version": "1.13.1"
|
||||
},
|
||||
{
|
||||
"id": "usocial",
|
||||
"name": "Usocial",
|
||||
"repo": "https://github.com/ibz/usocial",
|
||||
"version": "0.1.5"
|
||||
},
|
||||
{
|
||||
"id": "vaultwarden",
|
||||
"name": "Vaultwarden",
|
||||
"repo": "https://github.com/dani-garcia/vaultwarden",
|
||||
"version": "1.24.0"
|
||||
}
|
||||
]
|
|
@ -1,3 +0,0 @@
|
|||
SPDX-FileCopyrightText: 2021 Aaron Dewes <aaron.dewes@protonmail.com>
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
188
apps/apps.json
188
apps/apps.json
|
@ -1,188 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "bitfeed",
|
||||
"name": "Bitfeed",
|
||||
"repo": "https://github.com/bitfeed-project/bitfeed",
|
||||
"version": "2.2.1"
|
||||
},
|
||||
{
|
||||
"id": "bluewallet",
|
||||
"name": "BlueWallet Lightning",
|
||||
"repo": "https://github.com/BlueWallet/LndHub",
|
||||
"version": "1.4.1"
|
||||
},
|
||||
{
|
||||
"id": "btc-rpc-explorer",
|
||||
"name": "BTC RPC Explorer",
|
||||
"repo": "https://github.com/janoside/btc-rpc-explorer",
|
||||
"version": "3.3.0"
|
||||
},
|
||||
{
|
||||
"id": "btc-rpc-explorer-public",
|
||||
"name": "BTC RPC Explorer (Public)",
|
||||
"repo": "https://github.com/janoside/btc-rpc-explorer",
|
||||
"version": "3.3.0"
|
||||
},
|
||||
{
|
||||
"id": "btc-rpc-explorer-public-fast",
|
||||
"name": "BTC RPC Explorer (Public; Fast version)",
|
||||
"repo": "https://github.com/janoside/btc-rpc-explorer",
|
||||
"version": "3.3.0"
|
||||
},
|
||||
{
|
||||
"id": "btcpay-server",
|
||||
"name": "BTCPay Server",
|
||||
"repo": "https://github.com/btcpayserver/btcpayserver",
|
||||
"version": "1.4.9"
|
||||
},
|
||||
{
|
||||
"id": "code-server",
|
||||
"name": "code-server",
|
||||
"repo": "https://github.com/cdr/code-server",
|
||||
"version": "4.2.0"
|
||||
},
|
||||
{
|
||||
"id": "jam",
|
||||
"name": "JAM",
|
||||
"repo": "https://github.com/joinmarket-webui/joinmarket-webui",
|
||||
"version": "0.0.5"
|
||||
},
|
||||
{
|
||||
"id": "krystal-bull",
|
||||
"name": "Krystal Bull",
|
||||
"repo": "https://github.com/bitcoin-s/krystal-bull",
|
||||
"version": "1.7.0-212-d9126650"
|
||||
},
|
||||
{
|
||||
"id": "lightning-shell",
|
||||
"name": "Lightning Shell",
|
||||
"repo": "https://github.com/ibz/lightning-shell",
|
||||
"version": "0.1.10"
|
||||
},
|
||||
{
|
||||
"id": "lightning-terminal",
|
||||
"name": "Lightning Terminal",
|
||||
"repo": "https://github.com/lightninglabs/lightning-terminal",
|
||||
"version": "0.6.5-alpha"
|
||||
},
|
||||
{
|
||||
"id": "lnbits",
|
||||
"name": "LNbits",
|
||||
"repo": "https://github.com/lnbits/lnbits",
|
||||
"version": "baf55af"
|
||||
},
|
||||
{
|
||||
"id": "lndg",
|
||||
"name": "LNDg",
|
||||
"repo": "https://github.com/cryptosharks131/lndg",
|
||||
"version": "1.0.5"
|
||||
},
|
||||
{
|
||||
"id": "lnmarkets",
|
||||
"name": "LN Markets",
|
||||
"repo": "https://github.com/ln-markets/umbrel",
|
||||
"version": "1.1.5"
|
||||
},
|
||||
{
|
||||
"id": "lnme",
|
||||
"name": "LnMe",
|
||||
"repo": "https://github.com/bumi/lnme",
|
||||
"version": "1.4.0"
|
||||
},
|
||||
{
|
||||
"id": "mempool",
|
||||
"name": "Mempool",
|
||||
"repo": "https://github.com/mempool/mempool",
|
||||
"version": "2.3.1"
|
||||
},
|
||||
{
|
||||
"id": "nextcloud",
|
||||
"name": "Nextcloud",
|
||||
"repo": "https://github.com/nextcloud/server",
|
||||
"version": "23.0.3"
|
||||
},
|
||||
{
|
||||
"id": "node-red",
|
||||
"name": "Node-RED",
|
||||
"repo": "https://github.com/node-red/node-red",
|
||||
"version": "2.2.2"
|
||||
},
|
||||
{
|
||||
"id": "ride-the-lightning",
|
||||
"name": "Ride The Lightning",
|
||||
"repo": "https://github.com/Ride-The-Lightning/RTL",
|
||||
"version": "0.12.2"
|
||||
},
|
||||
{
|
||||
"id": "snowflake",
|
||||
"name": "Snowflake",
|
||||
"repo": "https://github.com/runcitadel/docker-snowflake",
|
||||
"version": "2.1.0"
|
||||
},
|
||||
{
|
||||
"id": "specter-desktop",
|
||||
"name": "Specter Desktop",
|
||||
"repo": "https://github.com/cryptoadvance/specter-desktop",
|
||||
"version": "1.9.2"
|
||||
},
|
||||
{
|
||||
"id": "sphinx-relay",
|
||||
"name": "Sphinx Relay",
|
||||
"repo": "https://github.com/stakwork/sphinx-relay",
|
||||
"version": "2.2.6"
|
||||
},
|
||||
{
|
||||
"id": "spigot-mc",
|
||||
"name": "Spigot",
|
||||
"repo": "https://github.com/SpigotMC",
|
||||
"version": "Latest"
|
||||
},
|
||||
{
|
||||
"id": "squeaknode",
|
||||
"name": "Squeaknode",
|
||||
"repo": "https://github.com/squeaknode/squeaknode",
|
||||
"version": "0.2.16"
|
||||
},
|
||||
{
|
||||
"id": "synapse",
|
||||
"name": "Synapse",
|
||||
"repo": "https://github.com/matrix-org/synapse",
|
||||
"version": "1.56.0"
|
||||
},
|
||||
{
|
||||
"id": "synapse-admin",
|
||||
"name": "Synapse Admin",
|
||||
"repo": "https://github.com/Awesome-Technologies/synapse-admin",
|
||||
"version": "0.8.5"
|
||||
},
|
||||
{
|
||||
"id": "tailscale",
|
||||
"name": "Tailscale",
|
||||
"repo": "https://github.com/tailscale/tailscale",
|
||||
"version": "23.0.2"
|
||||
},
|
||||
{
|
||||
"id": "thunderhub",
|
||||
"name": "ThunderHub",
|
||||
"repo": "https://github.com/apotdevin/thunderhub",
|
||||
"version": "0.13.7"
|
||||
},
|
||||
{
|
||||
"id": "uptime-kuma",
|
||||
"name": "Uptime Kuma",
|
||||
"repo": "https://github.com/louislam/uptime-kuma",
|
||||
"version": "1.13.1"
|
||||
},
|
||||
{
|
||||
"id": "usocial",
|
||||
"name": "Usocial",
|
||||
"repo": "https://github.com/ibz/usocial",
|
||||
"version": "0.1.5"
|
||||
},
|
||||
{
|
||||
"id": "vaultwarden",
|
||||
"name": "Vaultwarden",
|
||||
"repo": "https://github.com/dani-garcia/vaultwarden",
|
||||
"version": "1.24.0"
|
||||
}
|
||||
]
|
|
@ -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: Files
|
||||
name: Nextcloud
|
||||
|
|
|
@ -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: Ride The Lightning
|
||||
|
@ -45,9 +46,6 @@ containers:
|
|||
- loop:/loop
|
||||
- boltz:/boltz
|
||||
- rtl:/data
|
||||
permissions:
|
||||
- lnd
|
||||
- bitcoind
|
||||
- name: loop
|
||||
image: ghcr.io/runcitadel/loop:v0.17.0-beta@sha256:be434e96905e8bc158e13b46b2e425ff140b04218286c11bf8124e1a8f65e2a1
|
||||
user: 1000:1000
|
||||
|
@ -61,8 +59,6 @@ containers:
|
|||
- --restlisten=0.0.0.0:8081
|
||||
data:
|
||||
- loop:/data
|
||||
permissions:
|
||||
- lnd
|
||||
- name: boltz
|
||||
image: boltz/boltz-lnd:1.2.6@sha256:01a56dd357a2460bfd0ecdd726d6db3ab59d78ee691250831d09ba5de3fec7ce
|
||||
user: 1000:1000
|
||||
|
@ -77,5 +73,3 @@ containers:
|
|||
- --lnd.certificate="/lnd/tls.cert"
|
||||
- --rpc.rest.host="$APP_RIDE_THE_LIGHTNING_BOLTZ_IP"
|
||||
- --rpc.rest.port="9003"
|
||||
permissions:
|
||||
- lnd
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
#
|
||||
# SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
|
||||
|
||||
# yaml-language-server: $schema=../../app-standard-v2.json
|
||||
# yaml-language-server: $schema=../../app-standard-v3.yml
|
||||
|
||||
version: 2
|
||||
version: 3
|
||||
|
||||
metadata:
|
||||
category: Tor
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
# SPDX-FileCopyrightText: 2021 Aaron Dewes <aaron.dewes@protonmail.com>
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
|
@ -1,22 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Aaron Dewes <aaron.dewes@protonmail.com>
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import os
|
||||
import json
|
||||
|
||||
from lib.validate import findAndValidateApps
|
||||
from lib.metadata import getSimpleAppRegistry
|
||||
|
||||
appsDir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..", "apps")
|
||||
|
||||
def update():
|
||||
apps = findAndValidateApps(appsDir)
|
||||
simpleRegistry = getSimpleAppRegistry(apps, appsDir)
|
||||
with open(os.path.join(appsDir, "..", "apps.json"), "w") as f:
|
||||
json.dump(simpleRegistry, f, indent=4, sort_keys=True)
|
||||
with open(os.path.join(appsDir, "apps.json"), "w") as f:
|
||||
json.dump(simpleRegistry, f, indent=4, sort_keys=True)
|
||||
print("Wrote information to apps.json")
|
|
@ -1,25 +0,0 @@
|
|||
# SPDX-FileCopyrightText: 2021 Aaron Dewes <aaron.dewes@protonmail.com>
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import os
|
||||
import yaml
|
||||
|
||||
# Creates a registry with just the things we need in the update checker so we can remove registry.json from this repo.
|
||||
# We need these properties: id, name, repo, version, nothing else. We don't need to check for the existence of these properties.
|
||||
# app_yml['metadata'] may contain other properties, but we don't need them and we remove them from the registry.
|
||||
def getSimpleAppRegistry(apps, app_path):
|
||||
app_metadata = []
|
||||
for app in apps:
|
||||
app_yml_path = os.path.join(app_path, app, 'app.yml')
|
||||
if os.path.isfile(app_yml_path):
|
||||
with open(app_yml_path, 'r') as f:
|
||||
app_yml = yaml.safe_load(f.read())
|
||||
metadata = {
|
||||
'id': app,
|
||||
'name': app_yml['metadata']['name'],
|
||||
'repo': app_yml['metadata']['repo'],
|
||||
'version': app_yml['metadata']['version']
|
||||
}
|
||||
app_metadata.append(metadata)
|
||||
return sorted(app_metadata, key=lambda app: app['id'])
|
|
@ -1,22 +0,0 @@
|
|||
# SPDX-FileCopyrightText: 2021 Aaron Dewes <aaron.dewes@protonmail.com>
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import os
|
||||
|
||||
# Validates app data
|
||||
# Returns true if valid, false otherwise
|
||||
appDir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")
|
||||
|
||||
|
||||
# Lists all folders in a directory and checks if they are valid
|
||||
# A folder is valid if it contains an app.yml file
|
||||
# A folder is invalid if it doesn't contain an app.yml file
|
||||
def findAndValidateApps(dir: str):
|
||||
apps = []
|
||||
for root, dirs, files in os.walk(dir, topdown=False):
|
||||
for name in dirs:
|
||||
app_dir = os.path.join(root, name)
|
||||
if os.path.isfile(os.path.join(app_dir, "app.yml")):
|
||||
apps.append(name)
|
||||
return apps
|
Loading…
Reference in New Issue
Block a user