Running Volto / Plone 6 behind apache

I have an old server with apache. If I want someone (customer) to test Volto without too much work (for me): How do I set up apache if I use docker (on ubuntu)?

1 Like

There's always the demo.plone.org website where your customer can test Volto.

I said the same, but he still wanted one 'to keep things'

I've noticed there's a bunch of examples here: plone-frontend/examples at 16.x ยท plone/plone-frontend ยท GitHub Also check the docs Seamless mode โ€“ Frontend โ€“ Deploying โ€” Plone Documentation v6.0

I'm so glad I'm not the only old-school LAMP guy navigating this whole new world of containers.

Is there a dinosaurs-in-web recovery group for us?

Join the dark side. Docker containers are pretty straight forward, once you have someone guide you through. You can create a mental model where "docker image" = "virtual machine image" and a "docker container" is a "running instance of a virtual machine". The difference here, though, is that there's no virtualization penalty to running a docker container, as they rely on a feature called Linux cgroups so they're close to native speeds.

What I've noticed, though, is that the documentation references starting containers by directly running docker. This requires a really long and obscure command line, which is unfriendly. A lot more friendly is starting the containers using docker compose, which can also make it easier to orchestrate several containers together (you don't have to setup networking between them, they just comunicate with each other, the docker-compose.yml is a lot friendlier, etc).

1 Like

We are using the following configuration for nginx, taken from the Volto deploying docs:

We are still using Apache und will have to run Plone 6 also with it. I have set up a standard-installation with Plone 6 some days ago. Here are the relevant parts of the apache configuration (only for http; adjust port for https):

RewriteRule ^/\+\+api\+\+($|/.*) http://localhost:8080/VirtualHostBase/http/www.myurl.com:80/Plone/VirtualHostRoot/++api++$1 [P,L]

RewriteRule ^/(.*) http://localhost:3000/$1 [L,P]
RewriteRule ^/(.*)/$ http://localhost:3000/$1 [L,P]

There is probably a more elegant/better way to do it but it works for us.

1 Like