diff --git a/site-cookbooks/kosmos-ipfs/metadata.rb b/site-cookbooks/kosmos-ipfs/metadata.rb index cb4c434..65947e0 100644 --- a/site-cookbooks/kosmos-ipfs/metadata.rb +++ b/site-cookbooks/kosmos-ipfs/metadata.rb @@ -12,4 +12,3 @@ depends 'kosmos-base' depends 'kosmos-nginx' depends 'kosmos-nodejs' depends 'firewall' -depends 'application_javascript' diff --git a/site-cookbooks/kosmos-ipfs/recipes/kredits_pinner.rb b/site-cookbooks/kosmos-ipfs/recipes/kredits_pinner.rb index 492b81d..d1b1f76 100644 --- a/site-cookbooks/kosmos-ipfs/recipes/kredits_pinner.rb +++ b/site-cookbooks/kosmos-ipfs/recipes/kredits_pinner.rb @@ -13,50 +13,51 @@ deploy_group = "ipfs" group deploy_group -path_to_deploy = "/opt/#{app_name}" +app_path = "/opt/#{app_name}" rsk_node_ip = search(:node, "role:rskj_testnet").first["knife_zero"]["host"] rsk_rpc_url = "http://#{rsk_node_ip}:4444" -application path_to_deploy do - owner deploy_user +git app_path do + user deploy_user group deploy_group - - git do - user deploy_user - group deploy_group - repository "https://gitea.kosmos.org/kredits/#{app_name}.git" - revision node['kosmos-ipfs']['kredits-pinner']['revision'] - end - - npm_install do - user deploy_user - end - - execute "systemctl daemon-reload" do - command "systemctl daemon-reload" - action :nothing - end - - template "/lib/systemd/system/#{app_name}.service" do - source 'nodejs.systemd.service.erb' - owner 'root' - group 'root' - mode '0640' - variables( - user: deploy_user, - group: deploy_group, - app_dir: path_to_deploy, - entry: "/usr/bin/node /usr/bin/npm start -- --watch --rpc-url #{rsk_rpc_url}", - environment: { - 'DEBUG' => 'ipfs-pinner' - } - ) - notifies :run, "execute[systemctl daemon-reload]", :delayed - notifies :restart, "service[#{app_name}]", :delayed - end - - service app_name do - action [:enable, :start] - end + repository "https://gitea.kosmos.org/kredits/#{app_name}.git" + revision node['kosmos-ipfs']['kredits-pinner']['revision'] + notifies :restart, "systemd_unit[#{app_name}.service]", :delayed +end + +execute "npm install" do + cwd app_path + environment "HOME" => app_path + user deploy_user +end + +service_env = { + 'DEBUG' => 'ipfs-pinner' +} + +systemd_unit "#{app_name}.service" do + content({ + Unit: { + Description: app_name, + After: "ipfs.service" + }, + + Service: { + ExecStartPre: '/bin/sleep 5', + ExecStart: "/usr/bin/npm start -- --watch --rpc-url #{rsk_rpc_url}", + WorkingDirectory: app_path, + User: deploy_user, + Group: deploy_group, + Environment: service_env.map { |k, v| "'#{k}=#{v}'" }, + Restart: 'always' + }, + + Install: { + WantedBy: 'multi-user.target' + } + }) + verify false + triggers_reload true + action [:create, :enable, :start] end