Compare commits

...

50 Commits

Author SHA1 Message Date
Aaron Dewes
6ed7bd64db Update BTCPay 2022-08-21 17:29:33 +02:00
AaronDewes
bda664d79d Merge branch 'v3-dev' into v4-tmpl 2022-08-18 11:39:31 +00:00
AaronDewes
90747352e8 Merge branch 'v3-dev' into v4-tmpl 2022-07-22 20:22:02 +00:00
ok300
ce495fd615
Bump app version to v0.3.1 (#33) 2022-07-22 09:07:35 +02:00
Aaron Dewes
7b221b1ea8
Create .gitkeep 2022-07-21 16:18:19 +02:00
Aaron Dewes
b0163fbb1e
Rename apps/oak-node/.gitkeep to apps/oak-node/log/.gitkeep 2022-07-21 16:13:23 +02:00
Aaron Dewes
38c7933231
Create .gitkeep 2022-07-21 16:12:49 +02:00
Aaron Dewes
f3e3c172ef
Update app.yml 2022-07-21 16:11:06 +02:00
Aaron Dewes
92d522ecc8
Update app.yml 2022-07-21 16:09:46 +02:00
Aaron Dewes
910b96b03e
Oak node for Citadel 2022-07-21 15:51:19 +02:00
Aaron Dewes
58da90f744
Fix name 2022-07-19 19:19:31 +02:00
Aaron Dewes
dad33776e6
Update app.yml.jinja 2022-07-19 19:16:07 +02:00
AaronDewes
d498120b8e Remove dynamic port assignment
This was removed for app.yml v4
2022-07-19 16:19:48 +00:00
AaronDewes
b0c7e25d8d Fix file extension 2022-07-19 16:12:52 +00:00
AaronDewes
e0495d9525 Add CLN to BTCPay 2022-07-19 16:12:04 +00:00
AaronDewes
a7c459ad0d Merge v3 2022-07-19 16:05:33 +00:00
Aaron Dewes
fbbb1ff5a9
Update app.yml 2022-07-19 17:33:14 +02:00
Aaron Dewes
21604abc3d
Update app.yml 2022-07-19 17:31:22 +02:00
Aaron Dewes
1626aefd83
Update app.yml 2022-07-19 17:15:18 +02:00
Aaron Dewes
76eee05313
Remove symlink 2022-07-19 17:06:02 +02:00
AaronDewes
8219acedf2 WIP: Templates 2022-07-12 05:43:46 +00:00
AaronDewes
2c62baedbc Merge branch 'v3-dev' into v4-dev 2022-07-12 05:40:17 +00:00
Aaron Dewes
f4484e1d7c
Remove leftover 2022-07-09 12:53:10 +02:00
Aaron Dewes
8ea945dc92
Update app.yml 2022-07-08 20:58:28 +02:00
AaronDewes
e559694371 Update RTL 2022-07-07 17:17:53 +00:00
AaronDewes
011cfe54a7 Update loop 2022-07-07 17:12:32 +00:00
AaronDewes
1eddba1077 Add ln-visualizer 2022-06-20 15:33:57 +00:00
Aaron Dewes
4358f0fa46
Forgot the d 2022-06-19 16:37:08 +02:00
Aaron Dewes
1724d90e53
Fix env var names 2022-06-19 16:31:59 +02:00
Aaron Dewes
4d0f5c009b
Fix woofbot port definition 2022-06-19 16:30:45 +02:00
AaronDewes
2718b5b709 Add WoofBot 2022-06-19 14:09:25 +00:00
AaronDewes
f856fdd40b Revert "Update apps"
This reverts commit 6f28fabe85.
2022-06-19 13:58:15 +00:00
AaronDewes
ab182120b0 Merge branch 'v3-dev' into v4-dev 2022-06-19 13:57:42 +00:00
AaronDewes
c4f6673ccb Update some apps 2022-06-15 08:23:43 +00:00
AaronDewes
2840c65fe6 Fix synapse version 2022-06-15 08:03:27 +00:00
AaronDewes
1238c81efb Fix Bitfeed 2022-06-14 17:57:05 +00:00
AaronDewes
a5d6fa505c Port Bitfeed to app.yml v4 2022-06-14 17:55:59 +00:00
Aaron Dewes
36f8f1a0dc
Fix c-lightning name 2022-06-13 08:56:43 +02:00
Aaron Dewes
0aef563b8e
Update nginx.conf 2022-06-10 20:20:46 +02:00
Aaron Dewes
bb16810c89
Change username 2022-06-10 16:49:16 +02:00
Aaron Dewes
fe1db7865c
Update app.yml 2022-06-10 15:12:58 +02:00
Aaron Dewes
8c02b06e95
Fix agora filebrowser SHA 2022-06-10 15:07:42 +02:00
Aaron Dewes
70bf9e3703
Minor fixes for agora 2022-06-10 15:03:11 +02:00
AaronDewes
1bd4617e3d Merge branch 'v3-dev' into v4-dev 2022-06-10 08:14:01 +00:00
Aaron Dewes
a6c413aee2
Fix agora app 2022-06-08 10:12:10 +02:00
Aaron Dewes
f4c79a0f66
Fix app.yml v4 2022-06-08 09:16:41 +02:00
AaronDewes
b3ee1ebb22 Port JAM to app.yml v4 2022-06-07 06:22:17 +00:00
AaronDewes
ac657ca1b6 Add agora 2022-06-07 05:58:43 +00:00
AaronDewes
a8a0acfb91 Port some apps to app.yml v4 2022-06-06 15:22:56 +00:00
AaronDewes
b4728de06f Port RTL to app.yml v4 2022-06-06 14:58:36 +00:00
23 changed files with 781 additions and 142 deletions

5
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"recommendations": [
"samuelcolvin.jinjahtml"
]
}

