Reading docs as part of oncall responsibilities and was reminded of [this discussion](https://fleetdm.slack.com/archives/C019WG4GH0A/p1771252998086309) in Slack by Martin which referenced a recent JS module change that broke `make generate` until developers ran `rm -rf node_modules`, so I added a callout in the FAQ for it since I think this has happened a few times in the past year
5.7 KiB
Contribution FAQ
- Make errors
- How do I connect to the MailHog simulated mail server?
- Adding hosts for testing
- Why am I getting an error about self-signed certificates when running
fleetctl preview? - Will updating fleetctl lead to loss of data in fleetctl preview?
Enrolling in multiple Fleet servers
Enrolling your device with more than one Fleet server is not currently possible. Multiple install roots are useful for the development of Fleet itself but complex to maintain. While this has some value for Fleet contributors, there is currently no active effort to add and maintain support for multiple enrollments from the same device.
Make errors
dep: command not found
/bin/bash: dep: command not found
make: *** [.deps] Error 127
If you get the above error, you need to add $GOPATH/bin to your PATH. A quick fix is to run export PATH=$GOPATH/bin:$PATH.
See the Go language documentation for workspaces and GOPATH for more in-depth documentation.
undefined: Asset
server/fleet/emails.go:90:23: undefined: Asset
make: *** [fleet] Error 2
If you get an undefined: Asset error, it is likely because you did not run make generate before make build. See Building Fleet for additional documentation on compiling the fleet binary.
Module build failed or Cannot find module when running make generate
./frontend/index.jsx 39 bytes [built] [code generated] [1 error]
ERROR in ./frontend/index.jsx
Module build failed (from ./node_modules/babel-loader/lib/index.js):
Error: [BABEL]: Cannot find module 'to-fast-properties'
When make generate fails with errors related to modules, it is often due to JS/TS dependencies having changed and can be fixed by running:
rm -rf node_modules
make deps
and then running the failed make generate or make generate-dev again.
Adding hosts for testing
The osquery directory contains a docker-compose.yml and additional configuration files to start containerized osquery agents.
To start osquery, first retrieve the "Enroll secret" from Fleet (by clicking the "Add New Host") button in the Fleet dashboard, or with fleetctl get enroll-secret).
cd tools/osquery
ENROLL_SECRET=<copy from fleet> docker-compose up
Why am I getting an error about self-signed certificates when running fleetctl preview?
If you are trying to run fleetctl preview and seeing errors about self-signed certificates, the
most likely culprit is that you're behind a corporate proxy server and need to add the proxy
settings to Docker so that the container created by
fleetctl preview is able to connect properly.
Will updating fleetctl lead to loss of data in fleetctl preview?
No, you won't experience data loss when you update fleetctl. Note that you can run fleetctl preview --tag v#.#.# if you want to run Preview on a previous version. Just replace # with the version numbers of interest.
Can I disable usage statistics via the config file or a CLI flag?
Apart from an admin disabling usage statistics on the Fleet UI, you can edit your fleet.yml config file to disable usage statistics. Look for the server_settings in your fleet.yml and set enable_analytics: false. Do note there is no CLI flag option to disable usage statistics at this time.
Fleet preview fails with Invalid interpolation. What should I do?
If you tried running fleetctl preview and you get the following error:
fleetctl preview
Downloading dependencies into /root/.fleet/preview...
Pulling Docker dependencies...
Invalid interpolation format for "fleet01" option in service "services": "fleetdm/fleet:${FLEET_VERSION:-latest}"
Failed to run docker-compose
You're probably running an old version of Docker. Download the installer for your platform from the Docker Documentation.
What API endpoints do osquery and Fleetd need access to?
Based on the configuration, osquery running on hosts will need access to these API endpoints:
/api/v1/osquery/enroll/api/v1/osquery/config/api/v1/osquery/distributed/read/api/v1/osquery/distributed/write/api/v1/osquery/carve/begin/api/v1/osquery/carve/block/api/v1/osquery/log
If you also have Fleetd running on hosts, it will need access to these API endpoints:
/api/fleet/orbit/enroll/api/fleet/orbit/config/api/fleet/orbit/device_token/api/fleet/orbit/ping/api/fleet/orbit/scripts/request/api/fleet/orbit/scripts/result/api/fleet/orbit/disk_encryption_key/api/fleet/orbit/device_mapping/api/osquery/log
Hosts running Fleet Desktop will need access to these API endpoints:
/api/latest/fleet/device/.+/desktop/api/latest/fleet/device/.+/ping
For a full list of endpoints, open Fleet's routes file, then look for endpoint declarations prefixed with de., demdm., he., oe., oeAppleMDM., or oeWindowsMDM..