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.
pyinfra-uptime-kuma/deploy.py
2022-03-12 14:04:52 +09:00

109 lines
2.3 KiB
Python

from pyinfra import host
from pyinfra.operations import apt, server, files, systemd
SUDO = True
server.user(
name='Add user benpro',
user='benpro',
groups=['sudo'],
public_keys='ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFs7yO0auvwFL8HTLMUq6lET6DMYLhqhd32rqFfZUsjL openpgp:0xA32E99AD',
shell='/bin/bash',
present=True,
)
apt.update(
name='Update apt repositories',
)
apt.upgrade(
name='Upgrade apt packages',
)
# Disabled because need to deal with Oracle pre-set rules =_=
#apt.packages(
# name='Install ufw',
# packages=['ufw'],
# update=False,
#)
#
#files.line(
# name='Set port 28 for SSH',
# path='/etc/ssh/sshd_config',
# line=r'Port .*',
# replace='Port 28',
#)
#
#systemd.service(
# name='Reload sshd',
# service='ssh.service',
# reloaded=True,
#)
#
#server.shell(
# name='Add ufw rules',
# commands=['ufw limit 28'],
#)
#
#server.shell(
# name='Enable ufw',
# commands=['yes | ufw enable'],
#)
apt.packages(
name='Install skopeo',
packages=['skopeo'],
update=False,
)
files.download(
name='Download undocker',
src='https://git.sr.ht/~motiejus/undocker/refs/download/v1.0.2/undocker-linux-amd64-v1.0.2',
dest='/usr/local/bin/undocker',
user='root',
group='root',
mode='755',
cache_time=604800,
)
if not host.fact.file('/tmp/uptime-kuma.tar'):
server.shell(
name='Download uptime-kuma',
chdir='/tmp',
commands=['skopeo copy docker://docker.io/louislam/uptime-kuma:latest docker-archive:uptime-kuma.tar'],
)
files.directory(
name='Ensure /opt/uptime-kuma exists',
path='/opt/uptime-kuma',
user='root',
group='root',
mode=755
)
if not host.fact.directory('/opt/uptime-kuma/app'):
server.shell(
name='Undocker the app',
chdir='/opt/uptime-kuma',
commands=['undocker /tmp/uptime-kuma.tar - | tar -xv'],
)
files.put(
name='Update systemd service file',
src='files/uptime-kuma.service',
dest='/etc/systemd/system/uptime-kuma.service',
mode='644',
)
systemd.daemon_reload(
name='Reload systemd',
user_mode=False,
)
systemd.service(
name='Restart and enable uptime-kuma service',
service='uptime-kuma.service',
running=True,
restarted=True,
enabled=True,
)