245
app-standard-v4.yml Normal file
View File

@ -0,0 +1,245 @@
---
$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

75
apps/agora/app.yml Normal file
View File

@ -0,0 +1,75 @@
# SPDX-FileCopyrightText: 2022 Jonathan Zernik
# SPDX-FileCopyrightText: 2022 Citadel and contributors
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v4.yml
citadel_version: 4
metadata:
category: Files
name: Agora
version: v0.1.2
tagline: Sell your files for Bitcoin
description: >-
Agora is a project that allows anyone to sell files on the web for bitcoin using the Lightning Network.\n\nAgora serves the contents of a local directory, providing file listings and downloads over HTTP.
For example, you can point it at a directory full of PDFs, allowing users to browse and view the PDFs in their web browser.
If Agora is connected to an LND node, it can be configured to require Lightning Network payments for downloads.
developers:
Casey Rodarmor & Sönke Hahn: https://agora-org.github.io/agora/
permissions:
- lnd
repo:
Public: https://github.com/agora-org/agora
support: https://t.me/agoradiscussion
gallery: ["1.jpg", "2.jpg", "3.jpg"]
path: /admin/
defaultPassword: $APP_SEED
services:
filebrowser:
image: filebrowser/filebrowser:v2.21.1@sha256:e1f43b1b8a1acb1d7cd5f934454e7a2ef571ea3bab48b0e1ed0fa97ef9df8d69
user: 1000:1000
restart: on-failure
stop_grace_period: 1m
mounts:
data:
data/files: /srv
data/database/filebrowser.db: /database.db
data/entrypoint.sh: /citadel-entrypoint.sh
environment:
APP_PASSWORD: "$APP_SEED"
entrypoint: sh /citadel-entrypoint.sh
agora:
image: ghcr.io/agora-org/agora:sha-bb037f2@sha256:ab5538638fa5c6c709c5dd295df1dd57e419abdbd2328075843ce6fbe0951820
restart: on-failure
stop_grace_period: 1m
mounts:
data:
data/files: /files
lnd: /lnd
user: "1000:1000"
environment:
# LND environment variables
LND_RPC_AUTHORITY: "$LND_IP:$LND_GRPC_PORT"
TLS_CERT_PATH: "/lnd/tls.cert"
INVOICES_MACAROON_PATH: "/lnd/data/chain/bitcoin/$BITCOIN_NETWORK/invoice.macaroon"
# App specific environment variables
FILES_DIR: "/files"
AGORA_PORT: "8080"
main:
image: nginx:1.21.6@sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767
init: true
restart: on-failure
mounts:
data:
data/nginx.conf: /etc/nginx/nginx.conf
data/www: /usr/share/nginx/html
port: 80
depends_on:
- agora
- filebrowser

View File

8
apps/agora/data/entrypoint.sh Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/env sh
# Update configs
/filebrowser config init
/filebrowser config set --branding.name "Agora Admin"
/filebrowser users add citadel ${APP_PASSWORD}
exec /filebrowser -p 8080 --baseurl "/admin/files"

View File

