3.2 KiB
3.2 KiB
Podman Template
Install minecraft
Find and replace minecraft with the name of the service.
Create the minecraft user
# SSH into your podman server as root
useradd minecraft
loginctl enable-linger $(id -u minecraft)
systemctl --user --machine=minecraft@.host enable podman-restart
systemctl --user --machine=minecraft@.host enable --now podman.socket
mkdir -p /home/minecraft/.config/containers/systemd
Convert Compose to Quadlet
Create a folder called quadlets in your podman_minecraft project.
# Generate the systemd service
podman run \
--security-opt label=disable \
--userns keep-id \
--rm \
-v $(pwd)/active/podman_minecraft:/compose \
-v $(pwd)/active/podman_minecraft/quadlets:/quadlets \
quay.io/k9withabone/podlet \
-f /quadlets \
-i \
--overwrite \
compose /compose/compose.yaml
# Copy the files to the server
scp -r active/podman_minecraft/quadlets/. minecraft:~/.config/containers/systemd/
Install Quadlets
ssh minecraft
export GAME_SERVER_NAME=testcraft
mkdir $GAME_SERVER_NAME
# Download the server jar (only needed once)
podman run \
-it \
--rm \
-e SERVER_VERSION=1.21.8 \
-v $(pwd)/$GAME_SERVER_NAME:/downloads \
--security-opt label=disable \
--userns keep-id \
docker.io/ducoterra/get-minecraft:latest
systemctl --user daemon-reload
systemctl --user restart $GAME_SERVER_NAME
Upgrade Quadlets
scp -r quadlets/. minecraft:~/.config/containers/systemd/
ssh minecraft systemctl --user daemon-reload
ssh minecraft systemctl --user restart minecraft
Expose minecraft
-
Create your minecraft ddns record first following these docs
-
Create a SRV record in your DNS provider like the following:
active/podman_minecraft/secrets/reeseapps_records.json:
{ "Comment": "CREATE/UPSERT/DELETE a record ", "Changes": [ { "Action": "UPSERT", "ResourceRecordSet": { "Name": "_minecraft._tcp.testcraft.reeseapps.com", "Type": "SRV", "TTL": 300, "ResourceRecords": [ { "Value": "0 5 25566 minecraft.reeseapps.com" } ] } } ] }aws route53 change-resource-record-sets --hosted-zone-id $(cat active/aws_route53/secrets/reeseapps-zoneid) --change-batch file://active/podman_minecraft/secrets/reeseapps_records.json -
Test your record with
nslookupnslookup -q=srv _minecraft._tcp.testcraft.reeseapps.com -
Access your server at your domain "testcraft.reeseapps.com"
Backup minecraft
Follow the Borg Create a Backup Service Docs