diff --git a/README.md b/README.md
index aa2acfeff..e68ba09e7 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
Big News! Wiretrustee becomes Netbird.
-
+
Learn more
@@ -37,7 +37,7 @@
Start using Netbird at app.netbird.io
- See Documentation
+ See Documentation
Join our Slack channel
diff --git a/client/server/server.go b/client/server/server.go
index c2fca97fa..4551bdc8a 100644
--- a/client/server/server.go
+++ b/client/server/server.go
@@ -90,6 +90,23 @@ func (s *Server) Start() error {
return nil
}
+// loginAttempt attempts to login using the provided information. it returns a status in case something fails
+func (s *Server) loginAttempt(ctx context.Context, setupKey, jwtToken string) (internal.StatusType, error) {
+ var status internal.StatusType
+ err := internal.Login(ctx, s.config, setupKey, jwtToken)
+ if err != nil {
+ if s, ok := gstatus.FromError(err); ok && (s.Code() == codes.InvalidArgument || s.Code() == codes.PermissionDenied) {
+ log.Warnf("failed login: %v", err)
+ status = internal.StatusNeedsLogin
+ } else {
+ log.Errorf("failed login: %v", err)
+ status = internal.StatusLoginFailed
+ }
+ return status, err
+ }
+ return "", nil
+}
+
// Login uses setup key to prepare configuration for the daemon.
func (s *Server) Login(_ context.Context, msg *proto.LoginRequest) (*proto.LoginResponse, error) {
s.mutex.Lock()
@@ -102,23 +119,23 @@ func (s *Server) Login(_ context.Context, msg *proto.LoginRequest) (*proto.Login
state := internal.CtxGetState(ctx)
defer func() {
- s, err := state.Status()
- if err != nil || (s != internal.StatusNeedsLogin && s != internal.StatusLoginFailed) {
+ status, err := state.Status()
+ if err != nil || (status != internal.StatusNeedsLogin && status != internal.StatusLoginFailed) {
state.Set(internal.StatusIdle)
}
}()
- state.Set(internal.StatusConnecting)
-
s.mutex.Lock()
managementURL := s.managementURL
if msg.ManagementUrl != "" {
managementURL = msg.ManagementUrl
+ s.managementURL = msg.ManagementUrl
}
adminURL := s.adminURL
if msg.AdminURL != "" {
adminURL = msg.AdminURL
+ s.adminURL = msg.AdminURL
}
s.mutex.Unlock()
@@ -131,6 +148,13 @@ func (s *Server) Login(_ context.Context, msg *proto.LoginRequest) (*proto.Login
s.config = config
s.mutex.Unlock()
+ if _, err := s.loginAttempt(ctx, "", ""); err == nil {
+ state.Set(internal.StatusIdle)
+ return &proto.LoginResponse{}, nil
+ }
+
+ state.Set(internal.StatusConnecting)
+
if msg.SetupKey == "" {
providerConfig, err := internal.GetDeviceAuthorizationFlowInfo(ctx, config)
if err != nil {
@@ -176,14 +200,8 @@ func (s *Server) Login(_ context.Context, msg *proto.LoginRequest) (*proto.Login
}, nil
}
- if err := internal.Login(ctx, s.config, msg.SetupKey, ""); err != nil {
- if s, ok := gstatus.FromError(err); ok && (s.Code() == codes.InvalidArgument || s.Code() == codes.PermissionDenied) {
- log.Warnf("failed login with known status: %v", err)
- state.Set(internal.StatusNeedsLogin)
- } else {
- log.Errorf("failed login: %v", err)
- state.Set(internal.StatusLoginFailed)
- }
+ if loginStatus, err := s.loginAttempt(ctx, msg.SetupKey, ""); err != nil {
+ state.Set(loginStatus)
return nil, err
}
@@ -235,14 +253,8 @@ func (s *Server) WaitSSOLogin(_ context.Context, msg *proto.WaitSSOLoginRequest)
return nil, err
}
- if err := internal.Login(ctx, s.config, "", tokenInfo.AccessToken); err != nil {
- if s, ok := gstatus.FromError(err); ok && (s.Code() == codes.InvalidArgument || s.Code() == codes.PermissionDenied) {
- log.Warnf("failed login: %v", err)
- state.Set(internal.StatusNeedsLogin)
- } else {
- log.Errorf("failed login: %v", err)
- state.Set(internal.StatusLoginFailed)
- }
+ if loginStatus, err := s.loginAttempt(ctx, "", tokenInfo.AccessToken); err != nil {
+ state.Set(loginStatus)
return nil, err
}
diff --git a/client/ui/client_ui.go b/client/ui/client_ui.go
index 4d0df5d0f..5ee8c81cf 100644
--- a/client/ui/client_ui.go
+++ b/client/ui/client_ui.go
@@ -247,11 +247,6 @@ func (s *serviceClient) login() error {
}
}
- if _, err := s.conn.Up(s.ctx, &proto.UpRequest{}); err != nil {
- log.Errorf("up service: %v", err)
- return err
- }
-
return nil
}
@@ -276,6 +271,12 @@ func (s *serviceClient) menuUpClick() error {
}
}
+ status, err = conn.Status(s.ctx, &proto.StatusRequest{})
+ if err != nil {
+ log.Errorf("get service status: %v", err)
+ return err
+ }
+
if status.Status != string(internal.StatusIdle) {
log.Warnf("already connected")
return nil
diff --git a/infrastructure_files/configure.sh b/infrastructure_files/configure.sh
index c29d84bcd..b14aa9f2c 100755
--- a/infrastructure_files/configure.sh
+++ b/infrastructure_files/configure.sh
@@ -22,9 +22,9 @@ then
export TURN_PASSWORD=$(openssl rand -base64 32|sed 's/=//g')
fi
-MGMT_VOLUMENAME="${$VOLUME_PREFIX}${MGMT_VOLUMESUFFIX}"
-SIGNAL_VOLUMENAME="${$VOLUME_PREFIX}${SIGNAL_VOLUMESUFFIX}"
-LETSENCRYPT_VOLUMENAME="${$VOLUME_PREFIX}${LETSENCRYPT_VOLUMESUFFIX}"
+MGMT_VOLUMENAME="${VOLUME_PREFIX}${MGMT_VOLUMESUFFIX}"
+SIGNAL_VOLUMENAME="${VOLUME_PREFIX}${SIGNAL_VOLUMESUFFIX}"
+LETSENCRYPT_VOLUMENAME="${VOLUME_PREFIX}${LETSENCRYPT_VOLUMESUFFIX}"
# if volume with wiretrustee- prefix already exists, use it, else create new with netbird-
OLD_PREFIX='wiretrustee-'
if docker volume ls | grep -q "${OLD_PREFIX}${MGMT_VOLUMESUFFIX}"; then
diff --git a/infrastructure_files/docker-compose.yml.tmpl b/infrastructure_files/docker-compose.yml.tmpl
index 015cfdbaa..a06710584 100644
--- a/infrastructure_files/docker-compose.yml.tmpl
+++ b/infrastructure_files/docker-compose.yml.tmpl
@@ -19,7 +19,7 @@ services:
- $LETSENCRYPT_VOLUMENAME:/etc/letsencrypt/
# Signal
signal:
- image: netbird/signal:latest
+ image: netbirdio/signal:latest
restart: unless-stopped
volumes:
- $SIGNAL_VOLUMENAME:/var/lib/netbird
@@ -30,7 +30,7 @@ services:
# command: ["--letsencrypt-domain", "$WIRETRUSTEE_DOMAIN", "--log-file", "console"]
# Management
management:
- image: netbird/management:latest
+ image: netbirdio/management:latest
restart: unless-stopped
depends_on:
- dashboard