@ -0,0 +1,49 @@
version: "3.7"
services:
filebrowser:
image: filebrowser/filebrowser:v2.21.1@sha256:6da71bfffc1345075a5cc06e0a7ae270098186407c62f4f71994e079677364d0
user: 1000:1000
restart: on-failure
stop_grace_period: 1m
volumes:
- ${APP_DATA_DIR}/files:/srv
- ${APP_DATA_DIR}/database/filebrowser.db:/database.db
- ${APP_DATA_DIR}/data:/data
environment:
APP_PASSWORD: "$APP_PASSWORD"
entrypoint: /data/entrypoint.sh
agora:
image: ghcr.io/agora-org/agora:sha-48d3205@sha256:35eda120a8d868c7fa3b9cbdcad7cc2245b9fe7e0c5356c8091bb0bf9a65222d
restart: on-failure
stop_grace_period: 1m
volumes:
- ${APP_DATA_DIR}/files:/files
- ${LND_DATA_DIR}:/lnd:ro
user: "1000:1000"
environment:
# LND environment variables
LND_RPC_AUTHORITY: "$LND_IP:$LND_GRPC_PORT"
TLS_CERT_PATH: "/lnd/tls.cert"
INVOICES_MACAROON_PATH: "/lnd/data/chain/bitcoin/$BITCOIN_NETWORK/invoice.macaroon"
# App specific environment variables
FILES_DIR: "/files"
AGORA_PORT: 8080
nginx:
image: nginx:1.19-alpine@sha256:c2ce58e024275728b00a554ac25628af25c54782865b3487b11c21cafb7fabda
init: true
restart: on-failure
volumes:
- ${APP_DATA_DIR}/nginx/nginx.conf:/etc/nginx/nginx.conf
- ${APP_DATA_DIR}/data/www:/usr/share/nginx/html
ports:
- "$APP_AGORA_PORT:80"
depends_on:
- agora
- filebrowser
networks:
default:
ipv4_address: $APP_AGORA_IP

View File

@ -0,0 +1,22 @@
events { }
http {
server {
listen 80;
server_name _;
location / {
proxy_pass http://agora:8080;
}
location /admin {
include /etc/nginx/mime.types;
root /usr/share/nginx/html;
index index.html;
}
location /admin/files {
proxy_pass http://filebrowser:8080;
}
}
}

View File

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Agora Admin</title>
<link rel="stylesheet" type="text/css" href="pico.min.css" />
</head>
<body>
<main class="container container-fluid">
<h1>Welcome to Agora Admin!</h1>
<ul>
<li><a href="/">Download files</a></li>
<li>
<a href='http://<!--#echo var="ssihiddenservice"-->'
>Download files over Tor</a
>
</li>
<li><a href="/admin/files">Upload and manage files</a></li>
<li>
<a target="_blank" rel="noopener noreferrer" href="https://github.com/agora-org/agora#access-configuration"
>Agora Configuration Docs</a
>
</li>
</ul>
</main>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -2,13 +2,14 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v3.yml
# yaml-language-server: $schema=../../app-standard-v4.yml
citadel_version: 4
version: 3
metadata:
category: Explorers
name: Bitfeed
version: 2.2.1
version: 2.3.4
tagline: A live visualization of your node's mempool
description: A self-hosted version of Bitfeed - the open source mempool & block
visualizer available at https://bits.monospace.live. Watch as new
@ -17,9 +18,10 @@ metadata:
the latest block, or simply enjoy a soothing Bitcoin screensaver.
developers:
Mononaut: https://monospace.live
dependencies:
permissions:
- bitcoind
repo: https://github.com/bitfeed-project/bitfeed
repo:
Public: https://github.com/bitfeed-project/bitfeed
support: https://github.com/bitfeed-project/bitfeed/issues
gallery:
- 1.jpg
@ -29,9 +31,9 @@ metadata:
- main
- api
containers:
- name: main
image: ghcr.io/bitfeed-project/bitfeed-client:v2.2.1@sha256:70c89d49d20ba3da21c648c259f45a4b89e06bfe1d97374a092dce6f891d03c6
services:
main:
image: ghcr.io/bitfeed-project/bitfeed-client:v2.3.4@sha256:5d57477e69a789d547b1c6c441e0ff49e2f5ed46bf4b5ab9ca9f5403f385e926
restart: on-failure
stop_grace_period: 1m
port: 80
@ -42,8 +44,8 @@ containers:
BACKEND_HOST: $APP_BITFEED_API_IP
BACKEND_PORT: "3000"
- name: api
image: ghcr.io/bitfeed-project/bitfeed-server:v2.2.1@sha256:60eae8109d3d6a377aec8a954f93b6be9ee48de717c9ab5810c2a5afcf688554
api:
image: ghcr.io/bitfeed-project/bitfeed-server:v2.3.4@sha256:e38a2e07389cf6d0c519e856291e535fdd10a1e50143d528c82bfe0baf06894f
user: 1000:1000
restart: on-failure
stop_grace_period: 1m
@ -56,7 +58,8 @@ containers:
BITCOIN_RPC_PORT: $BITCOIN_RPC_PORT
BITCOIN_RPC_USER: $BITCOIN_RPC_USER
BITCOIN_RPC_PASS: $BITCOIN_RPC_PASS
RPC_POOLS: 3
RPC_POOL_SIZE: 4
data:
- data:/app/data
RPC_POOLS: "3"
RPC_POOL_SIZE: "4"
mounts:
data:
data: /app/data

View File

