Migrating Specify7 from rootful Docker to rootless Podman

Is specify running locally or on a different machine as the browser?

I’m running Specify7 with Podman on our federal RHEL server.
I think I found the bug…
In your last attachment the specify.env and sp_asset_settings.py were updated. But I think I should also fix spasset.env?

SERVER_NAME=host.containers.internal

SERVER_PORT=5000

ATTACHMENT_KEY=your asset server access key

DEBUG_MODE=true

Should I replace host.containers.internal with 0.0.0.0 ?

PS. Can you confirm that these ports are valid in sp_asset_settings.py? We have 5050 and 5000 in the same config.

HOST = ‘localhost’

PORT = 5050

SERVER_NAME = ‘localhost’

SERVER_PORT = 5000

Ah, if specify is running remotely,

then you put the server IP address at

SERVER_NAME = `$SERVER_IP_ADDRESS`
SERVER_PORT = `$SPECIFY PORT`

You shouldn’t have to modify spasset.env file (actually that file isn’t even being listen to right now since we are directly mounting the py file)

1 Like

So if I understand correctly this part of sp_asset_settings.py should look like:

HOST = ‘localhost’

PORT = 5050

SERVER_NAME = $SERVER_IP_ADDRESS

SERVER_PORT = $SPECIFY PORT

Yes, assuming you are still running everything in a single pod.

Slightly related:
In the specify.env, since everything is running on a single server ,

ASSET_SERVER_URL=http://host.containers.internal:5000/web_asset_store.xml

is valid, and so is http://0.0.0.0:5050/web_asset_store.xml.
If asset-server is running remotely,
then it would be
http://IP_ADDRESS:SPECIFY_PORT/web_asset_store.xml

1 Like

But where do the values for theses variables comme from?
$SERVER_IP_ADDRESS
$SPECIFY PORT
They are not defined in the specify.env file.

In the 2 example of your last reply, for ASSET_SERVER_URL you use port 5000 in the first and 5050 in the second. Which one should with your updated code?

Ah, you’d need to hard code them for now. The proper way would be to allow asset-server container to take the port to run the server at as an environment variable. We have to do this because otherwise it would run at port 8080 (which is same as what report-runner runs at)

1 Like

So if my server is here… s0-bsc-alfcwdev, the port declared for the web_asset_store.xml should be 5000 and not 5050, since 5050 is not accessible outside the pod?

ASSET_SERVER_URL=http://s0-bsc-alfcwdev:5000/web_asset_store.xml

Almost. It would be on the basis of IP address (or a domain-name if you have DNS). So, is s0-bsc-alfcwdev is accessible at IP address 202.202.202.202, and PORT 5000, then it would be

ASSET_SERVER_URL=http://202.202.202.202:5000/web_asset_store.xml)

Whatever IP address and PORT you are using to access the specify portal (right now from the browser) can actually be put in asset settings py file. So, if you are accessing specify portal at 202.202.202.202 and port 5000, it would be

SERVER_NAME = '202.202.202.202'

SERVER_PORT = 5000
1 Like

IT WORKED! YOU ARE AWESOME!
Thanks
I can upload files!
Now I will test bind mounts with Specify volumes for attachments and DB…
Once I get that running I will share my workspace with the community.
Thank you so much for your hlep!

1 Like

Here is the updated documentation on how to get Specify-7 working on Linux with Podman. I used your Podman with Windows instructions and added the Linux configuration info.

A post was split to a new topic: Deploying Specify-7 on a RHEL server

@vinayakjha How can I attach my configuration files (zip) to this ticket?

You should be able to do so by clicking on that upload icon

1 Like