Configure and run BTCPay Server
This commit is contained in:
parent
ca373a1503
commit
bbd5500982
10
data_bags/credentials/btcpay.json
Normal file
10
data_bags/credentials/btcpay.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "btcpay",
|
||||||
|
"postgres_password": {
|
||||||
|
"encrypted_data": "sDiikAwXFqRCguREzzL0ybo33pl3CiSnJt5pqqnY7Q==\n",
|
||||||
|
"iv": "2qY/agvlvTJCGaj+\n",
|
||||||
|
"auth_tag": "kC5KmBBtlR0Yzi44WU5Ntw==\n",
|
||||||
|
"version": 3,
|
||||||
|
"cipher": "aes-256-gcm"
|
||||||
|
}
|
||||||
|
}
|
@ -41,3 +41,9 @@ node.default['nbxplorer']['port'] = '24445'
|
|||||||
node.default['btcpay']['repo'] = 'https://github.com/btcpayserver/btcpayserver'
|
node.default['btcpay']['repo'] = 'https://github.com/btcpayserver/btcpayserver'
|
||||||
node.default['btcpay']['revision'] = 'latest'
|
node.default['btcpay']['revision'] = 'latest'
|
||||||
node.default['btcpay']['source_dir'] = '/opt/btcpay'
|
node.default['btcpay']['source_dir'] = '/opt/btcpay'
|
||||||
|
node.default['btcpay']['config_path'] = "/home/#{node['bitcoin']['username']}/.btcpayserver/Main/settings.config"
|
||||||
|
node.default['btcpay']['log_path'] = "/home/#{node['bitcoin']['username']}/.btcpayserver/debug.log"
|
||||||
|
node.default['btcpay']['port'] = '23001'
|
||||||
|
node.default['btcpay']['postgres']['port'] = 5432
|
||||||
|
node.default['btcpay']['postgres']['database'] = 'btcpayserver'
|
||||||
|
node.default['btcpay']['postgres']['user'] = 'satoshi'
|
||||||
|
@ -7,15 +7,83 @@ build_essential
|
|||||||
|
|
||||||
include_recipe "git"
|
include_recipe "git"
|
||||||
|
|
||||||
git node['nbxplorer']['source_dir'] do
|
git node['btcpay']['source_dir'] do
|
||||||
repository node['nbxplorer']['repo']
|
repository node['btcpay']['repo']
|
||||||
revision node['nbxplorer']['revision']
|
revision node['btcpay']['revision']
|
||||||
action :sync
|
action :sync
|
||||||
notifies :run, 'bash[build_nbxplorer]', :immediately
|
notifies :run, 'bash[build_btcpay]', :immediately
|
||||||
end
|
end
|
||||||
|
|
||||||
bash 'build_nbxplorer' do
|
bash 'build_btcpay' do
|
||||||
cwd node['nbxplorer']['source_dir']
|
cwd node['btcpay']['source_dir']
|
||||||
code './build.sh'
|
code './build.sh'
|
||||||
action :nothing
|
action :nothing
|
||||||
end
|
end
|
||||||
|
|
||||||
|
directory "/home/#{node['bitcoin']['username']}/.btcpayserver" do
|
||||||
|
owner node['bitcoin']['username']
|
||||||
|
group node['bitcoin']['usergroup']
|
||||||
|
mode '0750'
|
||||||
|
recursive true
|
||||||
|
end
|
||||||
|
|
||||||
|
directory File.dirname(node['btcpay']['config_path']) do
|
||||||
|
owner node['bitcoin']['username']
|
||||||
|
group node['bitcoin']['usergroup']
|
||||||
|
mode '0750'
|
||||||
|
recursive true
|
||||||
|
end
|
||||||
|
|
||||||
|
credentials = Chef::EncryptedDataBagItem.load('credentials', 'btcpay')
|
||||||
|
|
||||||
|
template node['btcpay']['config_path'] do
|
||||||
|
source "btcpay-settings.config.erb"
|
||||||
|
owner node['bitcoin']['username']
|
||||||
|
group node['bitcoin']['usergroup']
|
||||||
|
mode '0640'
|
||||||
|
variables bitcoin_network: node['bitcoin']['network'],
|
||||||
|
nbxplorer_url: "http://127.0.0.1:#{node['nbxplorer']['port']}",
|
||||||
|
btcpay_port: node['btcpay']['port'],
|
||||||
|
btcpay_log_path: node['btcpay']['log_path'],
|
||||||
|
postgres_host: "192.168.122.1",
|
||||||
|
postgres_port: node['btcpay']['postgres']['port'],
|
||||||
|
postgres_database: node['btcpay']['postgres']['database'],
|
||||||
|
postgres_user: node['btcpay']['postgres']['user'],
|
||||||
|
postgres_password: credentials['postgres_password']
|
||||||
|
end
|
||||||
|
|
||||||
|
directory '/run/btcpayserver' do
|
||||||
|
owner node['bitcoin']['username']
|
||||||
|
group node['bitcoin']['usergroup']
|
||||||
|
mode '0640'
|
||||||
|
end
|
||||||
|
|
||||||
|
systemd_unit 'btcpayserver.service' do
|
||||||
|
content({
|
||||||
|
Unit: {
|
||||||
|
Description: 'BTCPay Server daemon',
|
||||||
|
Documentation: ['https://docs.btcpayserver.org/ManualDeployment/'],
|
||||||
|
Requires: 'nbxplorer.service',
|
||||||
|
After: 'nbxplorer.service'
|
||||||
|
},
|
||||||
|
Service: {
|
||||||
|
User: node['bitcoin']['username'],
|
||||||
|
Group: node['bitcoin']['usergroup'],
|
||||||
|
Type: 'simple',
|
||||||
|
WorkingDirectory: node['btcpay']['source_dir'],
|
||||||
|
ExecStart: "#{node['btcpay']['source_dir']}/run.sh --conf=#{node['btcpay']['config_path']}",
|
||||||
|
PIDFile: '/run/btcpayserver/btcpayserver.pid',
|
||||||
|
Restart: 'on-failure',
|
||||||
|
PrivateTmp: true,
|
||||||
|
ProtectSystem: 'full',
|
||||||
|
NoNewPrivileges: true,
|
||||||
|
PrivateDevices: true
|
||||||
|
},
|
||||||
|
Install: {
|
||||||
|
WantedBy: 'multi-user.target'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
verify false
|
||||||
|
triggers_reload true
|
||||||
|
action [:create, :enable, :start]
|
||||||
|
end
|
||||||
|
@ -1,27 +1,34 @@
|
|||||||
#
|
#
|
||||||
# Cookbook:: kosmos-bitcoin
|
# Cookbook:: kosmos-bitcoin
|
||||||
# Recipe:: btcpay
|
# Recipe:: nbxplorer
|
||||||
#
|
#
|
||||||
|
|
||||||
build_essential
|
build_essential
|
||||||
|
|
||||||
include_recipe "git"
|
include_recipe "git"
|
||||||
|
|
||||||
git node['btcpay']['source_dir'] do
|
git node['nbxplorer']['source_dir'] do
|
||||||
repository node['btcpay']['repo']
|
repository node['nbxplorer']['repo']
|
||||||
revision node['btcpay']['revision']
|
revision node['nbxplorer']['revision']
|
||||||
action :sync
|
action :sync
|
||||||
notifies :run, 'bash[build_btcpay]', :immediately
|
notifies :run, 'bash[build_nbxplorer]', :immediately
|
||||||
end
|
end
|
||||||
|
|
||||||
bash 'build_btcpay' do
|
bash 'build_nbxplorer' do
|
||||||
cwd node['btcpay']['source_dir']
|
cwd node['nbxplorer']['source_dir']
|
||||||
code './build.sh'
|
code './build.sh'
|
||||||
action :nothing
|
action :nothing
|
||||||
end
|
end
|
||||||
|
|
||||||
bitcoin_credentials = Chef::EncryptedDataBagItem.load('credentials', 'bitcoin')
|
bitcoin_credentials = Chef::EncryptedDataBagItem.load('credentials', 'bitcoin')
|
||||||
|
|
||||||
|
directory "/home/#{node['bitcoin']['username']}/.nbxplorer" do
|
||||||
|
owner node['bitcoin']['username']
|
||||||
|
group node['bitcoin']['usergroup']
|
||||||
|
mode '0750'
|
||||||
|
recursive true
|
||||||
|
end
|
||||||
|
|
||||||
directory File.dirname(node['nbxplorer']['config_path']) do
|
directory File.dirname(node['nbxplorer']['config_path']) do
|
||||||
owner node['bitcoin']['username']
|
owner node['bitcoin']['username']
|
||||||
group node['bitcoin']['usergroup']
|
group node['bitcoin']['usergroup']
|
||||||
@ -59,7 +66,7 @@ systemd_unit 'nbxplorer.service' do
|
|||||||
Group: node['bitcoin']['usergroup'],
|
Group: node['bitcoin']['usergroup'],
|
||||||
Type: 'simple',
|
Type: 'simple',
|
||||||
ExecStart: "/usr/bin/dotnet '#{node['nbxplorer']['source_dir']}/NBXplorer/bin/Release/netcoreapp3.1/NBXplorer.dll' -c #{node['nbxplorer']['config_path']} --noauth",
|
ExecStart: "/usr/bin/dotnet '#{node['nbxplorer']['source_dir']}/NBXplorer/bin/Release/netcoreapp3.1/NBXplorer.dll' -c #{node['nbxplorer']['config_path']} --noauth",
|
||||||
PIDFile: "/run/nbxplorer/nbxplorer.pid",
|
PIDFile: '/run/nbxplorer/nbxplorer.pid',
|
||||||
Restart: 'on-failure',
|
Restart: 'on-failure',
|
||||||
PrivateTmp: true,
|
PrivateTmp: true,
|
||||||
ProtectSystem: 'full',
|
ProtectSystem: 'full',
|
||||||
|
@ -27,6 +27,7 @@ end
|
|||||||
build_essential
|
build_essential
|
||||||
include_recipe 'ark'
|
include_recipe 'ark'
|
||||||
|
|
||||||
|
|
||||||
%w{ libtool autotools-dev make automake cmake curl g++-multilib libtool
|
%w{ libtool autotools-dev make automake cmake curl g++-multilib libtool
|
||||||
binutils-gold bsdmainutils pkg-config python3 patch }.each do |pkg|
|
binutils-gold bsdmainutils pkg-config python3 patch }.each do |pkg|
|
||||||
apt_package pkg
|
apt_package pkg
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
network=<%= @bitcoin_network %>
|
||||||
|
port=<%= @btcpay_port %>
|
||||||
|
bind=127.0.0.1
|
||||||
|
chains=btc
|
||||||
|
BTC.explorer.url=<%= @nbxplorer_url %>
|
||||||
|
postgres=User ID=<%= @postgres_user %>;Password=<%= @postgres_password %>;Host=<%= @postgres_host %>;Port=<%= @postgres_port %>;Database=<%= @postgres_database %>;
|
||||||
|
debuglog=<%= @btcpay_log_path %>
|
||||||
|
<%# TODO BTC.lightning=type=clightning;server=/mnt/data/lightningd/lightning-rpc %>
|
Loading…
x
Reference in New Issue
Block a user