@ -1,10 +1,11 @@
# SPDX-FileCopyrightText: 2021 Citadel and contributors
# SPDX-FileCopyrightText: Citadel and contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v3.yml
# yaml-language-server: $schema=../../app-standard-v4.yml
citadel_version: 4
version: 3
metadata:
category: Payments
name: BTCPay Server
@ -15,38 +16,27 @@ metadata:
which allows you to accept bitcoin without fees or intermediaries. "
developers:
BTCPay Server Foundation: https://btcpayserver.org
dependencies:
permissions:
{% if services is containing("lnd") %}
- lnd
{% elif services is containing("c-lightning") %}
- c-lightning
{% else %}
- - lnd
- c-lightning
{% endif %}
- bitcoind
repo: https://github.com/btcpayserver/btcpayserver
repo:
Public: https://github.com/btcpayserver/btcpayserver
support: https://chat.btcpayserver.org
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
containers:
- name: nbxplorer
image: nicolasdorier/nbxplorer:2.3.28@sha256:62333c578aa85487f8f8e292b4a434272fd919ce8f2e58b2d23af6342dd92778
user: 1000:1000
environment:
NBXPLORER_DATADIR: /data
NBXPLORER_NETWORK: $BITCOIN_NETWORK
NBXPLORER_PORT: 32838
NBXPLORER_BIND: 0.0.0.0
NBXPLORER_CHAINS: btc
NBXPLORER_SIGNALFILEDIR: /data
NBXPLORER_BTCRPCURL: http://$BITCOIN_IP:$BITCOIN_RPC_PORT
NBXPLORER_BTCNODEENDPOINT: $BITCOIN_IP:$BITCOIN_P2P_PORT
NBXPLORER_BTCRPCUSER: $BITCOIN_RPC_USER
NBXPLORER_BTCRPCPASSWORD: $BITCOIN_RPC_PASS
NBXPLORER_POSTGRES: User
ID=postgres;Host=$APP_BTCPAY_SERVER_POSTGRES_IP;Port=5432;Application
Name=nbxplorer;MaxPoolSize=20;Database=nbxplorer${BITCOIN_NETWORK}
NBXPLORER_AUTOMIGRATE: 1
NBXPLORER_NOMIGRATEEVTS: 1
data:
- data/nbxplorer:/data
- name: main
services:
main:
port: 3000
image: btcpayserver/btcpayserver:1.6.9@sha256:1162bb6231cbdf0a8297107951afe8a44c60a86814d07454f24b4ccf05ba1f71
depends_on:
- nbxplorer
@ -63,19 +53,54 @@ containers:
ID=postgres;Host=$APP_BTCPAY_SERVER_POSTGRES_IP;Port=5432;Application
Name=btcpayserver;Database=btcpayserver$BITCOIN_NETWORK
BTCPAY_NETWORK: $BITCOIN_NETWORK
BTCPAY_BIND: 0.0.0.0:$APP_BTCPAY_SERVER_MAIN_PORT
BTCPAY_BIND: 0.0.0.0:3000
BTCPAY_CHAINS: btc
BTCPAY_BTCEXPLORERURL: http://$APP_BTCPAY_SERVER_NBXPLORER_IP:32838
{% if services is containing("lnd") %}
BTCPAY_BTCLIGHTNING: type=lnd-rest;server=https://$LND_IP:$LND_REST_PORT/;macaroonfilepath=/lnd/data/chain/bitcoin/$BITCOIN_NETWORK/admin.macaroon;allowinsecure=true
{% elif services is containing("c-lightning") %}
BTCPAY_BTCLIGHTNING: type=clightning;server=unix://c-lightning/bitcoin/lightning-rpc
{%endif %}
BTCPAY_SOCKSENDPOINT: $TOR_PROXY_IP:$TOR_PROXY_PORT
data:
- data/nbxplorer:/data/.nbxplorer
- data/btcpay:/data
mounts:
{% if services is containing("lnd") %}
lnd: /lnd
{% elif services is containing("c-lightning") %}
c_lightning: /c-lightning
{%endif %}
data:
data/nbxplorer: /data/.nbxplorer
data/btcpay: /data
user: 1000:1000
- name: postgres
nbxplorer:
depends_on:
- postgres
image: nicolasdorier/nbxplorer:2.3.28@sha256:62333c578aa85487f8f8e292b4a434272fd919ce8f2e58b2d23af6342dd92778
user: 1000:1000
environment:
NBXPLORER_DATADIR: /data
NBXPLORER_NETWORK: $BITCOIN_NETWORK
NBXPLORER_PORT: "32838"
NBXPLORER_BIND: 0.0.0.0
NBXPLORER_CHAINS: btc
NBXPLORER_SIGNALFILEDIR: /data
NBXPLORER_BTCRPCURL: http://$BITCOIN_IP:$BITCOIN_RPC_PORT
NBXPLORER_BTCNODEENDPOINT: $BITCOIN_IP:$BITCOIN_P2P_PORT
NBXPLORER_BTCRPCUSER: $BITCOIN_RPC_USER
NBXPLORER_BTCRPCPASSWORD: $BITCOIN_RPC_PASS
NBXPLORER_POSTGRES: User
ID=postgres;Host=$APP_BTCPAY_SERVER_POSTGRES_IP;Port=5432;Application
Name=nbxplorer;MaxPoolSize=20;Database=nbxplorer${BITCOIN_NETWORK}
NBXPLORER_AUTOMIGRATE: "1"
NBXPLORER_NOMIGRATEEVTS: "1"
mounts:
data:
data/nbxplorer: /data
postgres:
image: ghcr.io/runcitadel/postgres:main@sha256:8f25afe966a63fd3f11a1052e73f30b9de5ddc0876bebaaf944d485374c73c01
user: 1000:1000
environment:
POSTGRES_HOST_AUTH_METHOD: trust
data:
- data/postgres:/var/lib/postgresql/data
mounts:
data:
data/postgres: /var/lib/postgresql/data

