Connecting to WiFi networks

Since March 2022, gokrazy supports both encrypted and unencrypted WiFi networks! 🎉

Step 1. Install the wifi package

To make gokrazy connect to a WiFi network, first add the github.com/gokrazy/wifi package to your gokrazy instance:

gok add github.com/gokrazy/wifi

Step 2. Configure the wifi package

Open your gokrazy instance’s config.json in your editor:

gok edit

Then, configure the wifi program by creating the file wifi.json as extra file.

{
    "Hostname": "wifi",
    "Packages": [
        "github.com/gokrazy/fbstatus",
        "github.com/gokrazy/hello",
        "github.com/gokrazy/serial-busybox",
        "github.com/gokrazy/breakglass",
        "github.com/gokrazy/wifi"
    ],
    "PackageConfig": {
        "github.com/gokrazy/wifi": {
            "ExtraFilePaths": {
                "/etc/wifi.json": "wifi.json"
            }
        }
    }
}

In the same directory, create wifi.json like so for an encrypted WiFi network:

{
    "ssid": "Secure WiFi",
    "psk": "secret"
}

If you need to connect to an unencrypted WiFi network, specify no psk, and use TLS:

{
    "ssid": "My unencrypted WiFi"
}

Alternatively, you can also create the wifi.json manually on the permanent data partition with path /perm/wifi.json.

After starting gokrazy, the wifi program will connect to the configured WiFi network:

For debugging: known-working WiFi router setup

In case you have trouble getting your Raspberry Pi to connect to your network, this is how I set up my TP-LINK TL-WDR4300 with OpenWrt 19.07:

The MAC address filter isn’t a security measure, but prevents others from accidentally joining this open network.