Before 2023, the concept of gokrazy instance configuration was only a
convention. Each gokrazy build was created using the gokr-packer
CLI tool, and
configured by the packer’s command-line flags, parameters, config files in
~/.config
and per-package config files in the current directory
(e.g. flags/github.com/gokrazy/breakglass/flags.txt
).
In 2023, the concept of gokrazy instance configuration was introduced (see issue #147).
Now, each gokrazy instance, which typically corresponds to one Raspberry Pi or
other machine, has its own directory within the gokrazy parent directory
(~/gokrazy
by default), e.g. ~/gokrazy/scanner
.
The new gok
CLI tool works in the instance directory
(e.g. ~/gokrazy/scanner
) and reads the single config.json
file, which
contains all settings.
If you’re using the old mechanism (gokr-packer
commands), here is how to
migrate to the new gok
CLI. Assuming you use a command like the following:
gokr-packer \
-hostname=scanner \
-update=yes \
github.com/gokrazy/hello \
github.com/gokrazy/breakglass \
github.com/gokrazy/serial-busybox \
github.com/stapelberg/scan2drive/cmd/scan2drive
Run your gokr-packer
command manually once, but add the
-write_instance_config
flag:
gokr-packer \
-write_instance_config=scanner \
-hostname=scanner \
-update=yes \
github.com/gokrazy/hello \
github.com/gokrazy/breakglass \
github.com/gokrazy/serial-busybox \
github.com/stapelberg/scan2drive/cmd/scan2drive
This will make gokr-packer
create ~/gokrazy/scanner
.
From now on, switch to using the gok
CLI for updating your instance:
gok -i scanner update
To open your instance’s configuration in your editor, use gok -i scanner edit
.