Filter by title
Document Options

There are multiple versions of this document. Pick the options that suit you best.

Architecture:

Manual Backend Configuration

When to use this guide: We recommend this fallback when you cannot use the Cloudflare tunnel workflow — for example, on Tiered or Microservice templates (which do not include tunnel.js), when corporate firewalls block cloudflared, or when developing fully offline.

Prefer simpler options first:

  • Browser testing → Running on Web (no backend changes)
  • Pro, non-tiered Monolith on emulator/device → Running on Device with yarn tunnel:api or the MobileEmulator profile

React Native does not trust the auto-generated .NET HTTPS certificate. Use HTTP during this manual workflow.

Important: Before running the backend application, make sure you have completed the database migration if you are starting with a fresh database.

A React Native application running on an Android emulator or a physical phone cannot connect to the backend on localhost. Bind the backend to 0.0.0.0 so it accepts requests from your local network, then update Environment.ts with your local IP address.

  • Open the appsettings.Development.json file in the .AuthServer folder. Add this configuration to accept global requests for testing the React Native application in the development environment.
    {
      "App": {
        "EnablePII": true
      },
      "Kestrel": {
        "Endpoints": {
          "Http": {
            "Url": "http://0.0.0.0:44319"
          }
        }
      }
    }
    
  • Open the appsettings.Development.json file in the .AdministrationService folder. Add this configuration to accept global requests for testing the React Native application in the development environment. You should also provide the authentication server configuration. Additionally, apply the same process for all services you will use in the React Native application.
    {
      "App": {
        "EnablePII": true
      },
      "Kestrel": {
        "Endpoints": {
          "Http": {
            "Url": "http://0.0.0.0:44357"
          }
        }
      },
      "AuthServer": {
        "Authority": "http://192.168.1.36:44319/",
        "MetaAddress": "http://192.168.1.36:44319/",
        "RequireHttpsMetadata": false,
        "Audience": "AdministrationService"
      }
    }
    
  • Update the appsettings.json file in the .IdentityService folder. Replace the localhost configuration with your local IP address for the React Native application.
    {
      //...
      "OpenIddict": {
        "Applications": {
          //...
          "ReactNative": {
            "RootUrl": "exp://192.168.1.36:19000"
          },
          "MobileGateway": {
            "RootUrl": "http://192.168.1.36:44347/"
          }
          //...
        }
        //...
      }
    }
    
  • Finally, update the mobile gateway configurations as follows:
    //gateways/mobile/MyMicroserviceProject.MobileGateway/Properties/launchSettings.json
    {
      "iisSettings": {
        "windowsAuthentication": false,
        "anonymousAuthentication": true,
        "iisExpress": {
          "applicationUrl": "http://192.168.1.36:44347" //update with your IP address
        }
      },
      "profiles": {
        //...
        "MyMicroserviceProject.MobileGateway": {
          "commandName": "Project",
          "dotnetRunMessages": "true",
          "launchBrowser": true,
          "applicationUrl": "http://192.168.1.36:44347",
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
          }
        }
      }
    }
    
    //gateways/mobile/MyMicroserviceProject.MobileGateway/appsettings.json
    {
      //Update clusters with your IP address
      //...
      "ReverseProxy": {
        //...
        "Clusters": {
          "AuthServer": {
            "Destinations": {
              "AuthServer": {
                "Address": "http://192.168.1.36:44319/"
              }
            }
          },
          "Administration": {
            "Destinations": {
              "Administration": {
                "Address": "http://192.168.1.36:44357/"
              }
            }
          },
          "Saas": {
            "Destinations": {
              "Saas": {
                "Address": "http://192.168.1.36:44330/"
              }
            }
          },
          "Identity": {
            "Destinations": {
              "Identity": {
                "Address": "http://192.168.1.36:44397/"
              }
            }
          },
          "Language": {
            "Destinations": {
              "Language": {
                "Address": "http://192.168.1.36:44310/"
              }
            }
          }
        }
      }
    }
    

Update apps/mobile/react-native/Environment.ts with your local IP address, then start Expo as described in Running on Device.

Run the backend application(s) as described in the getting started document.


Contributors


Last updated: June 09, 2026 Edit this page on GitHub

Was this page helpful?

Please make a selection.

To help us improve, please share your reason for the negative feedback in the field below.

Please enter a note.

Thank you for your valuable feedback!

Please note that although we cannot respond to feedback, our team will use your comments to improve the experience.

ABP Community Talks
Low-Code, High Precision
13 Aug, 17:00
Online
Watch the Event
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.