standard-build/backup/generate-config.py

33 lines
1.2 KiB
Python
Raw Normal View History

2022-12-19 16:40:32 +00:00
import socket
import hashlib
import os
2022-12-19 17:44:03 +00:00
import getpass
2022-12-19 16:40:32 +00:00
server_hostname = input("Enter backup server subdomain: ").rstrip()
hostname = input("Enter subdomain: ").rstrip()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
ip_address = s.getsockname()[0]
s.close()
assert socket.gethostbyname(hostname + ".162536.xyz") == ip_address, "Hostname does not resolve to ip!"
2022-12-19 17:44:03 +00:00
secret_seed = getpass.getpass("Enter passphrase: ").rstrip()
2022-12-20 19:27:26 +00:00
assert getpass.getpass("Confirm passhphrase: ").rstrip() == secret_seed, "Passphrases do not match!"
2022-12-19 16:40:32 +00:00
salted_secret_seed = hostname + secret_seed
salted_hash_value = hashlib.sha512(salted_secret_seed.encode())
healthcheck_url = input("Enter healthcheck url: ").rstrip()
2022-12-19 18:21:07 +00:00
with open("/etc/backup.conf", "w") as f:
2022-12-19 16:40:32 +00:00
f.write(f"export BORG_REPO='ssh://{hostname}@{server_hostname}.162536.xyz:22/~/backup/docker'\n")
2022-12-19 17:47:36 +00:00
f.write(f"export BORG_PASSPHRASE='{salted_hash_value.hexdigest()}'\n")
f.write(f"export HEALTHCHECK_URL='{healthcheck_url}'\n")
2022-12-19 16:40:32 +00:00
os.system("ssh-keygen -t rsa -q -f \"$HOME/.ssh/id_rsa\" -N \"\"")
2022-12-20 19:27:26 +00:00
input(f"Waiting for user creation: press enter when user created - suggested password: {os.system('openssl rand -hex 20')}")
2022-12-19 16:40:32 +00:00
os.system(f"ssh-copy-id {hostname}@{server_hostname}.162536.xyz")