mirror of
https://github.com/netbirdio/netbird.git
synced 2025-08-24 04:55:28 +02:00
move contribution docs to the official docs repo
This commit is contained in:
@@ -1,83 +0,0 @@
|
|||||||
# Contribution
|
|
||||||
|
|
||||||
### To start developing Netbird
|
|
||||||
**You have a working Go environment**
|
|
||||||
|
|
||||||
Clone the project into your preferred path. We recommend just cloning into the GOPATH.
|
|
||||||
```
|
|
||||||
mkdir -p $GOPATH/src/github.com/netbirdio
|
|
||||||
cd $GOPATH/src/github.com/netbirdio
|
|
||||||
git clone git@github.com:netbirdio/netbird.git
|
|
||||||
cd netbird
|
|
||||||
go build ./...
|
|
||||||
```
|
|
||||||
**_Sidenote_** _`libayatana-appindicator3-dev` might be needed for developing on debian based distros._
|
|
||||||
|
|
||||||
|
|
||||||
**To run the tests execute:**
|
|
||||||
|
|
||||||
```
|
|
||||||
go test -exec sudo ./...
|
|
||||||
```
|
|
||||||
The tests need to be executed by a superuser,
|
|
||||||
because to run the integration tests we need to create network interfaces.
|
|
||||||
|
|
||||||
|
|
||||||
### Code Structure
|
|
||||||
|
|
||||||
The codebase is structured in 3 big components:
|
|
||||||
* Client
|
|
||||||
* Server
|
|
||||||
* Signal
|
|
||||||
* Dashboard (separate [repository](https://github.com/netbirdio/dashboard))
|
|
||||||
|
|
||||||
Refer to [architecture documentation](https://netbird.io/docs/overview/architecture) for more information.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### CLIENT
|
|
||||||
The Client consists of three different components.
|
|
||||||
|
|
||||||
##### Daemon
|
|
||||||
|
|
||||||
```
|
|
||||||
client/server # daemon server that runs in the background
|
|
||||||
client/proto # grpc daemon server listening to either the CLI or UI for requests
|
|
||||||
management/client # grpc client that connects to the management server
|
|
||||||
```
|
|
||||||
The Daemon runs in the background, and keeps the connection running.
|
|
||||||
|
|
||||||
##### CLI
|
|
||||||
We use [Cobra](https://github.com/spf13/cobra) as our CLI framework
|
|
||||||
```
|
|
||||||
client/cmd # All CLI commands are defined and implemented here
|
|
||||||
client/cmd/root.go # All commands are registered in root.go
|
|
||||||
```
|
|
||||||
|
|
||||||
##### UI-App
|
|
||||||
We use [systray](https://github.com/getlantern/systray) and [fyne](https://github.com/fyne-io/fyne) to write a UI application for the Systemtray.
|
|
||||||
```
|
|
||||||
client/ui # All UI elements implemented here
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
### MANAGEMENT
|
|
||||||
|
|
||||||
```
|
|
||||||
management/cmd # These are the CLI commands for starting the management server
|
|
||||||
management/proto # Management proto server for client
|
|
||||||
management/server # This is the actual management server, responsible for IDP and managing
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
### SIGNAL
|
|
||||||
|
|
||||||
```
|
|
||||||
signal/server
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
### DASHBOARD
|
|
Reference in New Issue
Block a user