Browse Source

Push all apps to Umbrel App Repo

main
Steven Briscoe 3 years ago
commit
cfb9bd73b7
  1. 411
      README.md
  2. 8
      agora/data/entrypoint.sh
  3. 14
      agora/data/www/admin/index.html
  4. 0
      agora/database/filebrowser.db
  5. 60
      agora/docker-compose.yml
  6. 4
      agora/exports.sh
  7. 0
      agora/files/.gitkeep
  8. 26
      agora/nginx/nginx.conf.template
  9. 3
      agora/torrc.template
  10. 27
      agora/umbrel-app.yml
  11. 0
      bitfeed/data/.gitkeep
  12. 41
      bitfeed/docker-compose.yml
  13. 4
      bitfeed/exports.sh
  14. 3
      bitfeed/torrc.template
  15. 29
      bitfeed/umbrel-app.yml
  16. 0
      bleskomat-server/data/.gitkeep
  17. 0
      bleskomat-server/data/db/.gitkeep
  18. 0
      bleskomat-server/data/web/.gitkeep
  19. 48
      bleskomat-server/docker-compose.yml
  20. 3
      bleskomat-server/exports.sh
  21. 3
      bleskomat-server/torrc.template
  22. 25
      bleskomat-server/umbrel-app.yml
  23. 0
      bluewallet/data/redis/.gitkeep
  24. 36
      bluewallet/docker-compose.yml
  25. 3
      bluewallet/exports.sh
  26. 2
      bluewallet/torrc.template
  27. 27
      bluewallet/umbrel-app.yml
  28. 34
      btc-rpc-explorer/docker-compose.yml
  29. 3
      btc-rpc-explorer/exports.sh
  30. 3
      btc-rpc-explorer/torrc.template
  31. 32
      btc-rpc-explorer/umbrel-app.yml
  32. 0
      btcpay-server/data/btcpay/.gitkeep
  33. 0
      btcpay-server/data/nbxplorer/.gitkeep
  34. 0
      btcpay-server/data/postgres/.gitkeep
  35. 69
      btcpay-server/docker-compose.yml
  36. 4
      btcpay-server/exports.sh
  37. 3
      btcpay-server/torrc.template
  38. 35
      btcpay-server/umbrel-app.yml
  39. 1
      code-server/data/.bashrc
  40. 41
      code-server/data/.loaders/init.sh
  41. 16
      code-server/docker-compose.yml
  42. 2
      code-server/exports.sh
  43. 3
      code-server/torrc.template
  44. 28
      code-server/umbrel-app.yml
  45. 0
      electrumx/data/.gitkeep
  46. 19
      electrumx/docker-compose.yml
  47. 14
      element/docker-compose.yml
  48. 2
      element/exports.sh
  49. 3
      element/torrc.template
  50. 39
      element/umbrel-app.yml
  51. 0
      gitea/data/db/.gitkeep
  52. 0
      gitea/data/gitea/config/.gitkeep
  53. 0
      gitea/data/gitea/data/.gitkeep
  54. 43
      gitea/docker-compose.yml
  55. 4
      gitea/exports.sh
  56. 4
      gitea/torrc.template
  57. 44
      gitea/umbrel-app.yml
  58. 0
      helipad/data/.gitkeep
  59. 19
      helipad/docker-compose.yml
  60. 2
      helipad/exports.sh
  61. 3
      helipad/torrc.template
  62. 21
      helipad/umbrel-app.yml
  63. 0
      home-assistant/data/.gitkeep
  64. 12
      home-assistant/docker-compose.yml
  65. 2
      home-assistant/exports.sh
  66. 3
      home-assistant/torrc.template
  67. 34
      home-assistant/umbrel-app.yml
  68. 0
      itchysats/data/.gitkeep
  69. 22
      itchysats/docker-compose.yml
  70. 2
      itchysats/exports.sh
  71. 3
      itchysats/torrc.template
  72. 58
      itchysats/umbrel-app.yml
  73. 0
      jam/data/joinmarket/.gitkeep
  74. 34
      jam/docker-compose.yml
  75. 2
      jam/exports.sh
  76. 3
      jam/torrc.template
  77. 29
      jam/umbrel-app.yml
  78. 0
      kollider/data/cache/images/.gitkeep
  79. 0
      kollider/data/logs/.gitkeep
  80. 48
      kollider/docker-compose.yml
  81. 5
      kollider/exports.sh
  82. 4
      kollider/torrc.template
  83. 32
      kollider/umbrel-app.yml
  84. 0
      krystal-bull/data/log/.gitkeep
  85. 0
      krystal-bull/data/oracleserver/.gitkeep
  86. 36
      krystal-bull/docker-compose.yml
  87. 3
      krystal-bull/exports.sh
  88. 3
      krystal-bull/torrc.template
  89. 31
      krystal-bull/umbrel-app.yml
  90. 0
      lightning-shell/data/.gitkeep
  91. 23
      lightning-shell/docker-compose.yml
  92. 2
      lightning-shell/exports.sh
  93. 3
      lightning-shell/torrc.template
  94. 35
      lightning-shell/umbrel-app.yml
  95. 0
      lightning-terminal/data/.gitkeep
  96. 27
      lightning-terminal/docker-compose.yml
  97. 2
      lightning-terminal/exports.sh
  98. 3
      lightning-terminal/torrc.template
  99. 51
      lightning-terminal/umbrel-app.yml
  100. 0
      lnbits/data/.gitkeep

411
README.md

