# # 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