mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-28 21:26:40 +00:00
55 lines
1.8 KiB
Markdown
55 lines
1.8 KiB
Markdown
# NetBird Flutter UI
|
|
|
|
This is the migration workspace for a Flutter-based replacement for `client/ui`.
|
|
The existing Go/Fyne UI remains the production UI until this package reaches
|
|
feature and release-pipeline parity.
|
|
|
|
## Scope
|
|
|
|
The first target is the desktop UI only. The NetBird daemon, service lifecycle,
|
|
network engine, and daemon gRPC API stay in Go.
|
|
|
|
Initial parity target:
|
|
|
|
- tray/menu-bar entry with connection status and connect/disconnect actions
|
|
- settings and feature flags backed by `DaemonService.GetConfig` and `SetConfig`
|
|
- profile management
|
|
- network and exit-node selection
|
|
- daemon event subscription and desktop notifications
|
|
- login/session-expired flow
|
|
- debug bundle flow
|
|
- enforced-update progress window
|
|
- Windows, macOS, and Linux packaging integration
|
|
|
|
## Bootstrap
|
|
|
|
Flutter and Dart are not committed into this repository. After installing the
|
|
Flutter SDK, run:
|
|
|
|
```sh
|
|
cd client/flutter_ui
|
|
bash tool/bootstrap.sh
|
|
bash tool/generate_proto.sh
|
|
flutter run -d macos -- --daemon-addr=unix:///var/run/netbird.sock
|
|
```
|
|
|
|
Use `-d windows` or `-d linux` on those platforms. The Windows daemon address is
|
|
currently `tcp://127.0.0.1:41731`.
|
|
|
|
For UI-only development without a daemon, run:
|
|
|
|
```sh
|
|
flutter run -d macos -- --fake-daemon
|
|
```
|
|
|
|
## Layout
|
|
|
|
- `lib/main.dart`: app entry point and command-line flag parsing
|
|
- `lib/src/app_shell.dart`: first-pass desktop shell
|
|
- `lib/src/daemon_client.dart`: daemon boundary with fake and gRPC-backed clients
|
|
- `lib/src/models.dart`: UI-facing models independent from generated protobufs
|
|
- `lib/src/generated/`: generated Dart protobuf and gRPC files
|
|
- `tool/bootstrap.sh`: creates Flutter desktop platform folders once Flutter is installed
|
|
- `tool/generate_proto.sh`: generates Dart gRPC bindings from `client/proto/daemon.proto`
|
|
- `MIGRATION.md`: parity plan and release integration checklist
|