Front end and the back end on different servers

I am not able to wrap my brain around the deployment on different servers. I want to have a public interface, the management of the data has to happen in a private network.

Am I right that

  • I need two distinct config/server.js at build time, one for the API (backend) and one for the adminpanel
    • I can use environment varaibles here
    • for the backend the url parameter is the fully qualified user-visible URL
    • for the adminpanel the url parameter is the fully qualified user-visible backend URL
  • the config/database.js and config/admin.js can be configured at runtime
    • the url parameter in both config/admin.js can be the fully qualified frontend URL
  • I have to build twice with the different config/server.js files
    • yarn install --frozen-lockfile --production for the backend
    • yarn install --frozen-lockfile + yarn build for the admin panel instance
  • the instances share the same database

Or did I get something completely wrong?

  • the url parameter in both config/admin.js can be the fully qualified frontend URL

Unfortunately this is not true. If I use the backend URL for the admin panel any link is built with the “wrong” prefix.

1 Like

Solved

I managed to answer my questions on my own, I was completely wrong.

  • there is just one config/server.js at build time
  • one has to build once, the admin panel is just a static HTML app without any additional config, that can be deployed anywhere using the API

From my perspective the docs are not very distinct here:

After running yarn build with this configuration, the build folder will be created/overwritten. Use this folder to serve it from another server with the domain of your choice (e.g. http://yourfrontend.com).

It contains any required information and I had read it many times, but I frequently missed its importance.

1 Like

I agree, the documentation can certainly do with some improvement. I find out about a lot of features and important information either by perusing other Strapi solutions, and forum articles, or reading the source code directly.

1 Like