Browse Source

Add squeaknode app (#385)

Co-authored-by: Luke Childs <lukechilds123@gmail.com>
catch-docker-failure
Jonathan Zernik 3 years ago
committed by GitHub
parent
commit
585f8a82ab
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 24
      apps/registry.json
  2. 44
      apps/squeaknode/docker-compose.yml
  3. 0
      apps/squeaknode/sqk/.gitkeep
  4. 2
      scripts/app
  5. 14
      scripts/configure
  6. 7
      templates/.env-sample
  7. 10
      templates/torrc-apps-2-sample

24
apps/registry.json

@ -475,5 +475,29 @@
],
"path": "",
"defaultPassword": ""
},
{
"id": "squeaknode",
"category": "Social",
"name": "Squeaknode",
"version": "0.1.152",
"tagline": "Squeaknode is a peer-to-peer status feed",
"description": "The Squeaknode app allows you to create, view, buy, and sell squeaks. A squeak is a single post that can contain up to 280 characters.\n\nThe Squeaknode timeline is ordered by the timestamp/blockhash embedded in each squeak. Each squeak is signed with a digital signature of the private key of the author. Squeaks can be downloaded from any peer to any peer, but they remain locked until the downloader makes a Lightning payment to decrypt the content.",
"developer": "Jonathan Zernik",
"website": "https://github.com/yzernik",
"dependencies": [
"bitcoind",
"lnd"
],
"repo": "https://github.com/yzernik/squeaknode",
"support": "https://github.com/yzernik/squeaknode/discussions",
"port": 12994,
"gallery": [
"1.jpg",
"2.jpg",
"3.jpg"
],
"path": "/login?user=umbrel",
"defaultPassword": "moneyprintergobrrr"
}
]

44
apps/squeaknode/docker-compose.yml

@ -0,0 +1,44 @@
version: "3.7"
services:
web:
image: yzernik/squeaknode:v0.1.152@sha256:9d4859bed472314e88ec8ad76e45b60872db61267d4f1bd52937b8a5107814c8
restart: on-failure
stop_grace_period: 1m
ports:
- "$APP_SQUEAKNODE_PORT:$APP_SQUEAKNODE_PORT"
- "$APP_SQUEAKNODE_GRPC_PORT:$APP_SQUEAKNODE_GRPC_PORT"
volumes:
- ${APP_DATA_DIR}/sqk:/sqk
- ${LND_DATA_DIR}:/lnd:ro
user: "1000:1000"
environment:
# Bitcoin Core connection details
SQUEAKNODE_BITCOIN_RPC_HOST: $BITCOIN_IP
SQUEAKNODE_BITCOIN_RPC_PORT: $BITCOIN_RPC_PORT
SQUEAKNODE_BITCOIN_RPC_USER: $BITCOIN_RPC_USER
SQUEAKNODE_BITCOIN_RPC_PASS: $BITCOIN_RPC_PASS
SQUEAKNODE_BITCOIN_ZEROMQ_HASHBLOCK_PORT: $BITCOIN_ZMQ_HASHBLOCK_PORT
# LND environment variables
SQUEAKNODE_LND_HOST: $LND_IP
SQUEAKNODE_LND_RPC_PORT: $LND_GRPC_PORT
SQUEAKNODE_LND_TLS_CERT_PATH: "/lnd/tls.cert"
SQUEAKNODE_LND_MACAROON_PATH: "/lnd/data/chain/bitcoin/$BITCOIN_NETWORK/admin.macaroon"
# App specific environment variables
SQUEAKNODE_WEBADMIN_ENABLED: "true"
SQUEAKNODE_WEBADMIN_USERNAME: "umbrel"
SQUEAKNODE_WEBADMIN_PASSWORD: "moneyprintergobrrr"
SQUEAKNODE_NODE_NETWORK: "$BITCOIN_NETWORK"
SQUEAKNODE_NODE_SQK_DIR_PATH: "/sqk"
SQUEAKNODE_NODE_MAX_SQUEAKS: 10000
SQUEAKNODE_NODE_TOR_PROXY_IP: $TOR_PROXY_IP
SQUEAKNODE_NODE_TOR_PROXY_PORT: $TOR_PROXY_PORT
SQUEAKNODE_NODE_EXTERNAL_ADDRESS: $SQUEAKNODE_P2P_HIDDEN_SERVICE
DEBUG: "squeaknode:*"
networks:
default:
ipv4_address: $APP_SQUEAKNODE_IP

0
apps/squeaknode/sqk/.gitkeep

2
scripts/app

