RDepot - Deployment errors

Hi, I have followed the instructions for deploying RDepot using docker compose from this page: Deployment | RDepot

Even though I have tried so many times, I get errors from different containers:

  1. Postgres container logs:
    ERROR: relation “public.databasechangeloglock” does not exist at character 22
    FATAL: role “postgres” does not exist
    FATAL: role “root” does not exist
  2. nginx container logs:
    nginx: [emerg] host not found in upstream “oa-rdepot-frontend” in /etc/nginx/nginx.conf:114

Can someone please help here? Thanks.

Regards,
Abdul

Hi Abdul,

Sorry to hear you’re having issues deploying RDepot.

Using the latest version of the docker-compose at Deployment | RDepot with the latest version of the Git repository (for the configuration files) at GitHub - openanalytics/RDepot at v2.3.0, I cannot seem to reproduce your issue.

Can you maybe try with a fresh installation?
For example, executing docker-compose pull in the folder of your docker-compose file, then docker-compose down -v and finally docker-compose up, making sure the latest configuration files (as mentioned above) are available in this folder.

Kind regards,
Jonas

Hi Jonas,

Thanks for the reply. I have found the issue with my installation and it had to do with my host running an nginx service with a different configuration conflicting with the nginx docker container and also the manager application file and compose file needed to be updated with the correct postgres passwords. I did a fresh installation in a new machine and it all works good now.

I can see the app running correctly now but when I add new repositories in the front end, I can see a success message that the repository is added and I can see in Events as well but the repositories list is still empty. I have logged out and logged in back again but still cannot see the repository in the list.

Regards,
Abdul

Hi Abdul,

Glad to hear your deployment is working now.

As for the repository not being shown in the UI, could it be that the repository has not been published yet? When creating a new repository, it won’t be published automatically. On the repositories page, they are filtered to only show published repositories by default - which is probably why you can’t see your newly created repository.

Recording 2024-09-05 at 10.59.25

This can be confusing for new users, I’ll take this feedback to the UI development team.

Hope this helps!

Kind regards,
Jonas

Great thanks a lot. I can now see the repositories once I have published it. Sorry for couple of more questions - hopefully those are the last questions.

  1. I can see that the application is logging out quite frequently - is there a timeout when it logs out automatically when not in usage?
  2. I am pointing my pip config to the py mirror repository in RDepot which does not have any packages. When I install a new package, it searches in RDepot, does not find it and then downloads it. Does it also download the new package to RDepot and cache it there?
  3. Can my RDepot be configured to mirror the whole RCran so all packages will be hosted locally?

Thanks again for your quick response.

Regards,
Abdul

Hi Abdul,

  1. When using simple authentication (as configured by default in the demo deployment), the lifetime of the access token can be configured here (by default it’s 5 minutes). When using OIDC, the lifetime of the token depends on the access token lifetime settings for that client in your OIDC provider.

  2. Installing Python packages from RDepot can be done with the following command: pip install --index-url <repository_publication_uri> <package_name> as shown on the package details page (see View and Install Packages | RDepot). When configured correctly, the nginx proxy container will then proxy requests for packages that don’t exist in RDepot straight to pypi.org (see here). If not configured correctly, or done so purposefully (by removing these lines), the above pip install command will only install packages that are already uploaded into RDepot and won’t automatically proxy to pypi.org.

  3. In theory yes, but you would need to specify the list of all packages currently in CRAN (and add any new packages as they become available) in the declarative repository configuration (see documentation). Unfortunately, we don’t currently support mirroring “everything” from an external repository, but only select packages. I’ve just added that feature for consideration onto our roadmap, but can’t promise anything regarding when and if it becomes available.

Kind regards,
Jonas

Thanks a lot Jonas for the detailed response.

Regards,
Abdul