mirror of https://github.com/lukechilds/umbrel.git
Mayank Chhabra
5 years ago
committed by
GitHub
7 changed files with 44 additions and 100 deletions
@ -1,11 +0,0 @@ |
|||
FROM alpine:3.10 |
|||
|
|||
RUN apk add --no-cache curl jq |
|||
|
|||
RUN mkdir /lnd/ |
|||
|
|||
COPY unlock.sh /bin/unlock |
|||
|
|||
RUN chmod +x /bin/unlock |
|||
|
|||
ENTRYPOINT ["unlock"] |
@ -1,57 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
HOST=localhost:8080 |
|||
TLS_CERT=/lnd/tls.cert |
|||
LNDPASSWORD_PATH=/secrets/lnd-password.txt |
|||
MACAROON_PATH=/lnd/data/chain/bitcoin/mainnet/admin.macaroon |
|||
|
|||
lncurl() { |
|||
MACAROON="$(xxd -p /lnd/data/chain/bitcoin/mainnet/admin.macaroon | tr -d '\n')" |
|||
url_path=$1 |
|||
data=$2 |
|||
|
|||
curl --fail --silent --show-error \ |
|||
--cacert "${TLS_CERT}" \ |
|||
--header "Grpc-Metadata-macaroon: ${MACAROON}" \ |
|||
--data "${data}" \ |
|||
"https://${HOST}/v1/${url_path}" |
|||
} |
|||
|
|||
while true; do |
|||
# First make sure that port is open |
|||
while ! nc -z localhost 8080; do |
|||
>&2 echo "Waiting for ${HOST} port to open…" |
|||
sleep 3 |
|||
done |
|||
>&2 echo "Port ${HOST} is open" |
|||
|
|||
# Wait a bit more in case the port was just opened |
|||
sleep 1 |
|||
if [[ -f $LNDPASSWORD_PATH ]]; then |
|||
if [[ -f $MACAROON_PATH ]]; then |
|||
>&2 echo "Password and macaroon file file exists" |
|||
PASS="$(cat /secrets/lnd-password.txt | tr -d '\n' | base64 | tr -d '\n')" |
|||
UNLOCK_PAYLOAD="$(jq -nc --arg wallet_password ${PASS} '{$wallet_password}')" |
|||
# Try getinfo then unlock |
|||
>&2 echo "Trying ${HOST}/getinfo…" |
|||
INFO=$(lncurl getinfo) |
|||
if [ "$?" = "0" ]; then |
|||
>&2 echo "Response: ${INFO}" |
|||
alias="$(echo "${INFO}" | jq '.alias')" |
|||
>&2 echo "Wallet for ${alias} unlocked!" |
|||
exit 0 |
|||
fi |
|||
>&2 echo "${HOST}/getinfo FAILED, out=${INFO}" |
|||
|
|||
>&2 echo "Trying ${HOST}/unlockwallet…" |
|||
RESULT=$(lncurl unlockwallet "${UNLOCK_PAYLOAD}") |
|||
>&2 echo "${HOST}/unlockwallet completed with: exit-code=$?, out=${RESULT}" |
|||
else |
|||
>&2 echo "macaroon file doesn't exist" |
|||
fi |
|||
else |
|||
>&2 echo "password file doesn't exist" |
|||
fi |
|||
|
|||
sleep 30 |
|||
done |
@ -1,17 +1,20 @@ |
|||
server { |
|||
listen 80 default_server; |
|||
listen [::]:80 default_server; |
|||
server_name _; |
|||
root /etc/nginx/www; |
|||
index index.html; |
|||
|
|||
location / { |
|||
index index.html; |
|||
try_files $uri $uri/ /index.html; |
|||
} |
|||
listen 80 default_server; |
|||
listen [::]:80 default_server; |
|||
server_name _; |
|||
|
|||
location /api/ { |
|||
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; |
|||
location /api/ { |
|||
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; |
|||
proxy_pass http://localhost:3005/; |
|||
} |
|||
} |
|||
|
|||
location /manager-api/ { |
|||
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; |
|||
proxy_pass http://localhost:3006/; |
|||
} |
|||
|
|||
location / { |
|||
add_header Access-Control-Allow-Origin *; |
|||
proxy_pass http://localhost:3004/; |
|||
} |
|||
} |
Loading…
Reference in new issue