--- title: gokrazy quickstart aliases: - /quickstart.html menu: main: title: "Quickstart" weight: 20 ---

# Get a Raspberry Pi 3 (no other model)

Currently, the Raspberry Pi 3 is the only model supported. Many people assume the Raspberry Pi Zero W could be used as well. Unfortunately, it uses the older BCM2835 SoC, which is not arm64, so gokrazy won’t run on it. See also stapelberg’s reddit comment about supported hardware.

# Install Go

If you don’t already have Go installed, install the latest Go version.

# Install the gokrazy packer

    INSTANCE=gokrazy/hello; mkdir -p ~/${INSTANCE?} && cd ~/${INSTANCE?} && echo module ${INSTANCE?} > go.mod
    go get -u github.com/gokrazy/tools/cmd/gokr-packer

# Overwrite an SD card with gokrazy

Plug an SD card into your card reader and locate its device node by checking `dmesg | tail`. In this example, we’ll assume the SD card is accessible as `/dev/sdb`.

To overwrite the entire SD card `/dev/sdb` with a gokrazy installation running a hello world program, use:

    cd ~/gokrazy/hello
    gokr-packer -overwrite=/dev/sdb github.com/gokrazy/hello github.com/gokrazy/serial-busybox

The `gokr-packer` command above will result in log output like this:

    2017/03/01 20:59:55 packer.go:85: installing [github.com/gokrazy/hello]
    2017/03/01 20:59:56 packer.go:131: partitioning /dev/sdb
    2017/03/01 20:59:56 parttable.go:40: device holds 15931539456 bytes
    2017/03/01 20:59:56 packer.go:139: waiting for /dev/sdb1 to appear
    If your applications need to store persistent data, create a file system using e.g.:

    	mkfs.ext4 /dev/sdb4

    To boot gokrazy, plug the SD card into a Raspberry Pi 3 (no other model supported)

    To interact with the device, gokrazy provides a web interface reachable at:

    	http://gokrazy:<automatically-generated-random-password>@gokrazy/

    There will be not be any other output (no HDMI, no serial console, etc.)

After booting from this SD card, your Raspberry Pi 3 will:

- obtain an IP address for hostname “gokrazy” via DHCP (IPv4) and SLAAC (IPv6)
- synchronize the clock using NTP
- expose a password-authenticated web interface on private IP addresses
  (the default password can be recovered from `~/.config/gokrazy/http-password.txt`)
- supervise all installed programs (only the hello world program in this example)

The only way for you to interact with the device is via the web interface (unless the installed programs provide other ways). There will be no HDMI output, no serial console, etc.