Skip to content

Mist ΒΆ

mist is a CLI tool for use in Dockerfiles to install Steam apps, Steam Workshop items, and thunderstore.io mods. It uses GoCloud's URL concept to expose installing the content from the different sources using a similar command.

The following Dockerfile builds a container image for a modded Valheim server and provides an excellent example for how to use mist:

FROM debian:stable-slim
COPY --from=ghcr.io/frantjc/mist /mist /usr/local/bin
RUN apt-get update -y \
    && apt-get install -y --no-install-recommends \
        # So that mist can make a trusted TLS connection
        # to download `steamcmd`.
        ca-certificates \
        # `mist` installs `steamcmd`, but we still have to
        # satisfy `steamcmd`'s dependencies.
        lib32gcc-s1 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    # Install the Valheim server to /root/valheim.
    # "896660" refers to the Steam app ID of the Valheim server.
    && mist steamapp://896660 /root/valheim \
    # Install BepInEx to /root/valheim.
    && mist thunderstore://denikson/BepInExPack_Valheim /root/valheim \
    # Install EquipmentAndQuickSlots to /root/valheim/BepInEx/plugins.
    && mist thunderstore://RandyKnapp/EquipmentAndQuickSlots /root/valheim/BepInEx/plugins \
    # Cleanup.
    && mist --clean \
    && rm /usr/local/bin/mist \
    && apt-get remove -y \
        ca-certificates \
        lib32gcc-s1
WORKDIR /root/valheim/
ENTRYPOINT ["/root/valheim/start_server.sh"]