@ -0,0 +1,411 @@
# Umbrel App Framework
If you can code in any language, you already know how to develop an app for Umbrel. There is no restriction on the kind of programming languages, frameworks or databases that you can use. Apps run inside isolated Docker containers, and the only requirement (for now) is that they should have a web-based UI.
> Some server apps might not have a UI at all. In that case, the app should serve a simple web page listing the connection details, QR codes, setup instructions, and anything else needed for the user to connect. The user is never expected to have CLI access on Umbrel.
To keep this document short and easy, we won't go into the app development itself, and will instead focus on packaging an existing app.
Let's straightaway jump into action by packaging [BTC RPC Explorer](https://github.com/janoside/btc-rpc-explorer), a Node.js based blockchain explorer, for Umbrel.
There are 4 steps:
1. [🛳 Containerizing the app using Docker](#1-containerizing-the-app-using-docker)
1. [☂️ Packaging the app for Umbrel](#2-%EF%B8%8Fpackaging-the-app-for-umbrel)
1. [🛠 Testing the app on Umbrel](#3-testing-the-app-on-umbrel)
1. [Testing on Umbrel development environment (Linux or macOS)](#31-testing-the-app-on-umbrel-development-environment)
1. [Testing on Umbrel OS (Raspberry Pi 4)](#32-testing-on-umbrel-os-raspberry-pi-4)
1. [🚀 Submitting the app](#4-submitting-the-app)
___
## 1. 🛳  Containerizing the app using Docker
1\. Let's start by cloning BTC RPC Explorer on our system:
```sh
git clone --branch v2.0.2 https://github.com/janoside/btc-rpc-explorer.git
cd btc-rpc-explorer
```
2\. Next, we'll create a `Dockerfile` in the app's directory:
```Dockerfile
FROM node:12-buster-slim AS builder
WORKDIR /build
COPY . .
RUN apt-get update
RUN apt-get install -y git python3 build-essential
RUN npm ci --production
FROM node:12-buster-slim
USER 1000
WORKDIR /build
COPY --from=builder /build .
EXPOSE 3002
CMD ["npm", "start"]
```
### A good Dockerfile:
- [x] Uses `debian:buster-slim` (or its derivatives, like `node:12-buster-slim`) as the base image — resulting in less storage consumption and faster app installs as the base image is already cached on the user's Umbrel.
- [x] Uses [multi-stage builds](https://docs.docker.com/develop/develop-images/multistage-build/) for smaller image size.
- [x] Ensures development files are not included in the final image.
- [x] Has only one service per container.
- [x] Doesn't run the service as root.
- [x] Uses remote assets that are verified against a checksum.
- [x] Results in deterministic image builds.
3\. We're now ready to build the Docker image of BTC RPC Explorer. Umbrel supports both 64-bit ARM and x86 architectures, so we'll use `docker buildx` to build, tag, and push multi-architecture Docker images of our app to Docker Hub.
```sh
docker buildx build --platform linux/arm64,linux/amd64 --tag getumbrel/btc-rpc-explorer:v2.0.2 --output "type=registry" .
```
> You need to enable ["experimental features"](https://docs.docker.com/engine/reference/commandline/cli/#experimental-features) in Docker to use `docker buildx`.
___
## 2. ☂️  Packaging the app for Umbrel
1\. Let's fork the [getumbrel/umbrel](https://github.com/getumbrel/umbrel) repo on GitHub, clone our fork locally, create a new branch for our app, and then switch to it:
```sh
git clone https://github.com/<username>/umbrel.git
cd umbrel
git checkout -b btc-rpc-explorer
```
2\. It's now time to decide an ID for our app. An app ID should only contain lowercase alphabetical characters and dashes, and should be humanly recognizable. For this app we'll go with `btc-rpc-explorer`.
We need to create a new subdirectory in the apps directory with same name as our app ID and move into it:
```sh
mkdir apps/btc-rpc-explorer
cd apps/btc-rpc-explorer
```
3\. We'll now create a `docker-compose.yml` file in this directory to define our application.
> New to Docker Compose? It's a simple tool for defining and running Docker applications that can have multiple containers. Follow along the tutorial, we promise it's not hard if you already understand the basics of Docker.
Let's copy-paste the following template `docker-compose.yml` file in a text editor and edit it according to our app.
```yml
version: "3.7"
services:
web:
image: <docker-image>:<tag>
restart: on-failure
stop_grace_period: 1m
ports:
# Replace <port> with the port that your app's web server
# is listening inside the Docker container. If you need to
# expose more ports, add them below.
- <port>:<port>
volumes:
# Uncomment to mount your data directories inside
# the Docker container for storing persistent data
# - ${APP_DATA_DIR}/foo:/foo
# - ${APP_DATA_DIR}/bar:/bar
# Uncomment to mount LND's data directory as read-only
# inside the Docker container at path /lnd
# - ${LND_DATA_DIR}:/lnd:ro
# Uncomment to mount Bitcoin Core's data directory as
# read-only inside the Docker container at path /bitcoin
# - ${BITCOIN_DATA_DIR}:/bitcoin:ro
environment:
# Pass any environment variables to your app for configuration in the form:
# VARIABLE_NAME: value
#
# Here are all the Umbrel provided variables that you can pass through to
# your app to connect to Bitcoin Core, LND, Electrum and Tor:
#
# Bitcoin Core environment variables
# $BITCOIN_NETWORK - Can be "mainnet", "testnet" or "regtest"
# $BITCOIN_IP - Local IP of Bitcoin Core
# $BITCOIN_P2P_PORT - P2P port
# $BITCOIN_RPC_PORT - RPC port
# $BITCOIN_RPC_USER - RPC username
# $BITCOIN_RPC_PASS - RPC password
# $BITCOIN_RPC_AUTH - RPC auth string
#
# LND environment variables
# $LND_IP - Local IP of LND
# $LND_GRPC_PORT - gRPC Port of LND
# $LND_REST_PORT - REST Port of LND
#
# Electrum server environment variables
# $ELECTRUM_IP - Local IP of Electrum server
# $ELECTRUM_PORT - Port of Electrum server
#
# Tor proxy environment variables
# $TOR_PROXY_IP - Local IP of Tor proxy
# $TOR_PROXY_PORT - Port of Tor proxy
#
# App specific environment variables
# $APP_HIDDEN_SERVICE - The address of the Tor hidden service your app will be exposed at
# $APP_DOMAIN - Local domain name of the app ("umbrel.local" on Umbrel OS)
# $APP_PASSWORD - Unique plain text password that can be used for authentication in your app, shown to the user in the Umbrel UI
# $APP_SEED - Unique 256 bit long hex string (128 bits of entropy) deterministically derived from user's Umbrel seed and your app's ID
# If your app has more services, like a database container, you can define those
# services below:
# db:
# image: <docker-image>:<tag>
# ...
```
4\. For our app, we'll update `<docker-image>` with `getumbrel/btc-rpc-explorer`, `<tag>` with `v2.0.2`, and `<port>` with `3002`. Since BTC RPC Explorer doesn't need to store any persistent data and doesn't require access to Bitcoin Core's or LND's data directories, we can remove the entire `volumes` block.
BTC RPC Explorer is an application with a single Docker container, so we don't need to define any other additional services (like a database service, etc) in the compose file.
> If BTC RPC Explorer needed to persist some data we would have created a new `data` directory next to the `docker-compose.yml` file. We'd then mount the volume `- ${APP_DATA_DIR}/data:/data` in `docker-compose.yml` to make the directory available at `/data` inside the container.
Updated `docker-compose.yml` file:
```yml
version: "3.7"
services:
web:
image: getumbrel/btc-rpc-explorer:v2.0.2
restart: on-failure
stop_grace_period: 1m
ports:
- 3002:3002
environment:
```
5\. Next, let's set the environment variables required by our app to connect to Bitcoin Core, Electrum server, and for app-related configuration ([as required by the app](https://github.com/janoside/btc-rpc-explorer/blob/master/.env-sample)).
So the final version of `docker-compose.yml` would be:
```yml
version: "3.7"
services:
web:
image: getumbrel/btc-rpc-explorer:v2.0.2
restart: on-failure
stop_grace_period: 1m
ports:
- 3002:3002
environment:
# Bitcoin Core connection details
BTCEXP_BITCOIND_HOST: $BITCOIN_IP
BTCEXP_BITCOIND_PORT: $BITCOIN_RPC_PORT
BTCEXP_BITCOIND_USER: $BITCOIN_RPC_USER
BTCEXP_BITCOIND_PASS: $BITCOIN_RPC_PASS
# Electrum connection details
BTCEXP_ELECTRUMX_SERVERS: "tcp://$ELECTRUM_IP:$ELECTRUM_PORT"
# App Config
BTCEXP_HOST: 0.0.0.0
DEBUG: "btcexp:*,electrumClient"
BTCEXP_ADDRESS_API: electrumx
BTCEXP_SLOW_DEVICE_MODE: "true"
BTCEXP_NO_INMEMORY_RPC_CACHE: "true"
BTCEXP_PRIVACY_MODE: "true"
BTCEXP_NO_RATES: "true"
BTCEXP_RPC_ALLOWALL: "false"
BTCEXP_BASIC_AUTH_PASSWORD: ""
```
6\. We're pretty much done here. The next step is to commit the changes, push it to our fork's branch, and test out the app on Umbrel.
```sh
git add .
git commit -m "Add BTC RPC Explorer"
git push origin btc-rpc-explorer
```
___
## 3. 🛠&nbsp;&nbsp;Testing the app on Umbrel
### 3.1 Testing the app on Umbrel development environment
Umbrel development environment ([`umbrel-dev`](https://github.com/getumbrel/umbrel-dev)) is a lightweight regtest instance of Umbrel that runs inside a virtual machine on your system. It's currently only compatible with Linux or macOS, so if you're on Windows, you may skip this section and directly test your app on a Raspberry Pi 4 running [Umbrel OS](https://github.com/getumbrel/umbrel-os).
1\. First, we'll install the `umbrel-dev` CLI and it's dependencies [Virtual Box](https://www.virtualbox.org) and [Vagrant](https://vagrantup.com) on our system. If you use [Homebrew](https://brew.sh) you can do that with just:
```sh
brew install lukechilds/tap/umbrel-dev gnu-sed
brew install --cask virtualbox vagrant
```
2\. Now let's initialize our development environment and boot the VM:
```sh
mkdir umbrel-dev
cd umbrel-dev
umbrel-dev init
umbrel-dev boot
```
> The first `umbrel-dev` boot usually takes a while due to the initial setup and configuration of the VM. Subsequent boots are much faster.
After the VM has booted, we can verify if the Umbrel dashboard is accessible at http://umbrel-dev.local in our browser to make sure everything is running fine.
3\. We need to switch the Umbrel installation on `umbrel-dev` to our fork and branch:
```sh
cd getumbrel/umbrel
git remote add <username> git@github.com:<username>/umbrel.git
git fetch <username> btc-rpc-explorer
git checkout <username>/btc-rpc-explorer
```
4\. And finally, it's time to install our app:
```sh
umbrel-dev app install btc-rpc-explorer
```
That's it! Our BTC RPC Explorer app should now be accessible at http://umbrel-dev.local:3002
5\. To make changes:
Edit your app files at `getumbrel/umbrel/apps/<app-id>/` and then run:
```sh
umbrel-dev reload
```
Once you're happy with your changes, just commit and push.
>Don't forget to shutdown the `umbrel-dev` virtual machine after testing with `umbrel-dev shutdown`!
### 3.2 Testing on Umbrel OS (Raspberry Pi 4)
1\. We'll first install and run Umbrel OS on a Raspberry Pi 4. [Full instructions can be found here](https://getumbrel.com/#start). After installation, we'll set it up on http://umbrel.local, and then SSH into the Pi:
```sh
ssh umbrel@umbrel.local
```
(SSH password is the same as your Umbrel's dashboard password)
2\. Next, we'll switch the Umbrel installation to our fork and branch:
```sh
sudo scripts/update/update --repo <username>/umbrel#btc-rpc-explorer
```
3\. Once the installation has updated, it's time to test our app:
```sh
scripts/app install btc-rpc-explorer
```
The app should now be accessible at http://umbrel.local:3002
4\. To uninstall:
```sh
scripts/app uninstall btc-rpc-explorer
```
> When testing your app, make sure to verify that any application state that needs to be persisted is in-fact being persisted in volumes.
>
> A good way to test this is to restart the app with `scripts/app stop <app-id> && scripts/app start <app-id>`. If any state is lost, it means that state should be mapped to a persistent volume.
>
> When stopping/starting the app, all data in volumes will be persisted and anything else will be discarded. When uninstalling/installing an app, even persistent data will be discarded.
___
## 4. 🚀&nbsp;&nbsp;Submitting the app
We're now ready to open a pull request on the main [getumbrel/umbrel](https://github.com/getumbrel/umbrel) repo to submit our app. Let's copy-paste the following markdown for the pull request description, fill it up with the required details, and then open a pull request.
```
# App Submission
### App name
...
### Version
...
### One line description of the app
_(max 50 characters)_
...
### Summary of the app
_(50 to 200 words)_
...
### Developer name
...
### Developer website
...
### Source code link
_(Link to your app's source code repository.)_
...
### Support link
_(Link to your Telegram support channel, GitHub issues/discussions, support portal, or any other place where users could contact you for support.)_
...
### Requires
- [ ] Bitcoin Core
- [ ] Electrum server
- [ ] LND
### 256x256 SVG icon
_(Submit an icon with no rounded corners as it will be dynamically rounded with CSS. GitHub doesn't allow uploading SVGs directly, so please upload your icon to an alternate service, like https://svgur.com, and paste the link below.)_
...
### Gallery images
_(Upload 3 to 5 high-quality gallery images (1440x900px) of your app in PNG format, or just upload 3 to 5 screenshots of your app and we'll help you design the gallery images.)_
...
### I have tested my app on:
- [ ] [Umbrel dev environment](https://github.com/getumbrel/umbrel-dev)
- [ ] [Umbrel OS on a Raspberry Pi 4](https://github.com/getumbrel/umbrel-os)
- [ ] [Custom Umbrel install on Linux](https://github.com/getumbrel/umbrel#-installation)
```
This is where the above information is used when the app goes live in the Umbrel App Store:
![Umbrel App Store Labels](https://i.imgur.com/0CorPRK.png)
**Here's our real pull request submitting the BTC RPC Explorer app — [getumbrel/umbrel#334](https://github.com/getumbrel/umbrel/pull/334).**
> After you've submitted your app, we'll review your pull request, create the required Tor hidden services for it, make some adjustments in the `docker-compose.yml` file, such as removing any port conflicts with other apps, pinning Docker images to their sha256 digests, assigning unique IP addresses to the containers, etc before merging.
🎉 Congratulations! That's all you need to do to package, test and submit your app to Umbrel. We can't wait to have you onboard!
---
## FAQs
1. **How to push app updates?**
Every time you release a new version of your app, you should build, tag and push the new Docker images to Docker Hub. Then open a new PR on our main repo (getumbrel/umbrel) with your up-to-date docker image. For now, app updates are bundled together in the Umbrel releases. In the future, you'll be able to ship updates independently as soon as you make a new release.
1. **How do users install apps?**
Users install apps via the Umbrel App Store. They do not use the `scripts/app` CLI directly as it's only meant for development use.
1. **I need help with something else?**
Join our [developer chat](https://keybase.io/team/getumbrel) on Keybase, or get in touch with [@mayankchhabra](https://t.me/mayankchhabra) or [@lukechilds](https://t.me/lukechilds) on Telegram.

8
agora/data/entrypoint.sh

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

14
agora/data/www/admin/index.html

@ -0,0 +1,14 @@
<!doctype html>
<html>
<head>
<title>Agora Admin</title>
</head>
<body>
<h1>Welcome to Agora Admin!</h1>
<ul>
<li><a href="/">Download files</a></li>
<li><a href="/admin/files">Manage files</a></li>
<li><a href="https://github.com/agora-org/agora#access-configuration">Agora Configuration Docs</a></li>
</ul>
</body>
</html>

0
agora/database/filebrowser.db

60
agora/docker-compose.yml

@ -0,0 +1,60 @@
version: "3.7"
services:
filebrowser:
image: filebrowser/filebrowser:v2.21.1@sha256:e1f43b1b8a1acb1d7cd5f934454e7a2ef571ea3bab48b0e1ed0fa97ef9df8d69
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
networks:
default:
ipv4_address: $APP_AGORA_FILEBROWSER_IP
agora:
image: ghcr.io/agora-org/agora:sha-48d3205@sha256:35eda120a8d868c7fa3b9cbdcad7cc2245b9fe7e0c5356c8091bb0bf9a65222d
restart: on-failure
init: true
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
networks:
default:
ipv4_address: $APP_AGORA_SERVER_IP
nginx:
image: nginx:1.19-alpine@sha256:07ab71a2c8e4ecb19a5a5abcfb3a4f175946c001c8af288b1aa766d67b0d05d2
init: true
restart: on-failure
volumes:
- ${APP_DATA_DIR}/nginx/nginx.conf.template:/etc/nginx/templates/nginx.conf.template
- ${APP_DATA_DIR}/data/www:/usr/share/nginx/html
environment:
NGINX_ENVSUBST_OUTPUT_DIR: /etc/nginx/
APP_AGORA_SERVER_IP: $APP_AGORA_SERVER_IP
APP_AGORA_FILEBROWSER_IP: $APP_AGORA_FILEBROWSER_IP
ports:
- "$APP_AGORA_PORT:80"
depends_on:
- agora
- filebrowser
networks:
default:
ipv4_address: $APP_AGORA_IP

4
agora/exports.sh

@ -0,0 +1,4 @@
export APP_AGORA_IP="10.21.21.87"
export APP_AGORA_PORT="12080"
export APP_AGORA_SERVER_IP="10.21.21.88"
export APP_AGORA_FILEBROWSER_IP="10.21.21.89"

0
agora/files/.gitkeep

26
agora/nginx/nginx.conf.template

@ -0,0 +1,26 @@
events { }
http {
server {
listen 80;
server_name _;
location / {
proxy_pass http://${APP_AGORA_SERVER_IP}:8080;
}
location /admin {
root /usr/share/nginx/html;
index index.html;
}
location /admin/files {
client_max_body_size 0;
proxy_pass http://${APP_AGORA_FILEBROWSER_IP}:8080;
}
}
}

3
agora/torrc.template

@ -0,0 +1,3 @@
# agora Hidden Service
HiddenServiceDir /data/app-agora
HiddenServicePort 80 $APP_AGORA_IP:80

27
agora/umbrel-app.yml

@ -0,0 +1,27 @@
manifest: 1
id: agora
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.
Agora 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.
developer: Casey Rodarmor & Sönke Hahn
website: https://agora-org.github.io/agora/
dependencies:
- lnd
repo: https://github.com/agora-org/agora
support: https://t.me/agoradiscussion
port: 12080
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: /admin/
deterministicPassword: true
defaultUsername: umbrel
torOnly: false

0
bitfeed/data/.gitkeep

41
bitfeed/docker-compose.yml

@ -0,0 +1,41 @@
version: "3.7"
services:
web:
image: ghcr.io/bitfeed-project/bitfeed-client:v2.2.1@sha256:70c89d49d20ba3da21c648c259f45a4b89e06bfe1d97374a092dce6f891d03c6
restart: on-failure
stop_grace_period: 1m
depends_on:
- "api"
environment:
TARGET: "umbrel"
BACKEND_HOST: "$APP_BITFEED_API_IP"
BACKEND_PORT: "$APP_BITFEED_API_PORT"
ports:
- "$APP_BITFEED_PORT:80"
networks:
default:
ipv4_address: $APP_BITFEED_IP
api:
image: ghcr.io/bitfeed-project/bitfeed-server:v2.2.1@sha256:60eae8109d3d6a377aec8a954f93b6be9ee48de717c9ab5810c2a5afcf688554
user: "1000:1000"
restart: on-failure
stop_grace_period: 1m
environment:
PORT: "$APP_BITFEED_API_PORT"
BITCOIN_HOST: "$BITCOIN_IP"
BITCOIN_ZMQ_RAWTX_PORT: "$BITCOIN_ZMQ_RAWTX_PORT"
BITCOIN_ZMQ_RAWBLOCK_PORT: "$BITCOIN_ZMQ_RAWBLOCK_PORT"
BITCOIN_ZMQ_SEQUENCE_PORT: "$BITCOIN_ZMQ_SEQUENCE_PORT"
BITCOIN_RPC_PORT: "$BITCOIN_RPC_PORT"
BITCOIN_RPC_USER: "$BITCOIN_RPC_USER"
BITCOIN_RPC_PASS: "$BITCOIN_RPC_PASS"
RPC_POOLS: "1"
RPC_POOL_SIZE: "16"
LOG_LEVEL: "info"
volumes:
- ${APP_DATA_DIR}/data:/app/data
networks:
default:
ipv4_address: $APP_BITFEED_API_IP

4
bitfeed/exports.sh

@ -0,0 +1,4 @@
export APP_BITFEED_IP="10.21.21.68"
export APP_BITFEED_PORT="8314"
export APP_BITFEED_API_IP="10.21.21.69"
export APP_BITFEED_API_PORT="8315"

3
bitfeed/torrc.template

@ -0,0 +1,3 @@
# bitfeed Hidden Service
HiddenServiceDir /data/app-bitfeed
HiddenServicePort 80 $APP_BITFEED_IP:80

29
bitfeed/umbrel-app.yml

@ -0,0 +1,29 @@
manifest: 1
id: bitfeed
category: Explorers
name: Bitfeed
version: 2.2.1
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 transactions drop into your node's mempool, before being packaged into newly mined blocks.
Monitor Bitcoin network activity, explore the composition of the latest block, or simply enjoy a soothing Bitcoin screensaver.
developer: Mononaut
website: https://monospace.live
dependencies:
- bitcoind
repo: https://github.com/bitfeed-project/bitfeed
support: https://github.com/bitfeed-project/bitfeed/issues
port: 8314
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultUsername: ""
defaultPassword: ""

0
bleskomat-server/data/.gitkeep

0
bleskomat-server/data/db/.gitkeep

0
bleskomat-server/data/web/.gitkeep

48
bleskomat-server/docker-compose.yml

@ -0,0 +1,48 @@
version: "3.7"
services:
db:
image: postgres:10.20-stretch@sha256:130e08bb19199bd055e585e8938c5ebb0555dc13b445fad5b0bd727e4b75149c
user: "1000:1000"
restart: on-failure
stop_grace_period: 1m
volumes:
- $APP_DATA_DIR/data/db:/var/lib/postgresql/data
networks:
default:
ipv4_address: $APP_BLESKOMAT_SERVER_DB_IP
environment:
- POSTGRES_USER=bleskomat_server
- POSTGRES_DB=bleskomat_server
- POSTGRES_PASSWORD=moneyprintergobrrr
web:
image: bleskomat/bleskomat-server:1.3.4@sha256:7bd91b896c5ca4f69b7c9509b40ccfae273cc46120ec66b2e27b295b0186f230
user: "1000:1000"
restart: on-failure
stop_grace_period: 1m
depends_on:
- db
ports:
- "$APP_BLESKOMAT_SERVER_PORT:$APP_BLESKOMAT_SERVER_PORT"
volumes:
- $APP_DATA_DIR/data/web:/usr/src/app/data
- $LND_DATA_DIR:/lnd:ro
environment:
DEBUG: "bleskomat-server*,lnurl*"
BLESKOMAT_SERVER_HOST: "0.0.0.0"
BLESKOMAT_SERVER_PORT: "$APP_BLESKOMAT_SERVER_PORT"
BLESKOMAT_SERVER_URL: "$APP_HIDDEN_SERVICE"
BLESKOMAT_SERVER_ENDPOINT: "/u"
BLESKOMAT_SERVER_AUTH_API_KEYS: '[]'
BLESKOMAT_SERVER_LIGHTNING: '{"backend":"lnd","config":{"cert":"/lnd/tls.cert","protocol":"https","hostname":"$LND_IP:$LND_REST_PORT","macaroon":"/lnd/data/chain/bitcoin/$BITCOIN_NETWORK/admin.macaroon"}}'
BLESKOMAT_SERVER_STORE: '{"backend":"knex","config":{"client":"postgres","connection":{"host":"$APP_BLESKOMAT_SERVER_DB_IP","port":5432,"user":"bleskomat_server","password":"moneyprintergobrrr","database":"bleskomat_server"}}}'
BLESKOMAT_SERVER_COINRATES_DEFAULTS_PROVIDER: "coinbase"
BLESKOMAT_SERVER_ADMIN_WEB: "true"
BLESKOMAT_SERVER_ADMIN_PASSWORD_PLAINTEXT: "$APP_PASSWORD"
BLESKOMAT_SERVER_ENV_FILEPATH: "./data/.env"
networks:
default:
ipv4_address: $APP_BLESKOMAT_SERVER_IP

3
bleskomat-server/exports.sh

@ -0,0 +1,3 @@
export APP_BLESKOMAT_SERVER_PORT="3333"
export APP_BLESKOMAT_SERVER_IP="10.21.21.85"
export APP_BLESKOMAT_SERVER_DB_IP="10.21.21.86"

3
bleskomat-server/torrc.template

@ -0,0 +1,3 @@
# bleskomat-server Hidden Service
HiddenServiceDir /data/app-bleskomat-server
HiddenServicePort 80 $APP_BLESKOMAT_SERVER_IP:$APP_BLESKOMAT_SERVER_PORT

25
bleskomat-server/umbrel-app.yml

@ -0,0 +1,25 @@
manifest: 1
id: bleskomat-server
category: Wallet Servers
name: Bleskomat Server
version: v1.3.4
tagline: Connect a Bleskomat ATM to your Lightning node
description: The Bleskomat ATM is the next generation Bitcoin Lightning ATM.
This app will allow you to easily connect your Bleskomat ATM to the Lightning
node on your Umbrel. A simple web interface is provided which you can use to
manage and authorize one or more Bleskomat ATMs as well as view a list of
recent payments handled by the server.
developer: Bleskomat
website: https://www.bleskomat.com
dependencies:
- lnd
repo: https://github.com/samotari/bleskomat-server
support: https://t.me/bleskomat
port: 3333
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
deterministicPassword: true
torOnly: false

0
bluewallet/data/redis/.gitkeep

36
bluewallet/docker-compose.yml

@ -0,0 +1,36 @@
version: "3.7"
services:
redis:
image: "redis:6.2.2-buster@sha256:e10f55f92478715698a2cef97c2bbdc48df2a05081edd884938903aa60df6396"
user: "1000:1000"
command: "redis-server --requirepass moneyprintergobrrr"
restart: "on-failure"
stop_grace_period: "1m"
init: true
volumes:
- "${APP_DATA_DIR}/data/redis:/data"
networks:
default:
ipv4_address: "${APP_BLUEWALLET_REDIS_IP}"
lndhub:
image: "bluewalletorganization/lndhub:v1.4.1@sha256:db673a8d360982984d05f97303e26dc0e5a3eea36ba54d0abdae5bbbeef31d3a"
user: "1000:1000"
depends_on: [ "redis" ]
restart: "on-failure"
stop_grace_period: "1m"
init: true
ports:
- "${APP_BLUEWALLET_LNDHUB_PORT}:${APP_BLUEWALLET_LNDHUB_PORT}"
volumes:
- "${LND_DATA_DIR}:/lnd:ro"
environment:
PORT: "${APP_BLUEWALLET_LNDHUB_PORT}"
TOR_URL: "${APP_HIDDEN_SERVICE}"
LND_CERT_FILE: "/lnd/tls.cert"
LND_ADMIN_MACAROON_FILE: "/lnd/data/chain/bitcoin/${BITCOIN_NETWORK}/admin.macaroon"
CONFIG: '{ "rateLimit": 10000, "postRateLimit": 10000, "redis": { "port": 6379, "host": "$APP_BLUEWALLET_REDIS_IP", "family": 4, "password": "moneyprintergobrrr", "db": 0 }, "lnd": { "url": "$LND_IP:$LND_GRPC_PORT", "password": ""}}'
networks:
default:
ipv4_address: "${APP_BLUEWALLET_LNDHUB_IP}"

3
bluewallet/exports.sh

@ -0,0 +1,3 @@
export APP_BLUEWALLET_LNDHUB_IP="10.21.21.30"
export APP_BLUEWALLET_LNDHUB_PORT="3008"
export APP_BLUEWALLET_REDIS_IP="10.21.21.31"

2
bluewallet/torrc.template

@ -0,0 +1,2 @@
HiddenServiceDir /data/app-bluewallet
HiddenServicePort 80 $APP_BLUEWALLET_LNDHUB_IP:$APP_BLUEWALLET_LNDHUB_PORT

27
bluewallet/umbrel-app.yml

@ -0,0 +1,27 @@
manifest: 1
id: bluewallet
category: Wallet Servers
name: BlueWallet Lightning
version: 1.4.1
tagline: Connect BlueWallet to your Lightning node
description: >-
Run BlueWallet in the most private and secure way possible by
removing 3rd parties and connecting it directly to your Umbrel's Lightning
node.
You can pair multiple BlueWallet accounts, so your friends and family can pair their BlueWallet with your Umbrel for a trust-minimized setup.
developer: BlueWallet
website: https://lndhub.io
dependencies:
- lnd
repo: https://github.com/BlueWallet/LndHub
support: https://t.me/bluewallet
port: 3008
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultUsername: ""
defaultPassword: ""

34
btc-rpc-explorer/docker-compose.yml

@ -0,0 +1,34 @@
version: "3.7"
services:
web:
image: getumbrel/btc-rpc-explorer:v3.3.0@sha256:cfd14f8e722cfbf1ad106ba224569c8babe685422461a641abc210e13913c636
restart: on-failure
stop_grace_period: 1m
ports:
- "$APP_BTC_RPC_EXPLORER_PORT:$APP_BTC_RPC_EXPLORER_PORT"
environment:
# Docker requirements
BTCEXP_HOST: 0.0.0.0
# Bitcoin Core
BTCEXP_BITCOIND_HOST: $BITCOIN_IP
BTCEXP_BITCOIND_PORT: $BITCOIN_RPC_PORT
BTCEXP_BITCOIND_USER: $BITCOIN_RPC_USER
BTCEXP_BITCOIND_PASS: $BITCOIN_RPC_PASS
# Electrum
BTCEXP_ADDRESS_API: electrumx
BTCEXP_ELECTRUMX_SERVERS: "tcp://$ELECTRUM_IP:$ELECTRUM_PORT"
# Log level
DEBUG: "btcexp:*,electrumClient"
# Performance
BTCEXP_SLOW_DEVICE_MODE: "true"
BTCEXP_NO_INMEMORY_RPC_CACHE: "true"
# Privacy
BTCEXP_PRIVACY_MODE: "true"
BTCEXP_NO_RATES: "true"
# Disable RPC
BTCEXP_RPC_ALLOWALL: "false"
BTCEXP_BASIC_AUTH_PASSWORD: ""
networks:
default:
ipv4_address: $APP_BTC_RPC_EXPLORER_IP

3
btc-rpc-explorer/exports.sh

@ -0,0 +1,3 @@
export APP_BTC_RPC_EXPLORER_IP="10.21.21.12"
export APP_BTC_RPC_EXPLORER_IP="10.21.21.12"
export APP_BTC_RPC_EXPLORER_PORT="3002"

3
btc-rpc-explorer/torrc.template

@ -0,0 +1,3 @@
# btc-rpc-explorer Hidden Service
HiddenServiceDir /data/app-btc-rpc-explorer
HiddenServicePort 80 $APP_BTC_RPC_EXPLORER_IP:$APP_BTC_RPC_EXPLORER_PORT

32
btc-rpc-explorer/umbrel-app.yml

@ -0,0 +1,32 @@
manifest: 1
id: btc-rpc-explorer
category: Explorers
name: BTC RPC Explorer
version: 3.3.0
tagline: Simple, database-free blockchain explorer
description: >-
BTC RPC Explorer is a full-featured, self-hosted explorer for the
Bitcoin blockchain. With this explorer, you can explore not just the
blockchain database, but also explore the functional capabilities of your
Umbrel.
It comes with a network summary dashboard, detailed view of blocks, transactions, addresses, along with analysis tools for viewing stats on miner activity, mempool summary, with fee, size, and age breakdowns. You can also search by transaction ID, block hash/height, and addresses.
It's time to appreciate the "fullness" of your node.
developer: Dan Janosik
website: https://explorer.btc21.org
dependencies:
- bitcoind
- electrum
repo: https://github.com/janoside/btc-rpc-explorer
support: https://github.com/janoside/btc-rpc-explorer/discussions
port: 3002
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultUsername: ""
defaultPassword: ""

0
btcpay-server/data/btcpay/.gitkeep

0
btcpay-server/data/nbxplorer/.gitkeep

0
btcpay-server/data/postgres/.gitkeep

69
btcpay-server/docker-compose.yml

@ -0,0 +1,69 @@
version: "3.7"
services:
nbxplorer:
image: nicolasdorier/nbxplorer:2.2.20@sha256:8f0e7f68513596e0a2555990d262169088a70204abe397bf18ba921f9b0608f3
user: "1000:1000"
restart: on-failure
stop_grace_period: 1m
volumes:
- ${APP_DATA_DIR}/data/nbxplorer:/data
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
networks:
default:
ipv4_address: $APP_BTCPAY_SERVER_NBXPLORER_IP
web:
image: btcpayserver/btcpayserver:1.4.9@sha256:3310ef8c5fecb3a1c66507b97ebc84a3475fc77e63cd3bd29ab8b76474214566
user: "1000:1000"
restart: on-failure
stop_grace_period: 1m
depends_on: [ nbxplorer, postgres ]
entrypoint: [ "dotnet", "BTCPayServer.dll" ]
ports:
- "$APP_BTCPAY_SERVER_PORT:$APP_BTCPAY_SERVER_PORT"
volumes:
- ${APP_DATA_DIR}/data/btcpay:/data
- ${APP_DATA_DIR}/data/nbxplorer:/data/.nbxplorer
- ${LND_DATA_DIR}:/lnd:ro
environment:
HOME: "/data"
BTCPAY_DATADIR: "/data"
BTCPAY_PLUGINDIR: "/data/plugins"
BTCPAY_DOCKERDEPLOYMENT: "false"
BTCPAY_POSTGRES: "User ID=postgres;Host=$APP_BTCPAY_SERVER_DB_IP;Port=5432;Database=btcpayserver$BITCOIN_NETWORK"
BTCPAY_NETWORK: "$BITCOIN_NETWORK"
BTCPAY_BIND: 0.0.0.0:$APP_BTCPAY_SERVER_PORT
BTCPAY_CHAINS: "btc"
BTCPAY_BTCEXPLORERURL: "http://$APP_BTCPAY_SERVER_NBXPLORER_IP:32838"
BTCPAY_BTCLIGHTNING: "type=lnd-rest;server=https://$LND_IP:$LND_REST_PORT/;macaroonfilepath=/lnd/data/chain/bitcoin/$BITCOIN_NETWORK/admin.macaroon;allowinsecure=true"
BTCPAY_SOCKSENDPOINT: $TOR_PROXY_IP:$TOR_PROXY_PORT
networks:
default:
ipv4_address: $APP_BTCPAY_SERVER_IP
postgres:
image: btcpayserver/postgres:13.6@sha256:dadf0048895a888d88a2dd773dde2f5868c45f74ad37c6d208694df54b590531
# This needs to run as root for migrations to succeed
# user: "1000:1000"
restart: on-failure
# https://github.com/btcpayserver/btcpayserver-docker/commit/a65e7db6851092c75c5ac6c091a5f36ccc5fc26e
command: [ "-c", "random_page_cost=1.0" ]
stop_grace_period: 1m
environment:
POSTGRES_HOST_AUTH_METHOD: trust
volumes:
- ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data
networks:
default:
ipv4_address: $APP_BTCPAY_SERVER_DB_IP

4
btcpay-server/exports.sh

@ -0,0 +1,4 @@
export APP_BTCPAY_SERVER_IP="10.21.21.19"
export APP_BTCPAY_SERVER_PORT="3003"
export APP_BTCPAY_SERVER_NBXPLORER_IP="10.21.21.20"
export APP_BTCPAY_SERVER_DB_IP="10.21.21.21"

3
btcpay-server/torrc.template

@ -0,0 +1,3 @@
# btcpay-server Hidden Service
HiddenServiceDir /data/app-btcpay-server
HiddenServicePort 80 $APP_BTCPAY_SERVER_IP:$APP_BTCPAY_SERVER_PORT

35
btcpay-server/umbrel-app.yml

@ -0,0 +1,35 @@
manifest: 1
id: btcpay-server
category: Finance
name: BTCPay Server
version: 1.4.9
tagline: Accept Bitcoin payments with 0 fees & no 3rd party
description: >-
BTCPay Server is a payment processor that allows you to receive
payments in Bitcoin (and altcoins) directly, with no fees, transaction cost or
a middleman. It is a non-custodial invoicing system which eliminates the
involvement of a third-party.
Payments with BTCPay Server go directly to your wallet, which increases the privacy and security. Your private keys are never uploaded to your Umbrel. There is no address re-use, since each invoice generates a new address deriving from your xpubkey.
You can not only to attach an unlimited number of stores and use the Lightning Network but also become a payment processor for others. Thanks to the apps built on top of it, you can use BTCPay to receive donations, start a crowdfunding campaign or have an in-store Point of Sale.
Please note: Due to your BTCPay instance running on your local network connecting remote applications, such as Shopify or WordPress for example, will fail to connect.
developer: BTCPay Server Foundation
website: https://btcpayserver.org
dependencies:
- bitcoind
- lnd
repo: https://github.com/btcpayserver/btcpayserver
support: https://chat.btcpayserver.org
port: 3003
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultUsername: ""
defaultPassword: ""

1
code-server/data/.bashrc

@ -0,0 +1 @@
source "${HOME}/.loaders/init.sh"

41
code-server/data/.loaders/init.sh

@ -0,0 +1,41 @@
lazy_load() {
local command="${1}"
local loader="${2}"
local arguments=${@:3}
if ! which $command > /dev/null 2>&1
then
echo "${command} isn't installed yet, installing it now..."
$loader
echo "${command} installed! Running \"${command} ${arguments}\"..."
echo
fi
$command $arguments
}
setup_node() {
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
export NVM_DIR="$HOME/.nvm"
source "${HOME}/.nvm/nvm.sh"
source "${HOME}/.nvm/bash_completion"
nvm install stable
}
setup_python() {
sudo apt-get update
sudo apt-get install -y python3 python3-pip
}
setup_rust() {
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "${HOME}/.cargo/env"
}
alias node="lazy_load node setup_node"
alias npm="lazy_load npm setup_node"
alias python3="lazy_load python3 setup_python"
alias pip3="lazy_load pip3 setup_python"
alias python="python3"
alias pip="pip3"
alias rustup="lazy_load rustup setup_rust"
alias rustc="lazy_load rustc setup_rust"
alias cargo="lazy_load cargo setup_rust"

16
code-server/docker-compose.yml

@ -0,0 +1,16 @@
version: "3.7"
services:
server:
image: codercom/code-server:3.11.1@sha256:9bb2444f9d0c26765924e29155ac4a8febecb1e080f12c4e368e71dbe6a675b5
restart: on-failure
user: "1000:1000"
ports:
- "${APP_CODE_SERVER_PORT}:8080"
volumes:
- ${APP_DATA_DIR}/data:/home/coder
environment:
PASSWORD: $APP_PASSWORD
networks:
default:
ipv4_address: $APP_CODE_SERVER_IP

2
code-server/exports.sh

@ -0,0 +1,2 @@
export APP_CODE_SERVER_IP="10.21.21.53"
export APP_CODE_SERVER_PORT="8091"

3
code-server/torrc.template

@ -0,0 +1,3 @@
# code-server Hidden Service
HiddenServiceDir /data/app-code-server
HiddenServicePort 80 $APP_CODE_SERVER_IP:8080

28
code-server/umbrel-app.yml

@ -0,0 +1,28 @@
manifest: 1
id: code-server
category: Development
name: code-server
version: 3.11.1
tagline: Run VS Code on your Umbrel
description: >-
Run VS Code on your Umbrel and access it in the browser so you can
code on any device with a consistent development environment. This way you can
use your Umbrel not only to code from any device, anywhere, but to also speed
up tests, compilations, downloads, and more.
By running all intensive tasks run on your Umbrel, preserve battery life of your devices when you're on the go.
developer: Coder
website: https://coder.com
dependencies: []
repo: https://github.com/cdr/code-server
support: https://github.com/cdr/code-server/discussions
port: 8091
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultUsername: ""
deterministicPassword: true
torOnly: false

0
electrumx/data/.gitkeep

19
electrumx/docker-compose.yml

@ -0,0 +1,19 @@
version: "3.7"
services:
server:
image: lukechilds/electrumx:v1.16.0@sha256:2949784536f8f85af229004e12e5b5c3a1d7428918a492f77b4e958035c2ae2a
user: "1000:1000"
init: true
restart: on-failure
stop_grace_period: 1m
ports:
- "${APP_ELECTRUMX_PORT}:50001"
volumes:
- ${APP_DATA_DIR}/data:/data
environment:
DAEMON_URL: http://${BITCOIN_RPC_USER}:${BITCOIN_RPC_PASS}@${BITCOIN_IP}:${BITCOIN_RPC_PORT}
COIN: BitcoinSegwit
networks:
default:
ipv4_address: $APP_ELECTRUMX_IP

14
element/docker-compose.yml

@ -0,0 +1,14 @@
version: "3.7"
services:
web:
image: getumbrel/element-web:v1.8.4@sha256:16b2776278a8a9d8a2397ccd75484f8728fd3223cb3329bf572b50b8f950636c
# NGINX parent container requires root
# user: "1000:1000"
restart: on-failure
stop_grace_period: 1m
ports:
- "$APP_ELEMENT_PORT:80"
networks:
default:
ipv4_address: $APP_ELEMENT_IP

2
element/exports.sh

@ -0,0 +1,2 @@
export APP_ELEMENT_IP="10.21.21.45"
export APP_ELEMENT_PORT="8088"

3
element/torrc.template

@ -0,0 +1,3 @@
# element Hidden Service
HiddenServiceDir /data/app-element
HiddenServicePort 80 $APP_ELEMENT_IP:80

39
element/umbrel-app.yml

@ -0,0 +1,39 @@
manifest: 1
id: element
category: Social
name: Element
version: 1.8.4
tagline: A glossy Matrix client compatible with Synapse
description: >-
Element is a new type of messaging app. You choose where your
messages are stored, putting you in control of your data. You can connect it
to the Synapse installation running on your Umbrel. An easy way to get started
is to install the "Synapse" Matrix homserver on your Umbrel and change
Element's Homserver URL from matrix.org to your Synapse's homeserver URL
(http://umbrel.local:8008 or http://<synapse-tor-hidden-service-url).
It gives you access to the Matrix open network, so you can talk to anyone. Element provides a new level of security, adding cross-signed device verification to default end-to-end encryption.
The very best end-to-end encryption and Element’s unique cross-signed device verification means only those that should be in the conversation can read the messages - no eavesdroppers or imposters.
Most important of all, Element is open; built on the Matrix network, it connects to all other Matrix-based apps as well as bridging into proprietary systems. You can stay in Element while talking to friends and family in other apps.
Element is open source. You know exactly what you’re getting. Full transparency, the freedom to extend and customise with the support of a vibrant community of developers.
developer: New Vector Ltd
website: https://element.io
dependencies: []
repo: https://github.com/vector-im/element-web
support: https://matrix.to/#/#element-web:matrix.org
port: 8088
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultUsername: ""
defaultPassword: ""
torOnly: false

0
gitea/data/db/.gitkeep

0
gitea/data/gitea/config/.gitkeep

0
gitea/data/gitea/data/.gitkeep

43
gitea/docker-compose.yml

@ -0,0 +1,43 @@
version: "3.7"
services:
server:
image: gitea/gitea:1.15.2-rootless@sha256:6caabcf0e1a21a2d885f44c8f19693ce44ec3d443e2116f86a2937db453566a8
user: "1000:1000"
restart: on-failure
ports:
- "${APP_GITEA_PORT}:${APP_GITEA_PORT}"
- "${APP_GITEA_SSH_PORT}:${APP_GITEA_SSH_PORT}"
volumes:
- ${APP_DATA_DIR}/data/gitea/data:/var/lib/gitea
- ${APP_DATA_DIR}/data/gitea/config:/etc/gitea
environment:
GITEA__security__INSTALL_LOCK: "true"
GITEA__server__DOMAIN: "${APP_DOMAIN}"
GITEA__server__HTTP_PORT: "${APP_GITEA_PORT}"
GITEA__server__SSH_DOMAIN: "${APP_DOMAIN}"
GITEA__server__SSH_PORT: "${APP_GITEA_SSH_PORT}"
GITEA__server__SSH_LISTEN_PORT: "${APP_GITEA_SSH_PORT}"
GITEA__server__START_SSH_SERVER: "true"
GITEA__database__DB_TYPE: "mysql"
GITEA__database__HOST: "${APP_GITEA_DB_IP}:3306"
GITEA__database__NAME: "gitea"
GITEA__database__USER: "gitea"
GITEA__database__PASSWD: "moneyprintergobrrr"
networks:
default:
ipv4_address: $APP_GITEA_IP
db:
image: mariadb:10.5.12@sha256:dfcba5641bdbfd7cbf5b07eeed707e6a3672f46823695a0d3aba2e49bbd9b1dd
user: "1000:1000"
restart: on-failure
volumes:
- ${APP_DATA_DIR}/data/db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: "gitea"
MYSQL_USER: "gitea"
MYSQL_PASSWORD: "moneyprintergobrrr"
MYSQL_DATABASE: "gitea"
networks:
default:
ipv4_address: $APP_GITEA_DB_IP

4
gitea/exports.sh

@ -0,0 +1,4 @@
export APP_GITEA_PORT="8085"
export APP_GITEA_SSH_PORT="2222"
export APP_GITEA_IP="10.21.21.39"
export APP_GITEA_DB_IP="10.21.21.40"

4
gitea/torrc.template

@ -0,0 +1,4 @@
# gitea Hidden Service
HiddenServiceDir /data/app-gitea
HiddenServicePort 80 $APP_GITEA_IP:$APP_GITEA_PORT
HiddenServicePort 22 $APP_GITEA_IP:$APP_GITEA_SSH_PORT

44
gitea/umbrel-app.yml

@ -0,0 +1,44 @@
manifest: 1
id: gitea
category: Development
name: Gitea
version: 1.15.2
tagline: A painless self-hosted Git service
description: >-
Gitea is a painless self-hosted Git service. It is similar to
GitHub, Bitbucket, and GitLab. It is a community managed lightweight code
hosting solution written in Go. Gitea's minimal requirements allow it to run
seamlessly on inexpensive hardware like a Raspberry Pi. Features:
- Fully self-hosted and private
- Issue tracker
- Account/Organization/Repository management
- Tor support
- Repository Git hooks/deploy keys
- Repository issues, pull requests and wiki
- Add/Remove repository collaborators
- Gravatar and custom source
- Admin panel
developer: Gitea
website: https://gitea.io/en-us/
dependencies: []
repo: https://github.com/go-gitea/gitea
support: https://discourse.gitea.io
port: 8085
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultUsername: ""
defaultPassword: ""
torOnly: false

0
helipad/data/.gitkeep

19
helipad/docker-compose.yml

@ -0,0 +1,19 @@
version: "3.7"
services:
web:
image: podcastindexorg/podcasting20-helipad:v0.1.9@sha256:9706dc5a337dd087b188b32685a342d5d69d154b3e0449e4623c4a4e3988dd22
init: true
restart: on-failure
stop_grace_period: 1m
user: "1000:1000"
ports:
- ${APP_HELIPAD_PORT}:2112
volumes:
- ${APP_DATA_DIR}/data:/data
- ${LND_DATA_DIR}:/lnd:ro
environment:
LND_URL: "$LND_IP:$LND_GRPC_PORT"
networks:
default:
ipv4_address: $APP_HELIPAD_IP

2
helipad/exports.sh

@ -0,0 +1,2 @@
export APP_HELIPAD_PORT="2112"
export APP_HELIPAD_IP="10.21.21.65"

3
helipad/torrc.template

@ -0,0 +1,3 @@
# helipad Hidden Service
HiddenServiceDir /data/app-helipad
HiddenServicePort 80 $APP_HELIPAD_IP:2112

21
helipad/umbrel-app.yml

@ -0,0 +1,21 @@
manifest: 1
id: helipad
category: Lightning Node Management
name: Helipad
version: 0.1.9
tagline: View boosts & boostagrams from Podcasting 2.0 apps
description: Helipad shows boosts and boostagram messages coming in to your
Lightning node from your listeners who are using Podcasting 2.0 apps.
developer: Podcastindex.org
website: https://podcastindex.org
dependencies:
- lnd
repo: https://github.com/Podcastindex-org/helipad
support: https://podcastindex.social
port: 2112
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultPassword: ""

0
home-assistant/data/.gitkeep

12
home-assistant/docker-compose.yml

@ -0,0 +1,12 @@
version: "3.7"
services:
server:
image: homeassistant/home-assistant:2021.12.0@sha256:116f78d5cf48c4b1adcb3eb665885cb0d14dc0156e9291015ca6fbce13540ff5
ports:
- "${APP_HOME_ASSISTANT_PORT}:8123"
volumes:
- ${APP_DATA_DIR}/data:/config
networks:
default:
ipv4_address: $APP_HOME_ASSISTANT_IP

2
home-assistant/exports.sh

@ -0,0 +1,2 @@
export APP_HOME_ASSISTANT_PORT="8083"
export APP_HOME_ASSISTANT_IP="10.21.21.37"

3
home-assistant/torrc.template

@ -0,0 +1,3 @@
# home-assistant Hidden Service
HiddenServiceDir /data/app-home-assistant
HiddenServicePort 80 $APP_HOME_ASSISTANT_IP:8123

34
home-assistant/umbrel-app.yml

@ -0,0 +1,34 @@
manifest: 1
id: home-assistant
category: Automation
name: Home Assistant
version: 2021.12.0
tagline: Home automation that puts local control & privacy first
description: >-
Open source home automation that puts local control and privacy
first, powered by a worldwide community of tinkerers and DIY enthusiasts. Home
Assistant integrates with over a thousand different devices and services. Once
you have integrated all your devices at home, you can unleash Home Assistant’s
advanced automation engine to make your home work for you. Examples:
- Turn on the light when the sun sets or when coming home
- Alert you when you leave your garage door open
All your smart home data stays local. Home Assistant communicates with your devices locally, and will fallback to pulling in data from the cloud if there is no other option. No data is stored in the cloud, and everything is processed locally.
developer: Home Assistant
website: https://home-assistant.io
dependencies: []
repo: https://github.com/home-assistant/core
support: https://community.home-assistant.io
port: 8083
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultUsername: ""
defaultPassword: ""
torOnly: false

0
itchysats/data/.gitkeep

22
itchysats/docker-compose.yml

@ -0,0 +1,22 @@
version: "3.7"
services:
web:
image: ghcr.io/itchysats/itchysats/taker:0.4.10@sha256:6ce4691fa1d940a59598e1271f5c808869acfe8e6d639bead28076b5f7172414
restart: on-failure
stop_grace_period: 1m
ports:
- ${APP_ITCHYSATS_PORT}:8000
volumes:
- ${APP_DATA_DIR}/data:/data
command:
- --maker=$BITCOIN_NETWORK.itchysats.network:10000
- --maker-id=7e35e34801e766a6a29ecb9e22810ea4e3476c2b37bf75882edf94a68b1d9607
- --password=$APP_PASSWORD
- --umbrel-seed=$APP_SEED
- $BITCOIN_NETWORK
- --electrum=tcp://$ELECTRUM_IP:$ELECTRUM_PORT
networks:
default:
ipv4_address: $APP_ITCHYSATS_IP

2
itchysats/exports.sh

@ -0,0 +1,2 @@
export APP_ITCHYSATS_IP="10.21.21.64"
export APP_ITCHYSATS_PORT="7113"

3
itchysats/torrc.template

@ -0,0 +1,3 @@
# itchysats Hidden Service
HiddenServiceDir /data/app-itchysats
HiddenServicePort 80 $APP_ITCHYSATS_IP:8000

58
itchysats/umbrel-app.yml

@ -0,0 +1,58 @@
manifest: 1
id: itchysats
category: Finance
name: ItchySats
version: v0.4.10
tagline: Peer-2-peer derivatives on Bitcoin
description: >-
ItchySats enables peer-2-peer CFD trading on Bitcoin using DLCs
(discreet log contracts). No account needed, no trusted third-party - just you
and your keys.
This is beta software. We tested it on test- and mainnet, but there are no guarantees that it will always behave as expected.
Please be mindful with how much money you trust the application with.
CFDs trading is inherently risky, be sure to read up on it before using this application.
That said: This is pretty awesome, go nuts!
1. Fund the ItchySats wallet
2. Open a position
3. Monitor the price movement
4. Profit
Limitations of the mainnet beta:
1. Minimum position quantity is $100, maximum $1000
2. The leverage is fixed at 2
With 0.4.0 your CFDs are perpetual positions that are extended hourly. This means your CFD position will remain open forever unless you decide to close it. A funding fee is collected hourly when the CFD is extended.
With 0.4.8 you can open long and short positions, previously only long positions were possible.
developer: ItchySats
website: https://itchysats.network
dependencies:
- electrum
repo: https://github.com/itchysats/itchysats
support: https://github.com/itchysats/itchysats/issues
port: 7113
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultUsername: itchysats
deterministicPassword: true
torOnly: false

0
jam/data/joinmarket/.gitkeep

34
jam/docker-compose.yml

@ -0,0 +1,34 @@
version: "3.7"
services:
jam:
image: ghcr.io/joinmarket-webui/joinmarket-webui-standalone:v0.0.5-clientserver-v0.9.5@sha256:5fbbc766b25449e87f5fffb689d236b0a0c9b6332c1cb75478bcbc7225d04ad9
restart: on-failure
stop_grace_period: 1m
init: true
ports:
- "$APP_JAM_PORT:80"
volumes:
- ${APP_DATA_DIR}/data/joinmarket:/root/.joinmarket
environment:
ENSURE_WALLET: 1
RESTORE_DEFAULT_CONFIG: 1
APP_USER: umbrel
APP_PASSWORD: "${APP_PASSWORD}"
jm_tor_control_host: $TOR_PROXY_IP
jm_tor_control_port: 29051
jm_onion_socks5_host: $TOR_PROXY_IP
jm_onion_socks5_port: $TOR_PROXY_PORT
jm_socks5_host: $TOR_PROXY_IP
jm_socks5_port: $TOR_PROXY_PORT
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: jam_default
jm_network: $BITCOIN_NETWORK
jm_max_cj_fee_abs: 300000 # in sats
jm_max_cj_fee_rel: 0.0003 # 0.03%
networks:
default:
ipv4_address: $APP_JAM_IP

2
jam/exports.sh

@ -0,0 +1,2 @@
export APP_JAM_IP="10.21.21.84"
export APP_JAM_PORT="5002"

3
jam/torrc.template

@ -0,0 +1,3 @@
# jam Hidden Service
HiddenServiceDir /data/app-jam
HiddenServicePort 80 $APP_JAM_IP:80

29
jam/umbrel-app.yml

@ -0,0 +1,29 @@
manifest: 1
id: jam
category: Wallets
name: Jam
version: v0.0.5
tagline: A user-friendly UI for JoinMarket
description: >-
Jam is a user-interface for JoinMarket with focus on
user-friendliness.
It is time for top-notch privacy for your bitcoin. Widespread use of JoinMarket improves bitcoin's fungibility and privacy for all.
The app provides sensible defaults and is easy to use for beginners while still providing the features advanced users expect.
developer: JoinMarket WebUI Organisation
website: https://github.com/joinmarket-webui
dependencies:
- bitcoind
repo: https://github.com/joinmarket-webui/joinmarket-webui
support: https://github.com/joinmarket-webui/joinmarket-webui/issues
port: 5002
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultUsername: umbrel
defaultPassword: ""
deterministicPassword: true

0
kollider/data/cache/images/.gitkeep

0
kollider/data/logs/.gitkeep

48
kollider/docker-compose.yml

@ -0,0 +1,48 @@
version: "3.7"
services:
backend:
image: kolliderhq/kollider-lite-backend:v1.0.3@sha256:1229b8d800447ddd43b8e21e5dbbdc4773e873d3bc4f13a00976bc14607c393b
init: true
user: 1000:1000
restart: on-failure
stop_grace_period: 1m
volumes:
- ${LND_DATA_DIR}:/lnd:ro
- ${APP_DATA_DIR}/data/logs:/app/logs
environment:
LND_IP: $LND_IP
LND_ZMQ_SUB_ADDRESS: "tcp://${APP_KOLLIDER_WS_IP}:5556"
networks:
default:
ipv4_address: $APP_KOLLIDER_HH_IP
ws:
image: kolliderhq/kollider-ws-client:v1.0.3@sha256:567ed821291e76fa6c9a0e4e5895375600d1bffc7876938d489f799fbbe0249f
init: true
user: 1000:1000
restart: on-failure
stop_grace_period: 1m
ports:
- "$APP_KOLLIDER_WS_PORT:8080"
environment:
APP_PASSWORD: $APP_PASSWORD
KOLLIDER_ZMQ_PUB_ADDRESS: "tcp://*:5556"
KOLLIDER_ZMQ_SUB_ADDRESS: "tcp://${APP_KOLLIDER_HH_IP}:5557"
KOLLIDER_ZMQ_HEDGER_ADDRESS: "tcp://${APP_KOLLIDER_HH_IP}:5558"
KOLLIDER_ZMQ_HEDGER_SUB_ADDRESS: "tcp://${APP_KOLLIDER_HH_IP}:5559"
networks:
default:
ipv4_address: $APP_KOLLIDER_WS_IP
web:
image: kolliderhq/kollider-lite-app:v1.0.3@sha256:a7356b606e3062f74cf60bf0464fda736ae32e44920b7200bcf1f18c3eb1dd1a
init: true
user: 1000:1000
restart: on-failure
stop_grace_period: 1m
volumes:
- ${APP_DATA_DIR}/data/cache/images:/app/.next/cache/images
ports:
- "$APP_KOLLIDER_PORT:3000"
networks:
default:
ipv4_address: $APP_KOLLIDER_IP

5
kollider/exports.sh

@ -0,0 +1,5 @@
export APP_KOLLIDER_IP="10.21.21.70"
export APP_KOLLIDER_PORT="4243"
export APP_KOLLIDER_WS_IP="10.21.21.71"
export APP_KOLLIDER_WS_PORT="4244"
export APP_KOLLIDER_HH_IP="10.21.21.72"

4
kollider/torrc.template

@ -0,0 +1,4 @@
# kollider Hidden Service
HiddenServiceDir /data/app-kollider
HiddenServicePort 80 $APP_KOLLIDER_IP:3000
HiddenServicePort 4244 $APP_KOLLIDER_WS_IP:8080

32
kollider/umbrel-app.yml

@ -0,0 +1,32 @@
manifest: 1
id: kollider
category: Finance
name: Kollider
version: 1.0.3
tagline: Lightning-fast derivative trading
description: >-
Kollider lets you instantly trade perpetual contracts with low fees
and up to 100x buying power.
No need to pre-fund a trading account, each trade settles directly from your own wallet or even from your own lightning node in milliseconds.
The Kollider Umbrel App lets you use the Lightning Network to get instant exposure to a range of products using Bitcoin, directly from your Umbrel node.
More features coming soon!
developer: Kollider
website: https://kollider.xyz
dependencies:
- lnd
repo: https://github.com/kolliderhq/kollider-lite-app
support: https://t.me/kolliderhq
port: 4243
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
deterministicPassword: true
torOnly: false

0
krystal-bull/data/log/.gitkeep

0
krystal-bull/data/oracleserver/.gitkeep

36
krystal-bull/docker-compose.yml

@ -0,0 +1,36 @@
version: "3.7"
services:
web:
image: bitcoinscala/oracle-server-ui:1.9.0-c946d255-SNAPSHOT@sha256:8524db49036e35ce0da2dca515d54ed997328c3ca339d81e7782d4764c195995
user: "1000:1000"
restart: on-failure
stop_grace_period: 1m
volumes:
- ${APP_DATA_DIR}/data/oracleserver:/home/bitcoin-s/.bitcoin-s
- ${APP_DATA_DIR}/data/log:/log
environment:
LOG_PATH: "/log/"
BITCOIN_S_HOME: "/home/bitcoin-s/.bitcoin-s/"
ORACLE_SERVER_API_URL: "http://${APP_KRYSTAL_BULL_SERVER_IP}:9998/"
TOR_PROXY: socks5://${TOR_PROXY_IP}:${TOR_PROXY_PORT}
DEFAULT_UI_PASSWORD: $APP_PASSWORD
BITCOIN_S_ORACLE_RPC_PASSWORD: $APP_PASSWORD
ports:
- "${APP_KRYSTAL_BULL_PORT}:3001"
networks:
default:
ipv4_address: $APP_KRYSTAL_BULL_IP
depends_on:
- oracleserver
oracleserver:
image: bitcoinscala/bitcoin-s-oracle-server:1.9.0-91-ddabc912-SNAPSHOT@sha256:4797299a6c6570bc50a54a82eba73724f01560093ec3c29db8ed521e8e6fd2ee
restart: on-failure
volumes:
- ${APP_DATA_DIR}/data/oracleserver:/home/bitcoin-s/.bitcoin-s
environment:
BITCOIN_S_KEYMANAGER_ENTROPY: $APP_SEED
BITCOIN_S_ORACLE_RPC_PASSWORD: $APP_PASSWORD
networks:
default:
ipv4_address: $APP_KRYSTAL_BULL_SERVER_IP

3
krystal-bull/exports.sh

@ -0,0 +1,3 @@
export APP_KRYSTAL_BULL_IP="10.21.21.56"
export APP_KRYSTAL_BULL_PORT="3010"
export APP_KRYSTAL_BULL_SERVER_IP="10.21.21.57"

3
krystal-bull/torrc.template

@ -0,0 +1,3 @@
# krystal-bull Hidden Service
HiddenServiceDir /data/app-krystal-bull
HiddenServicePort 80 $APP_KRYSTAL_BULL_IP:3001

31
krystal-bull/umbrel-app.yml

@ -0,0 +1,31 @@
manifest: 1
id: krystal-bull
category: Finance
name: Krystal Bull
version: 1.9.0-91-ddabc912
tagline: Become an oracle and create Bitcoin bets
description: >-
Krystal Bull allows you to become a Bitcoin oracle. An oracle
allows information from the real world (financial markets, sporting events,
elections, etc) to be used to create and settle Bitcoin bets.
The oracle is a crucial component for Discreet Log Contracts (DLC). Without a trustworthy oracle, you cannot create a bet on Bitcoin using DLCs. Trustworthy oracles are a building block to realizing Bitcoin DeFi.
To see some example oracles, please visit oracle.suredbits.com.
WARNING: This version of Krystal Bull is an early alpha release for testing. It's not secure, please don't use it for anything serious.
developer: SuredBits
website: https://suredbits.com/
dependencies: []
repo: https://github.com/bitcoin-s/krystal-bull
support: https://t.me/suredbits
port: 3010
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
deterministicPassword: true

0
lightning-shell/data/.gitkeep

23
lightning-shell/docker-compose.yml

@ -0,0 +1,23 @@
version: "3.7"
services:
web:
image: ghcr.io/ibz/lightning-shell:v0.1.10-buster-slim@sha256:4ea6aafee8ddd092b27850bccef71458d9e382e63d12b159d075bfde328ebef3
restart: on-failure
stop_grace_period: 1m
ports:
- ${APP_LIGHTNING_SHELL_PORT}:7681
volumes:
- ${LND_DATA_DIR}:/lnd:ro
- ${APP_DATA_DIR}/data:/data
environment:
APP_PASSWORD: "${APP_PASSWORD}"
BITCOIN_IP: "${BITCOIN_IP}"
BITCOIN_RPC_PORT: "${BITCOIN_RPC_PORT}"
BITCOIN_RPC_USER: "${BITCOIN_RPC_USER}"
BITCOIN_RPC_PASS: "${BITCOIN_RPC_PASS}"
LND_IP: "${LND_IP}"
LND_GRPC_PORT: ${LND_GRPC_PORT}
networks:
default:
ipv4_address: $APP_LIGHTNING_SHELL_IP

2
lightning-shell/exports.sh

@ -0,0 +1,2 @@
export APP_LIGHTNING_SHELL_PORT="7681"
export APP_LIGHTNING_SHELL_IP="10.21.21.66"

3
lightning-shell/torrc.template

@ -0,0 +1,3 @@
# lightning-shell Hidden Service
HiddenServiceDir /data/app-lightning-shell
HiddenServicePort 80 $APP_LIGHTNING_SHELL_IP:7681

35
lightning-shell/umbrel-app.yml

@ -0,0 +1,35 @@
manifest: 1
id: lightning-shell
category: Lightning Node Management
name: Lightning Shell
version: 0.1.10
tagline: Web shell with a selection of LN node management utilities
description: >
Lightning Shell is a web shell for the Umbrel personal server that
includes the following utilities:
- lncli
- charge-lnd
- lntop
- rebalance-lnd
- suez
developer: Ioan Bizău
website: https://lightningshell.app
dependencies:
- lnd
- bitcoind
repo: https://ibz.github.io/lightning-shell/
support: https://ibz.github.io/lightning-shell/issues
port: 7681
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultUsername: umbrel
deterministicPassword: true

0
lightning-terminal/data/.gitkeep

27
lightning-terminal/docker-compose.yml

@ -0,0 +1,27 @@
version: "3.7"
services:
web:
image: lightninglabs/lightning-terminal:v0.6.5-alpha@sha256:541fb9034a25dd4336becabdee6d40f76c3f4ae4557cbce30a46a3a8e3ef0e74
user: "1000:1000"
restart: on-failure
stop_grace_period: 1m
ports:
- "$APP_LIGHTNING_TERMINAL_PORT:$APP_LIGHTNING_TERMINAL_PORT"
volumes:
- ${APP_DATA_DIR}/data:/data
- ${LND_DATA_DIR}:/lnd:ro
environment:
HOME: "/data"
APP_PASSWORD: "$APP_PASSWORD"
command:
- --uipassword_env=APP_PASSWORD
- --insecure-httplisten=0.0.0.0:$APP_LIGHTNING_TERMINAL_PORT
- --network="$BITCOIN_NETWORK"
- --lnd-mode="remote"
- --remote.lnd.rpcserver=$LND_IP:$LND_GRPC_PORT
- --remote.lnd.macaroonpath="/lnd/data/chain/bitcoin/$BITCOIN_NETWORK/admin.macaroon"
- --remote.lnd.tlscertpath="/lnd/tls.cert"
networks:
default:
ipv4_address: $APP_LIGHTNING_TERMINAL_IP

2
lightning-terminal/exports.sh

@ -0,0 +1,2 @@
export APP_LIGHTNING_TERMINAL_IP="10.21.21.17"
export APP_LIGHTNING_TERMINAL_PORT="3004"

3
lightning-terminal/torrc.template

@ -0,0 +1,3 @@
# lightning-terminal Hidden Service
HiddenServiceDir /data/app-lightning-terminal
HiddenServicePort 80 $APP_LIGHTNING_TERMINAL_IP:$APP_LIGHTNING_TERMINAL_PORT

51
lightning-terminal/umbrel-app.yml

@ -0,0 +1,51 @@
manifest: 1
id: lightning-terminal
category: Lightning Node Management
name: Lightning Terminal
version: v0.6.5-alpha
tagline: The easiest way to manage channel liquidity
description: >-
Lightning Terminal is the easiest way to manage inbound and
outbound liquidity on the Lightning Network. Keep your channels open and the
funds flowing. It provides a visual interface for interacting with your
channels and balances using Loop.
New: Introducing Lightning Pool, a marketplace for Lightning channels. You can now earn sats by opening new channels to those looking to receive funds on Lightning for a set period of time, or rent a channel to start accepting payments instantly. Join the marketplace and start putting your Bitcoin to work.
Why use Pool?
- Earn a return on Lightning capital
- Rent a channel and start accepting payments instantly
- Open channels for less with transaction batching
Why use Loop?
- Add "inbound liquidity" to receive payments
- Reduce transaction fees by recycling and reusing Lightning channels
- Send funds to and from users or services that aren't yet Lightning enabled
- Configurable wait times and "batching" allow for further fee savings
- Refill and offload funds from any number of Lightning channels in a single on-chain transaction
developer: Lightning Labs
website: https://lightning.engineering
dependencies:
- lnd
repo: https://github.com/lightninglabs/lightning-terminal
support: https://github.com/lightninglabs/lightning-terminal/issues/new
port: 3004
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
- 4.jpg
path: ""
defaultUsername: ""
deterministicPassword: true

0
lnbits/data/.gitkeep

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save