feat(nginx): proxy WS + Next assets; chore: favicon; infra: signer/storage latest; conf: relay ws/storage; ops: certbot + nodesource; fix: basePath via Nginx sub_filter
This commit is contained in:
parent
c430e82cbb
commit
a360dce567
12
.env.exemple
12
.env.exemple
@ -44,15 +44,17 @@ NEXT_PUBLIC_IDNOT_BASE_URL=
|
|||||||
NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT=
|
NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT=
|
||||||
NEXT_PUBLIC_IDNOT_CLIENT_ID=
|
NEXT_PUBLIC_IDNOT_CLIENT_ID=
|
||||||
NEXT_PUBLIC_BACK_API_PROTOCOL=
|
NEXT_PUBLIC_BACK_API_PROTOCOL=
|
||||||
NEXT_PUBLIC_BACK_API_HOST=
|
|
||||||
NEXT_PUBLIC_BACK_API_PORT=
|
|
||||||
NEXT_PUBLIC_BACK_API_ROOT_URL=
|
|
||||||
NEXT_PUBLIC_BACK_API_VERSION=
|
|
||||||
NEXT_PUBLIC_ANK_BASE_REDIRECT_URI=
|
NEXT_PUBLIC_ANK_BASE_REDIRECT_URI=
|
||||||
|
|
||||||
|
NEXT_PUBLIC_BACK_API_PROTOCOL=http
|
||||||
|
NEXT_PUBLIC_BACK_API_HOST=localhost
|
||||||
|
NEXT_PUBLIC_BACK_API_PORT=8080
|
||||||
|
NEXT_PUBLIC_BACK_API_ROOT_URL=/api
|
||||||
|
NEXT_PUBLIC_BACK_API_VERSION=/v1
|
||||||
|
|
||||||
#WS
|
#WS
|
||||||
RELAY_URLS=ws://sdk_relay:8090
|
RELAY_URLS=ws://sdk_relay:8090
|
||||||
SIGNER_WS_URL=https://demo.4nkweb.com/signer/
|
SIGNER_WS_URL=https://demo.4nkweb.com/signer/
|
||||||
|
|
||||||
#IHM URLS
|
#IHM URLS
|
||||||
VITE_BOOTSTRAPURL=http://sdk_relay:8090/
|
VITE_BOOTSTRAPURL=https://dev4.4nkweb.com/relay
|
BIN
conf/nginx/assets/favicon.ico
Normal file
BIN
conf/nginx/assets/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 590 B |
128
conf/nginx/dev4.4nkweb.com-https.conf
Normal file
128
conf/nginx/dev4.4nkweb.com-https.conf
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name dev4.4nkweb.com;
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443 ssl http2;
|
||||||
|
server_name dev4.4nkweb.com;
|
||||||
|
|
||||||
|
ssl_certificate /etc/letsencrypt/live/dev4.4nkweb.com/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/dev4.4nkweb.com/privkey.pem;
|
||||||
|
|
||||||
|
# ihm_client (root)
|
||||||
|
location / {
|
||||||
|
proxy_pass http://127.0.0.1:3003;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Favicon (global)
|
||||||
|
location = /favicon.ico {
|
||||||
|
root /home/debian/lecoffre_node/conf/nginx/assets;
|
||||||
|
try_files /favicon.ico =404;
|
||||||
|
access_log off;
|
||||||
|
expires 30d;
|
||||||
|
}
|
||||||
|
|
||||||
|
# lecoffre-front
|
||||||
|
location /lecoffre/ {
|
||||||
|
proxy_pass http://127.0.0.1:3000/;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
# Sub-filter to ensure assets/links are prefixed with /lecoffre
|
||||||
|
proxy_set_header Accept-Encoding "";
|
||||||
|
sub_filter_types text/html application/javascript text/css;
|
||||||
|
sub_filter_once off;
|
||||||
|
sub_filter 'href="/' 'href="/lecoffre/';
|
||||||
|
sub_filter 'src="/' 'src="/lecoffre/';
|
||||||
|
sub_filter 'content="/' 'content="/lecoffre/';
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Favicon sous /lecoffre
|
||||||
|
location = /lecoffre/favicon.ico {
|
||||||
|
root /home/debian/lecoffre_node/conf/nginx/assets;
|
||||||
|
try_files /favicon.ico =404;
|
||||||
|
access_log off;
|
||||||
|
expires 30d;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Next.js assets (served at root by the app)
|
||||||
|
location /_next/ {
|
||||||
|
proxy_pass http://127.0.0.1:3000/_next/;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# lecoffre-back
|
||||||
|
location /back/ {
|
||||||
|
proxy_pass http://127.0.0.1:8080/;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# blindbit
|
||||||
|
location /blindbit/ {
|
||||||
|
proxy_pass http://127.0.0.1:8000/;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# signer (sdk_signer)
|
||||||
|
location /signer/ {
|
||||||
|
proxy_pass http://127.0.0.1:3001/;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# storage (sdk_storage)
|
||||||
|
location /storage/ {
|
||||||
|
proxy_pass http://127.0.0.1:8081/;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# WebSocket relay on /ws → 8090
|
||||||
|
location = /ws {
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-Proto https;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_pass http://127.0.0.1:8090/;
|
||||||
|
proxy_read_timeout 600s;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /ws/ {
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-Proto https;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_buffering off;
|
||||||
|
# Strip /ws prefix when proxying to backend root
|
||||||
|
proxy_pass http://127.0.0.1:8090/;
|
||||||
|
proxy_read_timeout 600s;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Next.js HMR websocket for lecoffre-front
|
||||||
|
location /_next/webpack-hmr {
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-Proto https;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_pass http://127.0.0.1:3000/_next/webpack-hmr;
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
}
|
125
conf/nginx/dev4.4nkweb.com.conf
Normal file
125
conf/nginx/dev4.4nkweb.com.conf
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
# HTTP server for ACME and initial proxying
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name dev4.4nkweb.com;
|
||||||
|
|
||||||
|
# ACME HTTP-01 challenges
|
||||||
|
location /.well-known/acme-challenge/ {
|
||||||
|
root /var/www/letsencrypt;
|
||||||
|
}
|
||||||
|
|
||||||
|
# ihm_client (root)
|
||||||
|
location / {
|
||||||
|
proxy_pass http://127.0.0.1:3003;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Favicon (global)
|
||||||
|
location = /favicon.ico {
|
||||||
|
root /home/debian/lecoffre_node/conf/nginx/assets;
|
||||||
|
try_files /favicon.ico =404;
|
||||||
|
access_log off;
|
||||||
|
expires 30d;
|
||||||
|
}
|
||||||
|
|
||||||
|
# lecoffre-front
|
||||||
|
location /lecoffre/ {
|
||||||
|
proxy_pass http://127.0.0.1:3000/;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
# Sub-filter to ensure assets/links are prefixed with /lecoffre
|
||||||
|
proxy_set_header Accept-Encoding "";
|
||||||
|
sub_filter_types text/html application/javascript text/css;
|
||||||
|
sub_filter_once off;
|
||||||
|
sub_filter 'href="/' 'href="/lecoffre/';
|
||||||
|
sub_filter 'src="/' 'src="/lecoffre/';
|
||||||
|
sub_filter 'content="/' 'content="/lecoffre/';
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Favicon sous /lecoffre
|
||||||
|
location = /lecoffre/favicon.ico {
|
||||||
|
root /home/debian/lecoffre_node/conf/nginx/assets;
|
||||||
|
try_files /favicon.ico =404;
|
||||||
|
access_log off;
|
||||||
|
expires 30d;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Next.js assets (served at root by the app)
|
||||||
|
location /_next/ {
|
||||||
|
proxy_pass http://127.0.0.1:3000/_next/;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# lecoffre-back
|
||||||
|
location /back/ {
|
||||||
|
proxy_pass http://127.0.0.1:8080/;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# blindbit
|
||||||
|
location /blindbit/ {
|
||||||
|
proxy_pass http://127.0.0.1:8000/;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# signer (sdk_signer)
|
||||||
|
location /signer/ {
|
||||||
|
proxy_pass http://127.0.0.1:3001/;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# storage (sdk_storage)
|
||||||
|
location /storage/ {
|
||||||
|
proxy_pass http://127.0.0.1:8081/;
|
||||||
|
include /etc/nginx/proxy_params;
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
# WebSocket relay on /ws → 8090
|
||||||
|
location = /ws {
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-Proto http;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_pass http://127.0.0.1:8090/;
|
||||||
|
proxy_read_timeout 600s;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /ws/ {
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-Proto http;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_buffering off;
|
||||||
|
# Strip /ws prefix when proxying to backend root
|
||||||
|
proxy_pass http://127.0.0.1:8090/;
|
||||||
|
proxy_read_timeout 600s;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Next.js HMR websocket for lecoffre-front
|
||||||
|
location /_next/webpack-hmr {
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-Proto http;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_pass http://127.0.0.1:3000/_next/webpack-hmr;
|
||||||
|
proxy_read_timeout 300;
|
||||||
|
}
|
||||||
|
}
|
@ -9,7 +9,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
bitcoin:
|
bitcoin:
|
||||||
image: git.4nkweb.com/4nk/bitcoin:latest
|
image: git.4nkweb.com/4nk/bitcoin:latest
|
||||||
container_name: bitcoin-signet
|
container_name: bitcoin-signet
|
||||||
depends_on:
|
depends_on:
|
||||||
- tor
|
- tor
|
||||||
@ -137,6 +137,32 @@ services:
|
|||||||
- "com.centurylinklabs.watchtower.enable=true"
|
- "com.centurylinklabs.watchtower.enable=true"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
|
sdk_signer:
|
||||||
|
image: git.4nkweb.com/4nk/sdk_signer:latest
|
||||||
|
container_name: sdk_signer
|
||||||
|
ports:
|
||||||
|
- "3001:3001"
|
||||||
|
networks:
|
||||||
|
btcnet:
|
||||||
|
aliases:
|
||||||
|
- sdk_signer
|
||||||
|
labels:
|
||||||
|
- "com.centurylinklabs.watchtower.enable=true"
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
sdk_storage:
|
||||||
|
image: git.4nkweb.com/4nk/sdk_storage:latest
|
||||||
|
container_name: sdk_storage
|
||||||
|
ports:
|
||||||
|
- "8081:8081"
|
||||||
|
networks:
|
||||||
|
btcnet:
|
||||||
|
aliases:
|
||||||
|
- sdk_storage
|
||||||
|
labels:
|
||||||
|
- "com.centurylinklabs.watchtower.enable=true"
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
watchtower:
|
watchtower:
|
||||||
image: containrrr/watchtower
|
image: containrrr/watchtower
|
||||||
container_name: watchtower
|
container_name: watchtower
|
||||||
|
62
docker.gpg
Normal file
62
docker.gpg
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
YT90qFF93M3v01BbxP+EIY2/9tiIPbrd
|
||||||
|
=0YYh
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
7
docs/setup_outils.md
Normal file
7
docs/setup_outils.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Outils installés
|
||||||
|
|
||||||
|
Date: 2025-09-16T14:01:39+00:00
|
||||||
|
|
||||||
|
## Versions
|
||||||
|
### Node.js
|
||||||
|
|
113
nodesource_setup.sh
Normal file
113
nodesource_setup.sh
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Logger Function
|
||||||
|
log() {
|
||||||
|
local message="$1"
|
||||||
|
local type="$2"
|
||||||
|
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
|
||||||
|
local color
|
||||||
|
local endcolor="\033[0m"
|
||||||
|
|
||||||
|
case "$type" in
|
||||||
|
"info") color="\033[38;5;79m" ;;
|
||||||
|
"success") color="\033[1;32m" ;;
|
||||||
|
"error") color="\033[1;31m" ;;
|
||||||
|
*) color="\033[1;34m" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo -e "${color}${timestamp} - ${message}${endcolor}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Error handler function
|
||||||
|
handle_error() {
|
||||||
|
local exit_code=$1
|
||||||
|
local error_message="$2"
|
||||||
|
log "Error: $error_message (Exit Code: $exit_code)" "error"
|
||||||
|
exit $exit_code
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to check for command availability
|
||||||
|
command_exists() {
|
||||||
|
command -v "$1" &> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
check_os() {
|
||||||
|
if ! [ -f "/etc/debian_version" ]; then
|
||||||
|
echo "Error: This script is only supported on Debian-based systems."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to Install the script pre-requisites
|
||||||
|
install_pre_reqs() {
|
||||||
|
log "Installing pre-requisites" "info"
|
||||||
|
|
||||||
|
# Run 'apt-get update'
|
||||||
|
if ! apt-get update -y; then
|
||||||
|
handle_error "$?" "Failed to run 'apt-get update'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run 'apt-get install'
|
||||||
|
if ! apt-get install -y apt-transport-https ca-certificates curl gnupg; then
|
||||||
|
handle_error "$?" "Failed to install packages"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! mkdir -p /usr/share/keyrings; then
|
||||||
|
handle_error "$?" "Makes sure the path /usr/share/keyrings exist or run ' mkdir -p /usr/share/keyrings' with sudo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f /usr/share/keyrings/nodesource.gpg || true
|
||||||
|
rm -f /etc/apt/sources.list.d/nodesource.list || true
|
||||||
|
|
||||||
|
# Run 'curl' and 'gpg' to download and import the NodeSource signing key
|
||||||
|
if ! curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; then
|
||||||
|
handle_error "$?" "Failed to download and import the NodeSource signing key"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Explicitly set the permissions to ensure the file is readable by all
|
||||||
|
if ! chmod 644 /usr/share/keyrings/nodesource.gpg; then
|
||||||
|
handle_error "$?" "Failed to set correct permissions on /usr/share/keyrings/nodesource.gpg"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to configure the Repo
|
||||||
|
configure_repo() {
|
||||||
|
local node_version=$1
|
||||||
|
|
||||||
|
arch=$(dpkg --print-architecture)
|
||||||
|
if [ "$arch" != "amd64" ] && [ "$arch" != "arm64" ] && [ "$arch" != "armhf" ]; then
|
||||||
|
handle_error "1" "Unsupported architecture: $arch. Only amd64, arm64, and armhf are supported."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "deb [arch=$arch signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$node_version nodistro main" | tee /etc/apt/sources.list.d/nodesource.list > /dev/null
|
||||||
|
|
||||||
|
# N|solid Config
|
||||||
|
echo "Package: nsolid" | tee /etc/apt/preferences.d/nsolid > /dev/null
|
||||||
|
echo "Pin: origin deb.nodesource.com" | tee -a /etc/apt/preferences.d/nsolid > /dev/null
|
||||||
|
echo "Pin-Priority: 600" | tee -a /etc/apt/preferences.d/nsolid > /dev/null
|
||||||
|
|
||||||
|
# Nodejs Config
|
||||||
|
echo "Package: nodejs" | tee /etc/apt/preferences.d/nodejs > /dev/null
|
||||||
|
echo "Pin: origin deb.nodesource.com" | tee -a /etc/apt/preferences.d/nodejs > /dev/null
|
||||||
|
echo "Pin-Priority: 600" | tee -a /etc/apt/preferences.d/nodejs > /dev/null
|
||||||
|
|
||||||
|
# Run 'apt-get update'
|
||||||
|
if ! apt-get update -y; then
|
||||||
|
handle_error "$?" "Failed to run 'apt-get update'"
|
||||||
|
else
|
||||||
|
log "Repository configured successfully."
|
||||||
|
log "To install Node.js, run: apt-get install nodejs -y" "info"
|
||||||
|
log "You can use N|solid Runtime as a node.js alternative" "info"
|
||||||
|
log "To install N|solid Runtime, run: apt-get install nsolid -y \n" "success"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Define Node.js version
|
||||||
|
NODE_VERSION="22.x"
|
||||||
|
|
||||||
|
# Check OS
|
||||||
|
check_os
|
||||||
|
|
||||||
|
# Main execution
|
||||||
|
install_pre_reqs || handle_error $? "Failed installing pre-requisites"
|
||||||
|
configure_repo "$NODE_VERSION" || handle_error $? "Failed configuring repository"
|
@ -4,6 +4,6 @@ wallet_name="default"
|
|||||||
network="signet"
|
network="signet"
|
||||||
blindbit_url="http://blindbit:8000"
|
blindbit_url="http://blindbit:8000"
|
||||||
zmq_url="tcp://bitcoin:29000"
|
zmq_url="tcp://bitcoin:29000"
|
||||||
storage="https://demo.4nkweb.com/storage"
|
storage="https://dev4.4nkweb.com/storage"
|
||||||
data_dir="/home/bitcoin/.4nk"
|
data_dir="/home/bitcoin/.4nk"
|
||||||
bitcoin_data_dir="/home/bitcoin/.bitcoin"
|
bitcoin_data_dir="/home/bitcoin/.bitcoin"
|
Loading…
x
Reference in New Issue
Block a user