View File

@ -1,10 +1,11 @@
# SPDX-FileCopyrightText: 2021 Citadel and contributors
# SPDX-FileCopyrightText: 2021-2022 Citadel and contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# yaml-language-server: $schema=../../app-standard-v3.yml
# yaml-language-server: $schema=../../app-standard-v4.yml
citadel_version: 4
version: 3
metadata:
category: Wallets
name: JAM
@ -17,9 +18,10 @@ metadata:
beginners while still providing the features advanced users expect.
developers:
JAM developers: https://github.com/joinmarket-webui/jam
dependencies:
permissions:
- bitcoind
repo: https://github.com/joinmarket-webui/jam
repo:
Public: https://github.com/joinmarket-webui/jam
support: https://t.me/JoinMarketWebUI
gallery:
- 1.jpg
@ -28,26 +30,28 @@ metadata:
- 4.jpg
- 5.jpg
defaultPassword: $APP_SEED
containers:
- name: joinmarket-webui
services:
main:
image: ghcr.io/joinmarket-webui/joinmarket-webui-standalone:v0.0.10-clientserver-v0.9.6
restart: on-failure
stop_grace_period: 1m
init: true
port: 80
data:
- data/joinmarket:/root/.joinmarket
mounts:
data:
data/joinmarket: /root/.joinmarket
environment:
RESTORE_DEFAULT_CONFIG: "true"
REMOVE_LOCK_FILES: "true"
ENSURE_WALLET: "true"
APP_USER: citadel
APP_PASSWORD: ${APP_SEED}
jm_network: $BITCOIN_NETWORK
jm_rpc_host: $BITCOIN_IP
jm_rpc_port: $BITCOIN_RPC_PORT
jm_rpc_user: $BITCOIN_RPC_USER
jm_rpc_password: ${BITCOIN_RPC_PASS}
jm_rpc_wallet_file: jm_webui_default
jm_max_cj_fee_abs: 300000
jm_max_cj_fee_rel: 0.0003
jm_network: $BITCOIN_NETWORK
jm_max_cj_fee_abs: "300000"
jm_max_cj_fee_rel: "0.0003"

View File

@ -0,0 +1,52 @@
# SPDX-FileCopyrightText: 2022 Citadel and contributors
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v4.yml
citadel_version: 4
metadata:
category: Explorers
name: LnVisualizer
version: "0.0.20"
tagline: View the Lightning Network from your node's perspective
description:
Your Lightning node is continuously receiving, storing, and transmitting graph information.
LnVisualizer takes this data and transforms it into an interactive, 3D graph.
Search for nodes, filter the graph, and write custom queries to help understand your position in the network.
developers:
Max Kotlan: https://lnvisualizer.com
permissions:
- lnd
repo:
Public: https://github.com/MaxKotlan/LN-Visualizer
support: lnvisualizer@gmail.com
port: 5646
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
services:
main:
image: maxkotlan/ln-visualizer-web:v0.0.20@sha256:9e4fff7600666ce27d1c835fa66e4a3fb34aabd7018506d749134baf9e8bc481
restart: on-failure
port: 80
stop_grace_period: 1m
environment:
LN_VISUALIZER_API_URL: "http://${APP_LN_VISUALIZER_API_IP}:5647"
api:
image: maxkotlan/ln-visualizer-api:v0.0.20@sha256:cfea255f3343dbacf96c5470dcd442f1cc034337dfb46ecfbbc6d5c1978da1a4
restart: on-failure
stop_grace_period: 1m
user: 1000:1000
mounts:
lnd: /lnd
environment:
LND_CERT_FILE: "/lnd/tls.cert"
LND_MACAROON_FILE: "/lnd/data/chain/bitcoin/${BITCOIN_NETWORK}/readonly.macaroon"
LND_SOCKET: "${LND_IP}:${LND_GRPC_PORT}"

