This repository has been archived on 2025-02-14. You can view files and clone it, but cannot push or open issues or pull requests.
esh/esh_letsencrypt/recipes/serve.rb
2025-02-15 01:05:58 +09:00

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