Discourse-setup fails when pups tries to create symbolic link

I am trying to install discourse on my fedora-coreos server, but not having much luck. I first had to create a /var/shared/ directory and update the templates to reflect this, as / is immutable on coreos. This works and the database comes up but then pups fails when it tries to create a symbolic link with the following error:
Pups::ExecError: cd /var/www/discourse && bash -c "ln -s /var/shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log" failed with return #<Process::Status: pid 241 exit 1>
I have tried creating the /var/www/ directory and setting the loosest permissions just to see if that helps. It might be the user being wrong. I notice that there is a chown statement with a user ‘discourse’ but I think that is probably inside a container. I have tried creating the /var/shared/ and the /var/www with a standard user as owner, but I think this is probably also wrong as discourse-setup runs as root.
I am more of a podman user than a docker user so I might be making some other error. I have disable selinux to see if that helps.
All help gratefully received… :slight_smile:

edit.
logs below

cd /var/www/discourse && bash -c "ln -s /var/shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
ln: failed to create symbolic link '/var/www/discourse/log/production.log': File exists
ln: failed to create symbolic link '/var/www/discourse/log/production_errors.log': File exists
ln: failed to create symbolic link '/var/www/discourse/log/unicorn.stdout.log': File exists
ln: failed to create symbolic link '/var/www/discourse/log/unicorn.stderr.log': File exists
ln: failed to create symbolic link '/var/www/discourse/log/sidekiq.log': File exists
I, [2025-06-15T16:41:06.444013 #1]  INFO -- : 
I, [2025-06-15T16:41:06.445624 #1]  INFO -- : Terminating async processes
I, [2025-06-15T16:41:06.445825 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main pid: 42
I, [2025-06-15T16:41:06.446165 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 91
2025-06-15 16:41:06.446 UTC [42] LOG:  received fast shutdown request
91:signal-handler (1750005666) Received SIGTERM scheduling shutdown...
91:M 15 Jun 2025 16:41:06.451 # User requested shutdown...

The error stems from attempting to create symlinks for log files, but files with those names already exist

Before running discourse-setup, remove files like production.log, production_errors.log, etc. in /var/www/discourse/log. This allows the symlink commands to succeed.
Example:

rm /var/www/discourse/log/production.log
rm /var/www/discourse/log/production_errors.log
rm /var/www/discourse/log/unicorn.stdout.log
rm /var/www/discourse/log/unicorn.stderr.log
rm /var/www/discourse/log/sidekiq.log

Then, re-run the setup.

Also, The file/folder ownership inside the container should typically be for the discourse user, not root or your host user. If files are pre-created on the host by the wrong user or with incorrect permissions, setup may fail.