40
apps/oak-node/app.yml Normal file
View File

@ -0,0 +1,40 @@
citadel_version: 4
metadata:
name: Oak Node
version: 0.3.1
category: Automation
tagline: Do more with your LND node
developers:
Carlos: "https://oak-node.net"
permissions:
- lnd
repo:
Public: "https://oak-node.net"
support: "https://oak-node.net/forum"
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
description: "Oak Node gives you Scheduled Payments. Now you can send sats to a Lightning Address on a schedule. Support your favorite content creators every week, every day, or even every block! Up to you.\n\nOak Node also includes an optional bot module for more advanced users."
services:
web:
image: "oak-node.net/oak:v0.3.1@sha256:f78f19763705dfb2237fd8a5c78f27052a848a5e56d89b3ffbcdc1edef0ba57e"
user: "1000:1000"
stop_grace_period: 1m
restart: on-failure
environment:
ROCKET_ADDRESS: 0.0.0.0
ROCKET_PORT: 8100
OAK_LND_MACAROON_PATH: /lnd-dir/data/chain/bitcoin/$BITCOIN_NETWORK/admin.macaroon
OAK_LND_REST_API_URL: "https://$LND_IP:$LND_REST_PORT"
OAK_DATA_DIR: /data
OAK_LND_CERT_PATH: /lnd-dir/tls.cert
port: 8100
mounts:
lnd: /lnd-dir
data:
log: /oak/log
data: /data

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -2,54 +2,41 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v3.yml
# yaml-language-server: $schema=../../app-standard-v4.yml
citadel_version: 4
version: 3
metadata:
category: Lightning Node Management
name: Ride The Lightning
version: 0.13.0
tagline: Manage lightning node operations better
description: Haven't written a desription yet for this, sorry.
description: Haven't written a description yet for this, sorry.
developers:
Shahana and Suheb: ridethelightning.info
dependencies:
permissions:
{% if services is containing("lnd") %}
- lnd
{% elif services is containing("c-lightning") %}
- c-lightning
{% else %}
- - lnd
- c-lightning
{% endif %}
- bitcoind
repo: https://github.com/Ride-The-Lightning/RTL
repo:
Public: https://github.com/Ride-The-Lightning/RTL
support: https://twitter.com/RTL_App
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
defaultPassword: $APP_SEED
containers:
- name: main-lnd
image: shahanafarooqui/rtl:0.13.0@sha256:65f0ba6a978bcf26c0e43a86c256abac1d8bfda80016327880b1dec2d39c538b
user: 1000:1000
port: 3000
environment:
PORT: 3000
RTL_CONFIG_PATH: /data
CHANNEL_BACKUP_PATH: /data/backup
LN_IMPLEMENTATION: LND
LN_SERVER_URL: https://$LND_IP:$LND_REST_PORT
MACAROON_PATH: /lnd/data/chain/bitcoin/$BITCOIN_NETWORK
CONFIG_PATH: /lnd/lnd.conf
SWAP_SERVER_URL: https://$APP_RIDE_THE_LIGHTNING_LOOP_IP:8081
SWAP_MACAROON_PATH: /loop/.loop/$BITCOIN_NETWORK
BOLTZ_SERVER_URL: https://$APP_RIDE_THE_LIGHTNING_BOLTZ_IP:9003
BOLTZ_MACAROON_PATH: /boltz/.boltz-lnd/macaroons
APP_PASSWORD: $APP_SEED
data:
- loop:/loop
- boltz:/boltz
- rtl:/data
requires:
- lnd
- name: loop
image: ghcr.io/runcitadel/loop:v0.17.0-beta@sha256:be434e96905e8bc158e13b46b2e425ff140b04218286c11bf8124e1a8f65e2a1
services:
{% if services is containing("lnd") %}
loop:
image: ghcr.io/runcitadel/loop:main@sha256:9d57e9f6906741b643266735b8d1a63404475856ffaa8d12fcccd28bf8cf79fd
user: 1000:1000
environment:
HOME: /data
@ -59,18 +46,22 @@ containers:
- --lnd.macaroonpath="/lnd/data/chain/bitcoin/$BITCOIN_NETWORK/admin.macaroon"
- --lnd.tlspath="/lnd/tls.cert"
- --restlisten=0.0.0.0:8081
data:
- loop:/data
mounts:
lnd: /lnd
data:
loop: /data
requires:
- lnd
- name: boltz
boltz:
image: boltz/boltz-lnd:1.2.6@sha256:01a56dd357a2460bfd0ecdd726d6db3ab59d78ee691250831d09ba5de3fec7ce
user: 1000:1000
restart: on-failure
environment:
HOME: /data
data:
- boltz:/data
mounts:
lnd: /lnd
data:
boltz: /data
command:
- --lnd.host="$LND_IP"
- --lnd.macaroon="/lnd/data/chain/bitcoin/$BITCOIN_NETWORK/admin.macaroon"
@ -79,20 +70,41 @@ containers:
- --rpc.rest.port="9003"
requires:
- lnd
- name: main-cln
image: shahanafarooqui/rtl:0.12.2@sha256:049df155cc7bb0ad5554b16eda6c3c9703001c76d83a4b6b55d68ba89fba0de2
{% endif %}
main:
image: ghcr.io/runcitadel/rtl:master@sha256:307cd8a9c449f2891ed21efa347bc0a51b132deff996920974ef41c5a39f633e
user: 1000:1000
port: 3000
environment:
PORT: 3000
PORT: "3000"
RTL_CONFIG_PATH: /data
CHANNEL_BACKUP_PATH: /data/backup
APP_PASSWORD: $APP_SEED
{% if services is containing("lnd") %}
LN_IMPLEMENTATION: LND
LN_SERVER_URL: https://$LND_IP:$LND_REST_PORT
MACAROON_PATH: /lnd/data/chain/bitcoin/$BITCOIN_NETWORK
CONFIG_PATH: /lnd/lnd.conf
SWAP_SERVER_URL: https://$APP_RIDE_THE_LIGHTNING_LOOP_IP:8081
SWAP_MACAROON_PATH: /loop/.loop/$BITCOIN_NETWORK
BOLTZ_SERVER_URL: https://$APP_RIDE_THE_LIGHTNING_BOLTZ_IP:9003
BOLTZ_MACAROON_PATH: /boltz/.boltz-lnd/macaroons
{% elif services is containing("c-lightning") %}
LN_IMPLEMENTATION: CLT
LN_SERVER_URL: https://$C_LIGHTNING_IP:3001
MACAROON_PATH: /c-lightning/certs
CONFIG_PATH: /c-lightning/config
APP_PASSWORD: $APP_SEED
data:
- rtl:/data
requires:
- c-lightning
ENABLE_OFFERS: "true"
{% endif %}
mounts:
{% if services is containing("lnd") %}
lnd: /lnd
{% elif services is containing("c-lightning") %}
c_lightning: /c-lightning
{% endif %}
data:
{% if services is containing("lnd") %}
loop: /loop
boltz: /boltz
{% endif %}
rtl: /data

