WARNING: these instructions work best on a unix based system
Buoy uses YAML as the configuration langauge.
You can use --config
to specify a configuration file. If you do not specify a location, it will look for /etc/buoy/buoy.yaml
All the configuration options can be specified with flags. You still need to point to a configuration file even if you specify with only flags.
We provide an example configuration called buoy.example.yaml
By default, it logs to /var/log/buoy.log
. It uses structured logging so it may be a bit unreadable.
To have nicer CLI output, use the --log-cli
or -l
flags
Both of these logging solutions are thread safe so you will drop any logs
To build, run
earthly +build
This will create a binary called buoy
Run with sudo permissions. It needs to create and manage network interfaces to run.
sudo ./buoy
run with printing
sudo ./buoy --log-cli
run with specified config
sudo ./buoy --config="buoy.yaml"
We run all our tests inside earthly. This creates reproducible tests which are system agnostic.
To run all tests, run
earthly --allow-privileged +test
We need privileged container because some tests require it. Like the test TestTunNew
requires a privileged container.
Buoy has a cool sea theme so we are gonna stick to it.
NOTE: This will be in the format of <what we call it> - <term name>
- fleet - network
- sonar - distrubted peer discovery protocol
- shanty - cmd
You can read all about contributing to this project in CONTRIBUTING.md
You can read about it in ARCHITECTURE.md