# HG changeset patch # User drewp@bigasterisk.com # Date 1713173332 25200 # Node ID a46eb2a77df7745c05659c08d7bf0c662510f482 # Parent 0befc8696a07630abc650967cc357019c12ad1a6 minecraft forwarding diff -r 0befc8696a07 -r a46eb2a77df7 system.py --- a/system.py Mon Apr 15 02:28:05 2024 -0700 +++ b/system.py Mon Apr 15 02:28:52 2024 -0700 @@ -45,9 +45,15 @@ def web_forward(): for port in [80, 443]: - files.template(src="templates/webforward.service.j2", dest=f"/etc/systemd/system/web_forward_{port}.service", pom_serv_host='bang', port=port) + files.template(src="templates/webforward.service.j2", dest=f"/etc/systemd/system/web_forward_{port}.service", serv_host='bang', port=port, name='web', fam='tcp') systemd.service(service=f'web_forward_{port}', enabled=True, restarted=True) +def minecraft_forward(): + port = 25765 + for fam in ['tcp', 'udp']: + files.template(src="templates/webforward.service.j2", dest=f"/etc/systemd/system/mc_smp_{fam}_forward_{port}.service", serv_host='ditto', port=port, name='mc_smp', fam=fam) + systemd.service(service=f'mc_smp_{fam}_forward_{port}', enabled=True, restarted=True) + server.hostname(hostname=host.name) timezone() fstab() @@ -70,6 +76,7 @@ if host.name == 'prime': smaller_journals() web_forward() + minecraft_forward() # for space, consider: # k3s crictl rmi --prune diff -r 0befc8696a07 -r a46eb2a77df7 templates/webforward.service.j2 --- a/templates/webforward.service.j2 Mon Apr 15 02:28:05 2024 -0700 +++ b/templates/webforward.service.j2 Mon Apr 15 02:28:52 2024 -0700 @@ -1,7 +1,7 @@ # written by pyinfra [Unit] -Description=web forward for port {{ port }} +Description={{ fam }} forward for port {{ port }} Requires=network.target Wants=nss-lookup.target Before=nss-lookup.target @@ -10,7 +10,7 @@ [Service] Type=simple -ExecStart=/usr/bin/socat tcp-listen:{{ port }},fork,reuseaddr tcp:{{pom_serv_host}}:{{ port }} +ExecStart=/usr/bin/socat {{ 'tcp' if fam=='tcp' else 'udp4' }}-listen:{{ port }},fork,reuseaddr {{ 'tcp' if fam=='tcp' else 'udp' }}:{{serv_host}}:{{ port }} [Install] WantedBy=multi-user.target