# Podman Template - [Podman Template](#podman-template) - [Install minecraft](#install-minecraft) - [Create the minecraft user](#create-the-minecraft-user) - [Convert Compose to Quadlet](#convert-compose-to-quadlet) - [Install Quadlets](#install-quadlets) - [Upgrade Quadlets](#upgrade-quadlets) - [Expose minecraft](#expose-minecraft) - [Backup minecraft](#backup-minecraft) ## Install minecraft Find and replace minecraft with the name of the service. ### Create the minecraft user ```bash useradd minecraft su - minecraft ssh-keygen exit cp ~/.ssh/authorized_keys /home/minecraft/.ssh/authorized_keys chown minecraft:minecraft /home/minecraft/.ssh/authorized_keys loginctl enable-linger $(id -u minecraft) ``` SSH into the server as minecraft ```bash systemctl --user enable podman-restart systemctl --user enable --now podman.socket mkdir -p ~/.config/containers/systemd ``` ### Convert Compose to Quadlet Create a folder called `quadlets` in your podman_minecraft project. ```bash # Generate the systemd service podman run \ --security-opt label=disable \ --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 ```bash 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 ```bash scp -r quadlets/. minecraft:~/.config/containers/systemd/ ssh minecraft systemctl --user daemon-reload ssh minecraft systemctl --user restart minecraft ``` ## Expose minecraft 1. Create your minecraft ddns record first [following these docs](/active/podman_ddns/ddns.md#) 2. Create a SRV record in your DNS provider like the following: | Field | Value | | ----------- | -------------------------------------- | | Record name | _minecraft._tcp.testcraft.reeseapps.com | | Value | 0 5 25566 minecraft.reeseapps.com | 3. Test your record with `nslookup` ```bash nslookup -q=srv _minecraft._tcp.testcraft.reeseapps.com ``` 4. Access your server at your domain "testcraft.reeseapps.com" ## Backup minecraft Follow the Borg [Create a Backup Service Docs](/active/systemd_borg/borg.md#create-a-backup-service)