54 lines
1.5 KiB
Ruby
54 lines
1.5 KiB
Ruby
#
|
|
# Cookbook:: esh_letsencrypt
|
|
# Recipe:: serve
|
|
#
|
|
# Copyright:: 2022, https://easyself.host
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
auth = node['esh']['letsencrypt']['serve']['auth']
|
|
miniserve_url = node['esh']['letsencrypt']['serve']['miniserve_url']
|
|
listen = node['esh']['letsencrypt']['serve']['listen']
|
|
|
|
remote_file '/usr/local/bin/miniserve' do
|
|
source miniserve_url
|
|
mode '0755'
|
|
action :create
|
|
end
|
|
|
|
systemd_unit 'letsencrypt-serve.service' do
|
|
content <<~EOU
|
|
[Unit]
|
|
Description=Serve letsencrypt certs
|
|
|
|
[Service]
|
|
Type=simple
|
|
ExecStart=/usr/local/bin/miniserve \
|
|
--auth #{auth} \
|
|
--interfaces #{listen} \
|
|
--port 8898 \
|
|
--verbose \
|
|
/etc/letsencrypt/live
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOU
|
|
action :create
|
|
verify false
|
|
end
|
|
|
|
service 'letsencrypt-serve' do
|
|
action [:enable, :start]
|
|
subscribes :restart, 'remote_file[/usr/local/bin/miniserve]', :delayed
|
|
subscribes :restart, 'systemd_unit[letsencrypt-serve.service]', :delayed
|
|
end
|