mirror of
https://github.com/netbirdio/netbird.git
synced 2026-09-21 14:19:08 +02:00
- **Wails v3 application** (`client/ui`) with a React + TypeScript + Tailwind frontend replacing the Fyne UI: main connection view, exit-node switcher, networks/peers browser with detail panels, profile management, settings (general, network, SSH, security, troubleshooting, appearance), debug-bundle creation, and a first-run welcome flow. - **Internationalization**: go-i18n bundle with 9 locales (en, de, es, fr, hu, it, pt, ru, zh-CN) shared between the tray and the frontend. - **New system tray** implementation with per-platform theme-aware icons, including a native XEmbed host for Linux (`xembed_tray_linux.c`) and a Linux theme watcher. - **Session handling**: auth session watcher (`client/internal/auth/sessionwatch`), pending login flow, session-expiration dialog and tray notifications, and `netbird login` improvements. - **Daemon API extensions** (`daemon.proto`): status stream subscription, event stream, networks/exit-node selection endpoints, and richer full status — with probe throttling on the daemon side to protect against UI-driven request storms. - **UI preferences store** persisted per profile, autostart management via the daemon (single source of truth in HKCU on Windows). - **Build system**: Taskfile-based builds per platform (macOS, Linux, Windows), Docker cross-compilation images, MSIX/NSIS/nfpm/AppImage packaging, and a new `frontend-ui` CI workflow. Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> Co-authored-by: Eduard Gert <kontakt@eduardgert.de> Co-authored-by: braginini <bangvalo@gmail.com> Co-authored-by: Pascal Fischer <32096965+pascal-fischer@users.noreply.github.com> Co-authored-by: riccardom <riccardomanfrin@gmail.com>
135 lines
3.9 KiB
YAML
135 lines
3.9 KiB
YAML
version: 2
|
|
env:
|
|
- SKIP_PUBLISH={{ if index .Env "SKIP_PUBLISH" }}{{ .Env.SKIP_PUBLISH }}{{ else }}true{{ end }}
|
|
project_name: netbird-ui
|
|
|
|
before:
|
|
hooks:
|
|
# Bindings are gitignored; regenerate before the frontend build so
|
|
# the @wailsio/runtime Vite plugin can resolve them (vite refuses to
|
|
# build without them).
|
|
- sh -c 'cd client/ui && wails3 generate bindings -clean=true -ts'
|
|
- sh -c 'cd client/ui/frontend && pnpm install --frozen-lockfile && pnpm build'
|
|
|
|
builds:
|
|
- id: netbird-ui
|
|
dir: client/ui
|
|
binary: netbird-ui
|
|
env:
|
|
- CGO_ENABLED=1
|
|
goos:
|
|
- linux
|
|
goarch:
|
|
- amd64
|
|
ldflags:
|
|
- -s -w -X github.com/netbirdio/netbird/version.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}} -X main.builtBy=goreleaser
|
|
mod_timestamp: "{{ .CommitTimestamp }}"
|
|
|
|
- id: netbird-ui-windows-amd64
|
|
dir: client/ui
|
|
binary: netbird-ui
|
|
env:
|
|
- CGO_ENABLED=1
|
|
- CC=x86_64-w64-mingw32-gcc
|
|
goos:
|
|
- windows
|
|
goarch:
|
|
- amd64
|
|
ldflags:
|
|
- -s -w -X github.com/netbirdio/netbird/version.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}} -X main.builtBy=goreleaser
|
|
- -H windowsgui
|
|
mod_timestamp: "{{ .CommitTimestamp }}"
|
|
|
|
- id: netbird-ui-windows-arm64
|
|
dir: client/ui
|
|
binary: netbird-ui
|
|
env:
|
|
- CGO_ENABLED=1
|
|
- CC=aarch64-w64-mingw32-clang
|
|
- CXX=aarch64-w64-mingw32-clang++
|
|
goos:
|
|
- windows
|
|
goarch:
|
|
- arm64
|
|
ldflags:
|
|
- -s -w -X github.com/netbirdio/netbird/version.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}} -X main.builtBy=goreleaser
|
|
- -H windowsgui
|
|
mod_timestamp: "{{ .CommitTimestamp }}"
|
|
|
|
archives:
|
|
- id: linux-arch
|
|
name_template: "{{ .ProjectName }}-linux_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
|
|
builds:
|
|
- netbird-ui
|
|
- id: windows-arch
|
|
name_template: "{{ .ProjectName }}-windows_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
|
|
builds:
|
|
- netbird-ui-windows-amd64
|
|
- netbird-ui-windows-arm64
|
|
|
|
nfpms:
|
|
- maintainer: Netbird <dev@netbird.io>
|
|
description: Netbird client UI.
|
|
homepage: https://netbird.io/
|
|
license: BSD-3-Clause
|
|
vendor: NetBird
|
|
id: netbird_ui_deb
|
|
package_name: netbird-ui
|
|
builds:
|
|
- netbird-ui
|
|
formats:
|
|
- deb
|
|
scripts:
|
|
postinstall: "release_files/ui-post-install.sh"
|
|
contents:
|
|
- src: client/ui/build/linux/netbird.desktop
|
|
dst: /usr/share/applications/org.wails.netbird.desktop
|
|
- src: client/ui/build/appicon.png
|
|
dst: /usr/share/pixmaps/netbird.png
|
|
dependencies:
|
|
- netbird
|
|
|
|
- maintainer: Netbird <dev@netbird.io>
|
|
description: Netbird client UI.
|
|
homepage: https://netbird.io/
|
|
license: BSD-3-Clause
|
|
vendor: NetBird
|
|
id: netbird_ui_rpm
|
|
package_name: netbird-ui
|
|
builds:
|
|
- netbird-ui
|
|
formats:
|
|
- rpm
|
|
scripts:
|
|
postinstall: "release_files/ui-post-install.sh"
|
|
contents:
|
|
- src: client/ui/build/linux/netbird.desktop
|
|
dst: /usr/share/applications/org.wails.netbird.desktop
|
|
- src: client/ui/build/appicon.png
|
|
dst: /usr/share/pixmaps/netbird.png
|
|
dependencies:
|
|
- netbird
|
|
|
|
rpm:
|
|
signature:
|
|
key_file: '{{ if index .Env "GPG_RPM_KEY_FILE" }}{{ .Env.GPG_RPM_KEY_FILE }}{{ end }}'
|
|
|
|
uploads:
|
|
- name: debian
|
|
skip: "{{ .Env.SKIP_PUBLISH }}"
|
|
ids:
|
|
- netbird_ui_deb
|
|
mode: archive
|
|
target: https://pkgs.wiretrustee.com/debian/pool/{{ .ArtifactName }};deb.distribution=stable;deb.component=main;deb.architecture={{ if .Arm }}armhf{{ else }}{{ .Arch }}{{ end }};deb.package=
|
|
username: dev@wiretrustee.com
|
|
method: PUT
|
|
|
|
- name: yum
|
|
skip: "{{ .Env.SKIP_PUBLISH }}"
|
|
ids:
|
|
- netbird_ui_rpm
|
|
mode: archive
|
|
target: https://pkgs.wiretrustee.com/yum/{{ .Arch }}{{ if .Arm }}{{ .Arm }}{{ end }}
|
|
username: dev@wiretrustee.com
|
|
method: PUT
|