mirror of
https://github.com/chatmail/relay.git
synced 2026-05-10 16:04:37 +00:00
63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
import importlib.resources
|
|
|
|
from pyinfra.operations import apt, files, systemd, server
|
|
|
|
|
|
def deploy_acmetool(nginx_hook=False, email="", domains=[]):
|
|
"""Deploy acmetool."""
|
|
apt.packages(
|
|
name="Install acmetool",
|
|
packages=["acmetool"],
|
|
)
|
|
|
|
files.put(
|
|
src=importlib.resources.files(__package__).joinpath("acmetool.cron").open("rb"),
|
|
dest="/etc/cron.d/acmetool",
|
|
user="root",
|
|
group="root",
|
|
mode="644",
|
|
)
|
|
|
|
if nginx_hook:
|
|
files.put(
|
|
src=importlib.resources.files(__package__)
|
|
.joinpath("acmetool.hook")
|
|
.open("rb"),
|
|
dest="/usr/lib/acme/hooks/nginx",
|
|
user="root",
|
|
group="root",
|
|
mode="744",
|
|
)
|
|
|
|
files.template(
|
|
src=importlib.resources.files(__package__).joinpath("response-file.yaml.j2"),
|
|
dest="/var/lib/acme/conf/responses",
|
|
user="root",
|
|
group="root",
|
|
mode="644",
|
|
email=email,
|
|
)
|
|
|
|
service_file = files.put(
|
|
src=importlib.resources.files(__package__)
|
|
.joinpath("acmetool-redirector.service")
|
|
.open("rb"),
|
|
dest="/etc/systemd/system/acmetool-redirector.service",
|
|
user="root",
|
|
group="root",
|
|
mode="644",
|
|
)
|
|
systemd.service(
|
|
name="Setup acmetool-redirector service",
|
|
service="acmetool-redirector.service",
|
|
running=False,
|
|
enabled=False,
|
|
restarted=service_file.changed,
|
|
)
|
|
|
|
for domain in domains:
|
|
server.shell(
|
|
name=f"Request certificate for {domain}",
|
|
commands=[f"acmetool want {domain}"],
|
|
)
|