@ -122,12 +122,14 @@ compose() {
# these values will be registered in an apps manifest and generated dynamically.
local dojo_hidden_service_file="${UMBREL_ROOT}/tor/data/app-${app}-dojo/hostname"
local whirlpool_hidden_service_file="${UMBREL_ROOT}/tor/data/app-${app}-whirlpool/hostname"
local squeaknode_p2p_hidden_service_file="${UMBREL_ROOT}/tor/data/app-${app}-p2p/hostname"
export SAMOURAI_SERVER_DOJO_HIDDEN_SERVICE="$(cat "${dojo_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")"
export SAMOURAI_SERVER_WHIRLPOOL_HIDDEN_SERVICE="$(cat "${whirlpool_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")"
export SAMOURAI_SERVER_NODE_API_KEY=$(derive_entropy "env-${app_entropy_identifier}-NODE_API_KEY")
export SAMOURAI_SERVER_NODE_ADMIN_KEY=$(derive_entropy "env-${app_entropy_identifier}-NODE_ADMIN_KEY")
export SAMOURAI_SERVER_NODE_JWT_SECRET=$(derive_entropy "env-${app_entropy_identifier}-NODE_JWT_SECRET")
export SAMOURAI_SERVER_WHIRLPOOL_API_KEY=$(derive_entropy "env-${app_entropy_identifier}-WHIRLPOOL_API_KEY")
export SQUEAKNODE_P2P_HIDDEN_SERVICE="$(cat "${squeaknode_p2p_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")"
docker-compose \
--env-file "${env_file}" \

14
scripts/configure

@ -193,6 +193,13 @@ APP_VAULTWARDEN_IP="10.21.21.46"
APP_VAULTWARDEN_PORT="8089"
APP_CODE_SERVER_IP="10.21.21.53"
APP_CODE_SERVER_PORT="8091"
APP_SQUEAKNODE_IP="10.21.21.54"
APP_SQUEAKNODE_PORT="12994"
APP_SQUEAKNODE_GRPC_PORT="8994"
APP_SQUEAKNODE_P2P_PORT="8555"
APP_SQUEAKNODE_P2P_TESTNET_PORT="18555"
APP_SQUEAKNODE_ENVOY_IP="10.21.21.55"
APP_SQUEAKNODE_ENVOY_PORT="15081"
# Generate RPC credentials
if [[ -z ${BITCOIN_RPC_USER+x} ]] || [[ -z ${BITCOIN_RPC_PASS+x} ]] || [[ -z ${BITCOIN_RPC_AUTH+x} ]]; then
@ -385,6 +392,13 @@ for template in "${NGINX_CONF_FILE}" "${BITCOIN_CONF_FILE}" "${LND_CONF_FILE}" "
sed -i "s/<app-vaultwarden-port>/${APP_VAULTWARDEN_PORT}/g" "${template}"
sed -i "s/<app-code-server-ip>/${APP_CODE_SERVER_IP}/g" "${template}"
sed -i "s/<app-code-server-port>/${APP_CODE_SERVER_PORT}/g" "${template}"
sed -i "s/<app-squeaknode-ip>/${APP_SQUEAKNODE_IP}/g" "${template}"
sed -i "s/<app-squeaknode-port>/${APP_SQUEAKNODE_PORT}/g" "${template}"
sed -i "s/<app-squeaknode-grpc-port>/${APP_SQUEAKNODE_GRPC_PORT}/g" "${template}"
sed -i "s/<app-squeaknode-p2p-port>/${APP_SQUEAKNODE_P2P_PORT}/g" "${template}"
sed -i "s/<app-squeaknode-p2p-testnet-port>/${APP_SQUEAKNODE_P2P_TESTNET_PORT}/g" "${template}"
sed -i "s/<app-squeaknode-envoy-ip>/${APP_SQUEAKNODE_ENVOY_IP}/g" "${template}"
sed -i "s/<app-squeaknode-envoy-port>/${APP_SQUEAKNODE_ENVOY_PORT}/g" "${template}"
done
##########################################################

7
templates/.env-sample

@ -90,3 +90,10 @@ APP_VAULTWARDEN_IP=<app-vaultwarden-ip>
APP_VAULTWARDEN_PORT=<app-vaultwarden-port>
APP_CODE_SERVER_IP=<app-code-server-ip>
APP_CODE_SERVER_PORT=<app-code-server-port>
APP_SQUEAKNODE_IP=<app-squeaknode-ip>
APP_SQUEAKNODE_PORT=<app-squeaknode-port>
APP_SQUEAKNODE_GRPC_PORT=<app-squeaknode-grpc-port>
APP_SQUEAKNODE_P2P_PORT=<app-squeaknode-p2p-port>
APP_SQUEAKNODE_P2P_TESTNET_PORT=<app-squeaknode-p2p-testnet-port>
APP_SQUEAKNODE_ENVOY_IP=<app-squeaknode-envoy-ip>
APP_SQUEAKNODE_ENVOY_PORT=<app-squeaknode-envoy-port>

10
templates/torrc-apps-2-sample

@ -53,3 +53,13 @@ HiddenServicePort 80 <app-vaultwarden-ip>:<app-vaultwarden-port>
# code-server Hidden Service
HiddenServiceDir /var/lib/tor/app-code-server
HiddenServicePort 80 <app-code-server-ip>:8080
# squeaknode Hidden Service
HiddenServiceDir /var/lib/tor/app-squeaknode
HiddenServicePort 80 <app-squeaknode-ip>:<app-squeaknode-port>
HiddenServicePort <app-squeaknode-envoy-port> <app-squeaknode-envoy-ip>:<app-squeaknode-envoy-port>
# squeaknode p2p Hidden Service
HiddenServiceDir /var/lib/tor/app-squeaknode-p2p
HiddenServicePort <app-squeaknode-p2p-port> <app-squeaknode-ip>:<app-squeaknode-p2p-port>
HiddenServicePort <app-squeaknode-p2p-testnet-port> <app-squeaknode-ip>:<app-squeaknode-p2p-testnet-port>

Loading…
Cancel
Save