Can't run project on my server

Hi everyone, once again!

I had wonderful time developing the current project and want to share it with my client so she can try it, but I had problems to upload it to my server.
I’ve archived it and downloaded, unziped changed permissions, but no luck.
Black screen…
Can’t run it outside of PlayCanvas hosting, that make this work useless…
current link to the server project:
https://appukraine.com/PUZZL

PlayCanvas:

Running from my server I see black screen in the viewport and in the console I see :

  1. Error loading binary resource: ARLRDBD.ttf.bin [403] (playcanvas-stable.min.js:6 Error loading binary resource: )
  2. Error while loading scene JSON 1890395.json: First argument to DataView constructor must be an ArrayBuffer
    TypeError: First argument to DataView constructor must be an ArrayBuffer (start.js:213 )
  3. loading.js:33 Uncaught TypeError: Cannot read properties of null (reading ‘parentElement’)

error screenshot:


browser screenshot:

I see that there is problem to .ttf.bin font, that should be loaded to the PlayCanvas as suggested by text-mesh.js developer Will, but I have no idea how to solve it and in which direction to think with it.

Thank you for help and advices !

Hi @Serjozha!

Personally I have no experience with self-hosting yet, but have you already followed the steps on the page below?

https://developer.playcanvas.com/en/user-manual/publishing/web/self-hosting/

https://developer.playcanvas.com/en/user-manual/publishing/web/self-hosting-for-beginners/

1 Like

Well, as the error says (HTTP error 403), the application has no access to ARLRDBD.ttf.bin. Check your server permissions.

1 Like

Thanks again @Albertos , I’ll check it!

Thank you @LeXXik , will check permissions again

OK, the problem with self-hosing for this projected was that default NGINX server configuration deny access to .bin files. (error 403)
Using text-mesh.js requires uploading fonts with “cheat”, renaming .ttf extending it with .ttf.bin and than renaming in PlayCanvas back to .ttf, but when deploying project font still saved in assets files as a .ttf.bin, that is by default not allowed to use by server (self-hosted).

So when allowing .bin in server configuration (NGINX or APACHE) to project location will give ability to run the self-hosted PlayCanvas project if you use text-mesh.js.

The code below I used for nginx site configuration (/etc/nginx/sites-available/domain.com):
inside

server {
#your code goes here…
}

location /PUZZL/{
    root /var/www/domain.com/htdocs/;

    location ~*^.+\.(bin) {
        access_log off;
        log_not_found off;
      }
    }

this will give access only for the folder DOMAIN.COM/PUZZL/ path all the .bin extensions