View File

@ -1,5 +1,4 @@
{
"multiPass": "moneyprintergobrrr",
"defaultNodeIndex": 1,
"SSO": {
"rtlSSO": 0,
@ -19,4 +18,4 @@
}
}
]
}
}

View File

@ -1,10 +1,10 @@
# SPDX-FileCopyrightText: 2020-2021 Umbrel. https://getumbrel.com
# SPDX-FileCopyrightText: Citadel and contributors
#
# SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v3.yml
# yaml-language-server: $schema=../../app-standard-v4.yml
version: 3
citadel_version: 4
metadata:
category: Tor
@ -19,23 +19,24 @@ metadata:
live in countries which censor Tor.
developers:
The Tor project: https://torproject.org/
repo: https://github.com/runcitadel/docker-snowflake
support: https://t.me/runcitadel
dependencies: []
repo:
Snowflake: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/
Container: https://github.com/runcitadel/docker-snowflake
support: https://t.me/runcitadel/
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
containers:
- image: nginx:1.21.6@sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767
services:
main:
image: nginx:1.21.6@sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767
init: true
port: 80
name: main
data:
- nginx/snowflake:/var/www/snowflake
- nginx/nginx.conf:/etc/nginx/nginx.conf
- name: proxy
proxy:
image: ghcr.io/runcitadel/snowflake:v2.1.0@sha256:43ecbea41715fb2040c8e528152dabde27ffdaa16cd1c07f2895232619b1d18f
network_mode: host

View File

@ -8,7 +8,7 @@ version: 3
metadata:
category: Social
name: Synapse
version: 1.60.0
version: 1.61.0
tagline: Matrix homeserver
description: Description is coming soon.
developers:

View File

