Skip to content

Installing in Docker

Tip

This guide shows how to install Bifröst in Docker/Container. If you like to use Bifröst directly on your Host, see its documentation here.

Before we start

Be sure Bifröst is supporting your Docker host, by checking the following matrix:

Cells express support in format of <generic>/<extended>. See our documentation of distributions of Bifröst to learn more.

Architecture linux darwin windows
i386 / / /
amd64 / / /
armv6 / / /
armv7 / / /
arm64 / / /
riscv64 / / /

In the majority of the cases you might run Linux or Windows on AMD64, which is supported.

Linux

Note

This guide assumes you have a Linux distribution with systemd running. This reflects the majority of all actual distributions, such as Ubuntu, Debian, Fedora, ...

  1. Ensure you have a working docker instance installed.

  2. Configure Bifröst. For example download the demo configuration and adjust it to your needs (see documentation of configuration for the documentation about it):

    1
    2
    3
    4
    sudo mkdir -p /etc/engity/bifroest/
    sudo curl -sSLf https://raw.githubusercontent.com/engity-com/bifroest/v1.0.0-beta1/contrib/configurations/simple-inside-docker.yaml -o /etc/engity/bifroest/configuration.yaml
    # Adjust it to your needs
    sudo vi /etc/engity/bifroest/configuration.yaml
    

  3. Enable Bifröst to always run on your system, by downloading our example service configuration:

    1
    2
    3
    sudo curl -sSLf https://raw.githubusercontent.com/engity-com/bifroest/v1.0.0-beta1/contrib/systemd/bifroest-in-docker.service -o /etc/systemd/system/bifroest.service
    # Adjust it to your needs
    sudo vi /etc/systemd/system/bifroest.service
    

    Note

    On a release-specific documentation page, set Environment=IMAGE=ghcr.io/engity-com/bifroest:1.0.0-beta1 in the service file to run that release. Its default :latest selects a moving stable release, not an alpha or beta release.

  4. Reload the systemd daemon:

    1
    sudo systemctl daemon-reload
    

  5. Enable and start Bifröst:

    1
    2
    sudo systemctl enable bifroest.service
    sudo systemctl start bifroest.service
    

  6. If you're using the original demo configuration, Bifröst will print a demo password to its log files while startup. You can receive it with the following command:

    1
    docker logs bifroest
    

  7. Now you can log in to Bifröst the first time:

    1
    ssh demo@localhost
    

Windows

  1. Ensure you have a working docker instance installed.

    Note

    This guide assumes you're running a Linux host of Docker on Docker for Windows (default).

    Bifröst also supports Windows Containers (Windows native). The image is based on Nano Server LTSC 2022, so Microsoft's host and container version compatibility rules apply. You also have to adjust the path below accordingly.

  2. Open a Powershell Terminal with Administrator privileges.

  3. Configure Bifröst. For example download the demo configuration and adjust it to your needs (see documentation of configuration for the documentation about it):

    1
    2
    3
    4
    mkdir -Force 'C:\ProgramData\Engity\Bifroest'
    curl -sSLf https://raw.githubusercontent.com/engity-com/bifroest/v1.0.0-beta1/contrib/configurations/simple-inside-docker-windows.yaml -o 'C:\ProgramData\Engity\Bifroest\configuration.yaml'
    # Adjust it to your needs
    notepad 'C:\ProgramData\Engity\Bifroest\configuration.yaml'
    

  4. Enable and start Bifröst:

    1
    docker run -d --restart unless-stopped --name bifroest -p 22:22 -v //var/run/docker.sock:/var/run/docker.sock -v C:\ProgramData\Engity\Bifroest:/etc/engity/bifroest -v C:\ProgramData\Engity\Bifroest:/var/lib/engity/bifroest ghcr.io/engity-com/bifroest:1.0.0-beta1 run --log.colorMode=always
    

  5. Now you can log in to Bifröst the first time:

    1
    ssh demo@localhost
    

What's next?