Self-hosting your Moralis server

you could try to look in network tab to see what url it tries to access when it doesn’t work

Make sure your environment variables in Railway are all correct (SERVER_URL should also have https:// in front) and that you have cleared your app’s (e.g. http://localhost:3000) local storage.

I’m sorry is there a mistake in this syntax for Moralis v1 -> const nfts = await moralis.Web3API.account.getNFTs({ chain: options.chain, address: options.address });

Again, I’d like to press on the fact that the request is being successfully sent from my express server but the self hosted server is not responding back to this request in time.

Where does the request go in the self hosted server? Anywhere I can track and console log the request’s flow?

Hi Team,

I hosted the server on heroku but unable to access the parse dashboard.
I have to do yarn run start in the parse server migration locally to get the dashboard up. Please advice. Thank you

did it start the parse dashboard in heroku? it should be a different process

It gives this in heroku dashboard

Was hoping if I could get similar to this view

image

Did you set up your Parse Dashboard like this? If so you need to access it at your Heroku app’s domain’s /dashboard e.g. https://appname.herokuapp.com/dashboard.

1 Like

The request goes to your Express server (that is serving Parse Server). You could log all incoming requests in index.ts with something like:

app.use((req, res, next) => {
  console.log('path', req.path);

  console.log('req headers', req.headers);
  console.log('req body', req.body);

  next();
});

app.use(`/server`, parseServer.app);
``

Thank you and sorry my URL was incorrect.

Below URL opened it:
https://appname.herokuapp.com/dashboard

I am using the parse server for loginng in with wallet connect…and as soon as it login into my app i see "a mainnet api is being called repetitively "
image
which has a respective paylaod:
image
I HAVE NO CLUE WHO IS CALLING THIS AND WY IS THIS BEING CALLED?
@cryptokid

Hi Team,

I am able to open parse dashboard and all the views except the LOG>>INFO view. Please help.

See the attached in the heroku dashboard:

I did added below in the index.ts file

app.use((req, res, next) => {
  console.log('path', req.path);

  console.log('req headers', req.headers);
  console.log('req body', req.body);

  next();
});

app.use(`/server`, parseServer.app);

// Add the new route // 
app.use(`/dashboard`, parseDashboard);

Can you provide more info about your app. If that happens when you use WalletConnect then it’s probably related to that.

What is the issue or error? Or what happens exactly?

Just a blank screen, no error on the screen.

Do you get any errors in your browser console?

Yes, please see below

It looks like it is an issue with error logs getting added to the normal logs file which crashes the dashboard - if you delete your server’s logs folder (so the logs are recreated), the Logs page should work again (until you get a new server error).

Or you can remove any lines from parse-server.info.* starting with:

{"code":1,"level":"error"

This is an existing issue with parse-dashboard.

Hi! I’m setting up self-host parse server for Unity webGL, but have hit some problems. I actually can’t test as per the “normal” instructions moralis gives, as I’m on an older version (I’ve been developing from the start), I’m using MoralisWeb3ApiSdk and don’t know exactly how to transfer everything (unless there’s a legacy tutorial I’m missing). I do believe I’ve got most of it right though, the only file I’m editing is AppManager.cs in my Unity assets/project/scripts/ and here’s the only edit I make to it:

#region MORALIS AND WALLETCONNECT

   public async void WalletConnectHandler(WCSessionData data)

   {

       Debug.Log("Wallet connection received");

       // Extract wallet address from the Wallet Connect Session data object.

       address = data.accounts[0].ToLower();

       string appId = MoralisInterface.GetClient().ApplicationId;

       long serverTime = 0;

       // Retrieve server time from Moralis Server for message signature

       Dictionary<string, object> serverTimeResponse = await MoralisInterface.GetClient().Cloud.RunAsync<Dictionary<string, object>>("getServerTime", new Dictionary<string, object>());

       //if (serverTimeResponse == null || !serverTimeResponse.ContainsKey("dateTime") ||

       //    !long.TryParse(serverTimeResponse["dateTime"].ToString(), out serverTime))

       //{

       //    Debug.Log("Failed to retrieve server time from Moralis Server!");

       //}

if (serverTimeResponse != null)

{

   Debug.LogError("Failed to retrieve server time from Moralis Server!");

}

       if (!MoralisInterface.IsLoggedIn())

       {

           Debug.Log($"Sending sign request for {address} ...");

IDictionary<string, object> requestMessageParams = new Dictionary<string, object>();

requestMessageParams.Add("address", address);

requestMessageParams.Add("chain", "Eth");

requestMessageParams.Add("network", "evm");

Dictionary<string, object> authMessage = await MoralisInterface.GetClient().Cloud.RunAsync<Dictionary<string, object>>("requestMessage", requestMessageParams);

string signMessage = authMessage["message"].ToString();

           //string signMessage = $"Moralis Authentication\n\nId: {appId}:{serverTime}";

           string response = await walletConnect.Session.EthPersonalSign(address, signMessage);

      

           Debug.Log(response);

           Debug.Log($"Signature {response} for {address} was returned.");

           // Create moralis auth data from message signing response.

           Dictionary<string, object> authData = new Dictionary<string, object> { { "id", address }, { "signature", response }, { "data", signMessage } };

           Debug.Log("Logging in user.");

           // Attempt to login user.

           var user = await MoralisInterface.LogInAsync(authData);

           if (user != null)

           {

               Debug.Log($"{address} logged in successfully. ");

               infoLabel.text = $"{address}\nlogged in successfully!";

           }

           else

           {

               Debug.Log("User login failed.");

               infoLabel.text = "Login failed";

           }

       }

       UserLoggedInHandler();

   }

So, server side, I’ve installed parse-server via YARN and mongodb though I don’t really even use it, and edited the parse-server ENV file to include my app id and moralis key. It connects to Wallet when I scan QR code and sign first message, but then when asked for second signature to actually join game, here’s what I’m getting in dev browser:

Setup default wallet MetaMask
build.framework.js:3454:11
Closing Websocket
build.framework.js:3454:11
[WebSocket] Queued 0 subscriptions
build.framework.js:3454:11
[WebSocket] Flushing Queue
build.framework.js:3454:11
[WebSocket] Queue Count: 0
build.framework.js:3454:11
[WebSocket] Queue Flushed
build.framework.js:3454:11
[WebSocket] Opened wss://k.bridge.walletconnect.org
build.framework.js:3454:11
[WebSocket] Open Completed
build.framework.js:3454:11
[WebSocket] Subscribe to 00711fc7-6943-495a-9e95-59b952a2dd93
[WalletConnect] Session Connected
build.framework.js:3454:11
Wallet connection received
build.framework.js:3454:11
Adding Header: Content-Type value: application/json
build.framework.js:3454:11
Adding Header: X-Parse-Installation-Id value: 89268d3a-00c0-4c9f-a690-5d84e89ded7f
build.framework.js:3454:11
Adding Header: X-Parse-Application-Id value: pRLSWTZ8RUMngGVmgWmI8IzaUXFgUsX8Z1wZ6leJ

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:1337/server/functions/getServerTime. (Reason: CORS request did not succeed). Status code: (null).

Error: Unknown Error
build.framework.js:3447:11
    _JS_Log_Dump https://devilsandangels.io/DnA/selfhost/Build/build.framework.js:3447
    __Z19WebGLPrintfConsolev7LogTypePKcPi https://devilsandangels.io/DnA/selfhost/Build/build.wasm:3566522
    __ZL20InternalErrorConsolePKcz https://devilsandangels.io/DnA/selfhost/Build/build.wasm:3566134
    __Z40DebugStringToFilePostprocessedStacktraceRK21DebugStringToFileData https://devilsandangels.io/DnA/selfhost/Build/build.wasm:3565055
    __Z17DebugStringToFileRK21DebugStringToFileData https://devilsandangels.io/DnA/selfhost/Build/build.wasm:3558400
    __Z35DebugLogHandler_CUSTOM_Internal_Log7LogType9LogOptionP12Il2CppStringP12Il2CppObject https://devilsandangels.io/DnA/selfhost/Build/build.wasm:8283213
    _DebugLogHandler_Internal_Log_mA1D09B6E813ABFAB6358863B6C2D28E3ACA9E101 https://devilsandangels.io/DnA/selfhost/Build/build.wasm:31767430
    _DebugLogHandler_LogFormat_mB876FBE8959FC3D9E9950527A82936F779F7A00C https://devilsandangels.io/DnA/selfhost/Build/build.wasm:31767509
    __ZN23InterfaceActionInvoker4IP12Il2CppObjectS1_S1_S1_E6InvokeEtP11Il2CppClassS1_S1_S1_S1_S1_ https://devilsandangels.io/DnA/selfhost/Build/build.wasm:18771301
    _Logger_Log_mBAF75BD87C8B66198F52DEFF72132C42CA369881 https://devilsandangels.io/DnA/selfhost/Build/build.wasm:31783982
    __ZN23InterfaceActionInvoker2IiP52Expression_t30A004209C10C2D9A9785B2F74EEED431A4D4660E6InvokeEtP11Il2CppClassP12Il2CppObjectiS1_ https://devilsandangels.io/DnA/selfhost/Build/build.wasm:14695275
    _Debug_LogError_m8850D65592770A364D494025FF3A73E8D4D70485 https://devilsandangels.io/DnA/selfhost/Build/build.wasm:31763403
    dynCall_vii https://devilsandangels.io/DnA/selfhost/Build/build.wasm:44484835
    dynCall_vii https://devilsandangels.io/DnA/selfhost/Build/build.framework.js:29649
    invoke_vii https://devilsandangels.io/DnA/selfhost/Build/build.framework.js:19712
    _U3CExecuteAsyncU3Ed__7_MoveNext_m744143852593D697E1D53BF7A60E79CCC1DF8834 https://devilsandangels.io/DnA/selfhost/Build/build.wasm:20984476
    __ZN23InterfaceActionInvoker06InvokeEtP11Il2CppClassP12Il2CppObject https://devilsandangels.io/DnA/selfhost/Build/build.wasm:14447826
    _AsyncUniTask_2_Run_m009C0A732E50F84A1D89607154BAB6B2ED52C5AC_gshared https://devilsandangels.io/DnA/selfhost/Build/build.wasm:14942216
    _LiveQueryConnectedHandler_Invoke_mE61D8C8CC2C366ADC8C6268763F59B1F037CB0A2 https://devilsandangels.io/DnA/selfhost/Build/build.wasm:17227853
    _PooledDelegate_1_Run_mF261E7CD6B10D4200AC35511CBBA8B01214F568C_gshared https://devilsandangels.io/DnA/selfhost/Build/build.wasm:28134715
    _LiveQueryErrorHandler_Invoke_m19D11A592A74DD8479C9F5E13E3D7BC86B20EBCB https://devilsandangels.io/DnA/selfhost/Build/build.wasm:17228652
    __Z57Action_1_Invoke_m587509C88BB83721D7918D89DF07606BB752D744P50Action_1_tD9663D9715FAA4E62035CFCF1AD4D094EE7872DCP12Il2CppObjectPK10MethodInfo https://devilsandangels.io/DnA/selfhost/Build/build.wasm:14551318
    _AsyncOperation_InvokeCompletionEvent_m2BFBB3DD63950957EDE38AE0A8D2587B900CB8F5 https://devilsandangels.io/DnA/selfhost/Build/build.wasm:31735268
    __Z65RuntimeInvoker_TrueVoid_t700C6383A2A510C2CF4DD86DABD5CA9FF70ADAC5PFvvEPK10MethodInfoPvPS4_ https://devilsandangels.io/DnA/selfhost/Build/build.wasm:14116933
    dynCall_iiiii https://devilsandangels.io/DnA/selfhost/Build/build.wasm:44480649
    dynCall_iiiii https://devilsandangels.io/DnA/selfhost/Build/build.framework.js:28929
    invoke_iiiii https://devilsandangels.io/DnA/selfhost/Build/build.framework.js:18272
    __ZN6il2cpp2vm7Runtime6InvokeEPK10MethodInfoPvPS5_PP15Il2CppException https://devilsandangels.io/DnA/selfhost/Build/build.wasm:43885784
    _il2cpp_runtime_invoke https://devilsandangels.io/DnA/selfhost/Build/build.wasm:43730338
    __Z23scripting_method_invoke18ScriptingMethodPtr18ScriptingObjectPtrR18ScriptingArgumentsP21ScriptingExceptionPtrb https://devilsandangels.io/DnA/selfhost/Build/build.wasm:3656359
    __ZN19ScriptingInvocation6InvokeEP21ScriptingExceptionPtrb https://devilsandangels.io/DnA/selfhost/Build/build.wasm:3655169
    __ZN14AsyncOperation15InvokeCoroutineEv https://devilsandangels.io/DnA/selfhost/Build/build.wasm:5792438
    __ZN29UnityWebRequestAsyncOperation15InvokeCoroutineEv https://devilsandangels.io/DnA/selfhost/Build/build.wasm:13424490
    __ZN20UnityWebRequestProtoI24UnityWebRequestTransport16AtomicRefCounter14RedirectHelper14ResponseHelper15DownloadHandler13UploadHandler18CertificateHandler12HeaderHelper14AsyncOperationE19Job_InvokeCoroutineEPS8_ https://devilsandangels.io/DnA/selfhost/Build/build.wasm:13419842
    __ZN18BackgroundJobQueue21ExecuteMainThreadJobsEv https://devilsandangels.io/DnA/selfhost/Build/build.wasm:6406534
    __ZZ23InitPlayerLoopCallbacksvEN43EarlyUpdateExecuteMainThreadJobsRegistrator7ForwardEv https://devilsandangels.io/DnA/selfhost/Build/build.wasm:6494772
    __Z17ExecutePlayerLoopP22NativePlayerLoopSystem https://devilsandangels.io/DnA/selfhost/Build/build.wasm:6246330
    __Z17ExecutePlayerLoopP22NativePlayerLoopSystem https://devilsandangels.io/DnA/selfhost/Build/build.wasm:6246351
    __Z10PlayerLoopv https://devilsandangels.io/DnA/selfhost/Build/build.wasm:6242355
    __ZL8MainLoopv https://devilsandangels.io/DnA/selfhost/Build/build.wasm:6233694
    dynCall_v https://devilsandangels.io/DnA/selfhost/Build/build.wasm:44483642
    dynCall_v https://devilsandangels.io/DnA/selfhost/Build/build.framework.js:29424
    browserIterationFunc https://devilsandangels.io/DnA/selfhost/Build/build.framework.js:9752
    runIter https://devilsandangels.io/DnA/selfhost/Build/build.framework.js:9854
    Browser_mainLoop_runner https://devilsandangels.io/DnA/selfhost/Build/build.framework.js:9790
Error Getting Wallet Info: Unknown Error```

So I don't know what I'm missing, can you please help? Also, could I just be getting some keys wrong?  What key is the MASTER key? I get all these in my moralis account:

Cli Api Key
•••••••••••••••••••••••••••••••
Cli Api Secret
•••••••••••••••••••••••••••••••
Moralis Secret
•••••••••••••••••••••••••••••••
Web3 Api Key
•••••••••••••••••••••••••••••••

hmm deleting the log folder helped as it opened the info once but after that same behavior.

For Or you can remove any lines from parse-server.info.* starting with:
where should I make the change?
I see there were .info files with dates for each day but none of it had this {"code":1,"level":"error" line.