Install/configure LndHub
This commit is contained in:
		
							parent
							
								
									4b9183d78d
								
							
						
					
					
						commit
						0481e42aa4
					
				@ -57,6 +57,10 @@ node.default['rtl']['revision'] = 'v0.11.0'
 | 
			
		||||
node.default['rtl']['host'] = '10.1.1.163'
 | 
			
		||||
node.default['rtl']['port'] = '3000'
 | 
			
		||||
 | 
			
		||||
node.default['lndhub']['repo'] = 'https://github.com/BlueWallet/LndHub.git'
 | 
			
		||||
node.default['lndhub']['revision'] = 'master'
 | 
			
		||||
node.default['lndhub']['port'] = '3023'
 | 
			
		||||
 | 
			
		||||
node.default['dotnet']['ms_packages_src_url'] = "https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb"
 | 
			
		||||
node.default['dotnet']['ms_packages_src_checksum'] = "4df5811c41fdded83eb9e2da9336a8dfa5594a79dc8a80133bd815f4f85b9991"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -27,3 +27,4 @@ depends 'kosmos-nodejs'
 | 
			
		||||
depends 'firewall'
 | 
			
		||||
depends 'application_javascript'
 | 
			
		||||
depends 'tor-full'
 | 
			
		||||
depends 'redisio'
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										95
									
								
								site-cookbooks/kosmos-bitcoin/recipes/lndhub.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								site-cookbooks/kosmos-bitcoin/recipes/lndhub.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,95 @@
 | 
			
		||||
#
 | 
			
		||||
# Cookbook:: kosmos-bitcoin
 | 
			
		||||
# Recipe:: lndhub
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
include_recipe 'redisio::default'
 | 
			
		||||
include_recipe 'redisio::enable'
 | 
			
		||||
 | 
			
		||||
app_name      = "lndhub"
 | 
			
		||||
app_dir       = "/opt/#{app_name}"
 | 
			
		||||
lnd_dir       = node['lnd']['lnd_dir']
 | 
			
		||||
bitcoin_user  = node['bitcoin']['username']
 | 
			
		||||
bitcoin_group = node['bitcoin']['usergroup']
 | 
			
		||||
bitcoin_credentials = Chef::EncryptedDataBagItem.load('credentials', 'bitcoin')
 | 
			
		||||
 | 
			
		||||
application app_dir do
 | 
			
		||||
  owner bitcoin_user
 | 
			
		||||
  group bitcoin_group
 | 
			
		||||
 | 
			
		||||
  git do
 | 
			
		||||
    user  bitcoin_user
 | 
			
		||||
    group bitcoin_group
 | 
			
		||||
    repository node['lndhub']['repo']
 | 
			
		||||
    revision node['lndhub']['revision']
 | 
			
		||||
    notifies :restart, "systemd_unit[lndhub.service]", :delayed
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  npm_install do
 | 
			
		||||
    user bitcoin_user
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  link "#{app_dir}/admin.macaroon" do
 | 
			
		||||
    to "#{lnd_dir}/data/chain/bitcoin/mainnet/admin.macaroon"
 | 
			
		||||
    owner bitcoin_user
 | 
			
		||||
    group bitcoin_group
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  link "#{app_dir}/tls.cert"  do
 | 
			
		||||
    to "#{lnd_dir}/tls.cert"
 | 
			
		||||
    owner bitcoin_user
 | 
			
		||||
    group bitcoin_group
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  template "#{app_dir}/config.js" do
 | 
			
		||||
    source "lndhub.config.js.erb"
 | 
			
		||||
    owner bitcoin_user
 | 
			
		||||
    group bitcoin_group
 | 
			
		||||
    mode '0600'
 | 
			
		||||
    variables bitcoin_rpc_host: node['bitcoin']['conf']['rpcbind'],
 | 
			
		||||
              bitcoin_rpc_user: node['bitcoin']['conf']['rpcuser'],
 | 
			
		||||
              bitcoin_rpc_pass: bitcoin_credentials["rpcpassword"],
 | 
			
		||||
              lnd_rpc_host: '127.0.0.1:10009'
 | 
			
		||||
    notifies :restart, "systemd_unit[lndhub.service]", :delayed
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  systemd_unit 'lndhub.service' do
 | 
			
		||||
    content({
 | 
			
		||||
      Unit: {
 | 
			
		||||
        Description: 'LND Hub',
 | 
			
		||||
        Documentation: ['https://github.com/BlueWallet/LndHub'],
 | 
			
		||||
        Requires: 'lnd.service',
 | 
			
		||||
        After: 'lnd.service'
 | 
			
		||||
      },
 | 
			
		||||
      Service: {
 | 
			
		||||
        User: bitcoin_user,
 | 
			
		||||
        Group: bitcoin_group,
 | 
			
		||||
        Type: 'simple',
 | 
			
		||||
        Environment: "PORT=#{node['lndhub']['port']}",
 | 
			
		||||
        WorkingDirectory: app_dir,
 | 
			
		||||
        ExecStart: "/usr/bin/npm start",
 | 
			
		||||
        Restart: 'always',
 | 
			
		||||
        RestartSec: '30',
 | 
			
		||||
        TimeoutSec: '120',
 | 
			
		||||
        PrivateTmp: true,
 | 
			
		||||
        ProtectSystem: 'full',
 | 
			
		||||
        NoNewPrivileges: true,
 | 
			
		||||
        PrivateDevices: true,
 | 
			
		||||
      },
 | 
			
		||||
      Install: {
 | 
			
		||||
        WantedBy: 'multi-user.target'
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
    verify false
 | 
			
		||||
    triggers_reload true
 | 
			
		||||
    action [:create, :enable, :start]
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
include_recipe 'firewall'
 | 
			
		||||
firewall_rule 'lndhub_private' do
 | 
			
		||||
  port     node['lndhub']['port'].to_i
 | 
			
		||||
  source   "10.1.1.0/24"
 | 
			
		||||
  protocol :tcp
 | 
			
		||||
  command  :allow
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										21
									
								
								site-cookbooks/kosmos-bitcoin/templates/lndhub.config.js.erb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								site-cookbooks/kosmos-bitcoin/templates/lndhub.config.js.erb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
let config = {
 | 
			
		||||
  enableUpdateDescribeGraph: false,
 | 
			
		||||
  postRateLimit: 100,
 | 
			
		||||
  rateLimit: 200,
 | 
			
		||||
  forwardReserveFee: 0.01, // default 0.01
 | 
			
		||||
  intraHubFee: 0.003, // default 0.003
 | 
			
		||||
  bitcoind: {
 | 
			
		||||
    rpc: 'http://<%= @bitcoin_rpc_user %>:<%= @bitcoin_rpc_pass %>@<%= @bitcoin_rpc_host %>/wallet/wallet.dat',
 | 
			
		||||
  },
 | 
			
		||||
  redis: {
 | 
			
		||||
    port: 6379,
 | 
			
		||||
    host: '127.0.0.1',
 | 
			
		||||
    family: 4,
 | 
			
		||||
    db: 0,
 | 
			
		||||
  },
 | 
			
		||||
  lnd: {
 | 
			
		||||
    url: '<%= @lnd_rpc_host %>'
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports = config;
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user