Fix the ipfs config

The whole thing was inconsistent and didn't work when creating a server
from scratch
This commit is contained in:
Greg Karékinian 2018-08-06 12:14:20 +02:00
parent b2d92723d7
commit d0f2275ebb
3 changed files with 11 additions and 13 deletions

View File

@ -2,4 +2,4 @@ node.default['ipfs']['version'] = "0.4.9"
node.default['ipfs']['checksum'] = "ae50c760f58548adc7c6dade4cf549059b6bc73ebc25ff4ea9fece06a15ac0a6" node.default['ipfs']['checksum'] = "ae50c760f58548adc7c6dade4cf549059b6bc73ebc25ff4ea9fece06a15ac0a6"
# Do not contact local network addresses. This will stop platforms like Hetzner # Do not contact local network addresses. This will stop platforms like Hetzner
# to block your server (https://github.com/ipfs/go-ipfs/issues/1226) # to block your server (https://github.com/ipfs/go-ipfs/issues/1226)
node.default['ipfs']['config']['swarm']['addr_filter'] = '["/ip4/10.0.0.0/ipcidr/8","/ip4/100.64.0.0/ipcidr/10","/ip4/169.254.0.0/ipcidr/16","/ip4/172.16.0.0/ipcidr/12","/ip4/192.0.0.0/ipcidr/24","/ip4/192.0.0.0/ipcidr/29","/ip4/192.0.0.8/ipcidr/32","/ip4/192.0.0.170/ipcidr/32","/ip4/192.0.0.171/ipcidr/32","/ip4/192.0.2.0/ipcidr/24","/ip4/192.168.0.0/ipcidr/16","/ip4/198.18.0.0/ipcidr/15","/ip4/198.51.100.0/ipcidr/24","/ip4/203.0.113.0/ipcidr/24","/ip4/240.0.0.0/ipcidr/4"]' node.default['ipfs']['config']['swarm']['addr_filter'] = ["/ip4/10.0.0.0/ipcidr/8", "/ip4/100.64.0.0/ipcidr/10", "/ip4/169.254.0.0/ipcidr/16", "/ip4/172.16.0.0/ipcidr/12", "/ip4/192.0.0.0/ipcidr/24", "/ip4/192.0.0.0/ipcidr/29", "/ip4/192.0.0.8/ipcidr/32", "/ip4/192.0.0.170/ipcidr/32", "/ip4/192.0.0.171/ipcidr/32", "/ip4/192.0.2.0/ipcidr/24", "/ip4/192.168.0.0/ipcidr/16", "/ip4/198.18.0.0/ipcidr/15", "/ip4/198.51.100.0/ipcidr/24", "/ip4/203.0.113.0/ipcidr/24", "/ip4/240.0.0.0/ipcidr/4"]

View File

@ -1,25 +1,22 @@
require 'json'
require 'mixlib/shellout'
property :key, String, name_property: true property :key, String, name_property: true
property :value, [String, Hash, Array, TrueClass, FalseClass], required: true property :value, [String, Hash, Array, TrueClass, FalseClass], required: true
load_current_value do
# some Ruby
end
action :create do action :create do
include_recipe "ipfs" include_recipe "ipfs"
execute "ipfs config --json #{key} '#{value}'" do execute "ipfs config --json #{key} '#{JSON.generate(value)}'" do
environment "IPFS_PATH" => "/home/ipfs/.ipfs" environment "IPFS_PATH" => "/home/ipfs/.ipfs"
user "ipfs" user "ipfs"
not_if do not_if do
require 'json'
require 'mixlib/shellout'
cmd = Mixlib::ShellOut.new("ipfs", "config", key, cmd = Mixlib::ShellOut.new("ipfs", "config", key,
user: 'ipfs', user: 'ipfs',
env: { "IPFS_PATH" => "/home/ipfs/.ipfs" }) env: { "IPFS_PATH" => "/home/ipfs/.ipfs" })
cmd.run_command cmd.run_command
begin begin
JSON.parse(cmd.stdout) == JSON.parse(value) JSON.parse(cmd.stdout) == JSON.parse(JSON.generate(value))
rescue JSON::ParserError rescue JSON::ParserError
cmd.stdout.include?("#{value}") cmd.stdout.include?("#{value}")
end end

View File

@ -7,6 +7,7 @@
# All rights reserved - Do Not Redistribute # All rights reserved - Do Not Redistribute
# #
require 'json'
include_recipe "ipfs" include_recipe "ipfs"
# Configure ipfs # Configure ipfs
@ -18,18 +19,18 @@ end
# Set up the Gateway to be writable # Set up the Gateway to be writable
ipfs_config "Gateway.Writable" do ipfs_config "Gateway.Writable" do
value "true" value true
end end
# Set up CORS headers # Set up CORS headers
ipfs_config "API.HTTPHeaders.Access-Control-Allow-Credentials" do ipfs_config "API.HTTPHeaders.Access-Control-Allow-Credentials" do
value '["true"]' value ["true"]
end end
ipfs_config "API.HTTPHeaders.Access-Control-Allow-Methods" do ipfs_config "API.HTTPHeaders.Access-Control-Allow-Methods" do
value '["PUT","GET","POST"]' value ["PUT", "GET", "POST"]
end end
ipfs_config "API.HTTPHeaders.Access-Control-Allow-Origin" do ipfs_config "API.HTTPHeaders.Access-Control-Allow-Origin" do
value '["*"]' value ["*"]
end end
include_recipe "kosmos-ipfs::letsencrypt" include_recipe "kosmos-ipfs::letsencrypt"