Initial commit
This commit is contained in:
80
recipes/default.rb
Normal file
80
recipes/default.rb
Normal file
@@ -0,0 +1,80 @@
|
||||
include_recipe 'deno'
|
||||
|
||||
user node['blossom']['user'] do
|
||||
home "/home/#{node['blossom']['user']}"
|
||||
manage_home true
|
||||
system true
|
||||
end
|
||||
|
||||
group node['blossom']['group'] do
|
||||
members [node['blossom']['user']]
|
||||
system true
|
||||
end
|
||||
|
||||
directory node['blossom']['install_dir'] do
|
||||
owner node['blossom']['user']
|
||||
group node['blossom']['group']
|
||||
mode '0755'
|
||||
end
|
||||
|
||||
git node['blossom']['install_dir'] do
|
||||
repository node['blossom']['repo_url']
|
||||
revision node['blossom']['revision']
|
||||
action :sync
|
||||
user node['blossom']['user']
|
||||
group node['blossom']['group']
|
||||
notifies :restart, 'service[blossom]', :delayed
|
||||
end
|
||||
|
||||
directory "/home/#{node['blossom']['user']}/data" do
|
||||
owner node['blossom']['user']
|
||||
group node['blossom']['group']
|
||||
mode '0750'
|
||||
recursive true
|
||||
end
|
||||
|
||||
template "#{node['blossom']['install_dir']}/config.yml" do
|
||||
source 'config.yml.erb'
|
||||
owner node['blossom']['user']
|
||||
group node['blossom']['group']
|
||||
mode '0640'
|
||||
variables(
|
||||
port: node['blossom']['port'],
|
||||
host: node['blossom']['host'],
|
||||
domain: node['blossom']['domain'],
|
||||
user: node['blossom']['user'],
|
||||
storage_backend: node['blossom']['storage']['backend'],
|
||||
storage_local_dir: node['blossom']['storage']['local']['dir'],
|
||||
storage_s3: node['blossom']['storage']['s3'],
|
||||
allowed_pubkeys: node['blossom']['allowed_pubkeys']
|
||||
)
|
||||
notifies :restart, 'service[blossom]', :delayed
|
||||
end
|
||||
|
||||
systemd_unit 'blossom.service' do
|
||||
content({
|
||||
Unit: {
|
||||
Description: 'Blossom Server',
|
||||
After: 'network.target'
|
||||
},
|
||||
Service: {
|
||||
Type: 'simple',
|
||||
User: node['blossom']['user'],
|
||||
Group: node['blossom']['group'],
|
||||
WorkingDirectory: node['blossom']['install_dir'],
|
||||
ExecStart: '/usr/local/bin/deno task start config.yml',
|
||||
Restart: 'on-failure',
|
||||
Environment: [
|
||||
"DENO_DIR=/home/#{node['blossom']['user']}/.cache/deno"
|
||||
]
|
||||
},
|
||||
Install: {
|
||||
WantedBy: 'multi-user.target'
|
||||
}
|
||||
})
|
||||
action [:create]
|
||||
end
|
||||
|
||||
service "blossom" do
|
||||
action [:enable, :start]
|
||||
end
|
||||
Reference in New Issue
Block a user