mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-28 02:18:50 +00:00
Closes #4995 Closes #4925 Closes #4997 Closes #5047 Supersedes #4965 and #5004. NOT changing: - Page description for other Clients. That is still "Firezone Documentation" Need these Clients: - Windows GUI - Linux headless - Linux GUI to have these things documented: (with exact terms) - Prerequisites - Installation - Usage - Signing in - Accessing a Resource - Signing out - Quitting - Upgrading - Diagnostic logs - Uninstalling - Troubleshooting - DNS not reverted after exit - DNS Resource not accessible - Known issues ```[tasklist] ### Before merging - [x] Test Windows GUI instructions - [x] Add troubleshooting for #5027 - [x] Fill in troubleshooting sections - [x] Test Linux GUI instructions - [x] Linux headless - Make sure SIGTERM or Ctrl+C or whatever reverts resolv.conf - [x] Test Linux Headless instructions - [x] Page descriptions should be "How to install and use the Firezone $OS $UI client." - [x] ~~Linux headless - Confirm behaviors and default values of all env vars~~ (skipping - The ones that are used are exercised) - [x] Grep for TODOs - [x] Change "un-install" to "uninstall" - [x] Capitalize "Client" where needed - [x] Change "IPC service" to "Tunnel service" or something - [x] Change "SplitDNS" to "Split DNS" - [ ] Wait for next Client release to be cut ``` --------- Signed-off-by: Jamil <jamilbk@users.noreply.github.com> Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>
Rust development guide
Firezone uses Rust for all data plane components. This directory contains the Linux and Windows clients, and low-level networking implementations related to STUN/TURN.
We target the last stable release of Rust using rust-toolchain.toml.
If you are using rustup, that is automatically handled for you.
Otherwise, ensure you have the latest stable version of Rust installed.
Reading Client logs
The Client logs are written as JSONL for machine-readability.
To make them more human-friendly, pipe them through jq like this:
cd path/to/logs # e.g. `$HOME/.cache/dev.firezone.client/data/logs` on Linux
cat *.log | jq -r '"\(.time) \(.severity) \(.message)"'
Resulting in, e.g.
2024-04-01T18:25:47.237661392Z INFO started log
2024-04-01T18:25:47.238193266Z INFO GIT_VERSION = 1.0.0-pre.11-35-gcc0d43531
2024-04-01T18:25:48.295243016Z INFO No token / actor_name on disk, starting in signed-out state
2024-04-01T18:25:48.295360641Z INFO null