@ -1,10 +1,12 @@
# SPDX-FileCopyrightText: 2021 Jonathan Underwood <junderwood@bitcoinbank.co.jp>
# SPDX-FileCopyrightText: 2022 Citadel and contributors
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v3.yml
# yaml-language-server: $schema=../../app-standard-v4.yml
citadel_version: 4
version: 3
metadata:
category: Password Managers
name: Vaultwarden
@ -12,10 +14,10 @@ metadata:
tagline: Unofficial Bitwarden® compatible server
description: >-
Vaultwarden (formerly known as Bitwarden_RS) is an alternative
implementation\ of the Bitwarden® server API written in Rust, compatible
with upstream Bitwarden®\ clients*. Vaultwarden is perfect for self-hosting
implementation of the Bitwarden® server API written in Rust, compatible
with upstream Bitwarden® clients*. Vaultwarden is perfect for self-hosting
all of your passwords in an\ encrypted vault on your Citadel. Vaultwarden is
a full implementation of Bitwarden®\ API that includes:
a full implementation of Bitwarden® API that includes:
- Organizations support
@ -36,19 +38,21 @@ metadata:
developers:
Daniel García: https://github.com/dani-garcia
dependencies: []
repo: https://github.com/dani-garcia/vaultwarden
repo:
Public: https://github.com/dani-garcia/vaultwarden
support: https://vaultwarden.discourse.group/
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
torOnly: true
containers:
- image: vaultwarden/server:1.25.2@sha256:39f34c5159a27dc9a16b2b7c07cec031622cdb174b4d99f09c8efefcd847d887
services:
main:
image: vaultwarden/server:1.25.2@sha256:39f34c5159a27dc9a16b2b7c07cec031622cdb174b4d99f09c8efefcd847d887
user: 1000:1000
port: 3000
environment:
ROCKET_PORT: 3000
name: server
ROCKET_PORT: "3000"
data:
- data:/data

56
apps/woofbot/app.yml Normal file
View File

@ -0,0 +1,56 @@
# SPDX-FileCopyrightText: 2022 Jonathan Zernik
# SPDX-FileCopyrightText: 2022 Citadel and contributors
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v4.yml
citadel_version: 4
metadata:
category: Explorers
name: WoofBot
version: "0.1.0"
tagline: A chatbot for your personal node.
description: >-
WoofBot is a chat bot that runs on your personal Bitcoin node and sends telegram notifications
based on pre-configured conditions: addresses, transactions, new-blocks and price changes.
developers:
WoofBotApp: https://github.com/woofbotapp
permissions:
- bitcoind
repo:
Public: https://github.com/woofbotapp/woofbotapp
support: https://github.com/woofbotapp/woofbotapp/discussions
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultPassword: $APP_SEED
services:
main:
image: woofbot/woofbot:v0.2.0@sha256:bfcc02f752963eaf9f9c3bf2776e032194d218b0037f3c54ed19d8872a7f241b
restart: on-failure
stop_grace_period: 1m
port: 8080
environment:
MONGODB_URI: "mongodb://${APP_WOOFBOT_MONGODB_IP}:27017/woofbot"
APP_PORT: "8080"
APP_SEED: $APP_SEED_2
APP_PASSWORD: $APP_SEED
APP_BITCOIN_NODE_IP: $BITCOIN_IP
APP_BITCOIN_RPC_USER: $BITCOIN_RPC_USER
APP_BITCOIN_RPC_PASS: $BITCOIN_RPC_PASS
APP_BITCOIN_RPC_PORT: $BITCOIN_RPC_PORT
depends_on:
- mongodb
mongodb:
image: mongo:5.0.9@sha256:37e84d3dd30cdfb5472ec42b8a6b4dc6ca7cacd91ebcfa0410a54528bbc5fa6d
user: 1000:1000
restart: on-failure
stop_grace_period: 1m
mounts:
data:
data/db: /data/db

View File

@ -2,9 +2,10 @@
#
# SPDX-License-Identifier: AGPL-3.0-only
# yaml-language-server: $schema=../../app-standard-v3.yml
# yaml-language-server: $schema=../../app-standard-v4.yml
citadel_version: 4
version: 3
metadata:
name: WordPress
version: 6.0.1
@ -13,15 +14,18 @@ metadata:
description: WordPress
developers:
WordPress Developers: https://wordpress.org
repo: https://github.com/WordPress/WordPress
repo:
WordPress: https://github.com/WordPress/WordPress
Container: https://github.com/docker-library/wordpress
support: https://wordpress.org
gallery:
- 1.png
- 2.png
- 3.png
containers:
- name: main
image: wordpress:6.0.1@sha256:999392cfea3cee05633a0a9026fc46df637d8291e631a1afa85099ad2553e3eb
- "1.png"
- "2.png"
- "3.png"
services:
main:
image: wordpress:6.0.1-php8.1-apache@sha256:8419d1eb8f357530354c98c400afc11a967f6a3cca5517f64645b1cc90b2f7af
depends_on:
- db
data:
@ -35,11 +39,12 @@ containers:
WORDPRESS_DB_NAME: wordpress
WORDPRESS_CONFIG_EXTRA: |
define('FS_METHOD','direct');
- name: db
db:
image: mariadb:10.7.3-focal@sha256:07e06f2e7ae9dfc63707a83130a62e00167c827f08fcac7a9aa33f4b6dc34e0e
user: 1000:1000
data:
- data/db:/var/lib/mysql
mounts:
data:
data/db: /var/lib/mysql
restart: always
environment:
MARIADB_ROOT_PASSWORD: somewordpress