Issue with Rdepot Authentication via Docker Compose – EOFException in Backend Logs

Hello,

I have deployed Rdepot using Docker Compose following the official documentation, but I am encountering an authentication issue.

I organized my configuration files as follows:

├── docker
│   └── compose
│       ├── backend
│       │   └── application.yaml
│       ├── proxy
│       │   ├── nginx.conf
│       │   └── rdepot.conf
│       └── repo
│           └── application.yaml
└── docker-compose.yml

generated with :

wget -O docker/compose/proxy/nginx.conf https://raw.githubusercontent.com/openanalytics/RDepot/refs/tags/v2.5.0/docker/compose/proxy/nginx.conf
wget -O docker/compose/proxy/rdepot.conf https://raw.githubusercontent.com/openanalytics/RDepot/refs/tags/v2.5.0/docker/compose/proxy/rdepot.conf
wget -O docker/compose/backend/application.yaml https://raw.githubusercontent.com/openanalytics/RDepot/refs/tags/v2.5.0/docker/compose/backend/application.yaml
wget -O docker/compose/repo/application.yaml https://raw.githubusercontent.com/openanalytics/RDepot/refs/tags/v2.5.0/docker/compose/repo/application.yaml

  • The docker-compose.yml file is located at the root and is identical to the one provided in the documentation.
services:
  proxy:
    image: nginx:alpine
    container_name: oa-rdepot-proxy
    restart: unless-stopped
    volumes:
    - ./docker/compose/proxy/nginx.conf:/etc/nginx/nginx.conf:ro
    - ./docker/compose/proxy/rdepot.conf:/etc/nginx/sites-enabled/rdepot:ro
    - repository:/opt/rdepot/repo/:ro
    - logs:/var/log/nginx/
    ports:
    - ${RDEPOT_PORT:-80}:80
    depends_on:
    - backend
    - repo
    - frontend
    networks:
    - oa-rdepot
  db:
    image: postgres:alpine
    restart: unless-stopped
    hostname: oa-rdepot-db
    container_name: oa-rdepot-db
    environment:
    - POSTGRES_DB=rdepot
    - POSTGRES_USER=rdepot
    - POSTGRES_PASSWORD=mysecretpassword
    networks:
    - oa-rdepot
  backend:
    image: openanalytics/rdepot-app:2.5.0
    restart: unless-stopped
    hostname: oa-rdepot-backend
    container_name: oa-rdepot-backend
    volumes:
    - repositories:/opt/rdepot/repositories/
    - snapshots:/opt/rdepot/generated/
    - queue:/opt/rdepot/new/
    - ./docker/compose/backend/application.yaml:/opt/rdepot/application.yml
    networks:
    - oa-rdepot
    depends_on:
    - db
    environment:
    - DB_URL=jdbc:postgresql://oa-rdepot-db:5432/rdepot
    - DB_USERNAME=rdepot
    - DB_PASSWORD=mysecretpassword
    - ALLOWED-ORIGIN=http://localhost:${RDEPOT_PORT:-80}
    healthcheck:
      test: ["CMD-SHELL", "if [ \"$$(curl -I localhost:8080 2>/dev/null | grep HTTP/1.1 | cut -d\" \" -f2)\" != \"302\" ]; then exit 1; else exit 0; fi;"]
      interval: 10s
      timeout: 10s
      retries: 10
  repo:
    image: openanalytics/rdepot-repo:2.5.0
    restart: unless-stopped
    hostname: oa-rdepot-repo
    container_name: oa-rdepot-repo
    volumes:
    - repository:/opt/rdepot/
    - ./docker/compose/repo/application.yaml:/opt/repo/application.yml
    networks:
    - oa-rdepot
  frontend:
    container_name: oa-rdepot-frontend
    image: openanalytics/rdepot-client:2.5.0
    restart: unless-stopped
    networks:
    - oa-rdepot
    environment:
    - VITE_LOGIN_SIMPLE=true
    - VITE_LOGIN_OIDC=false
    - VITE_URL_PREFIX=/
    - VITE_SERVER_ADDRESS=http://localhost:${RDEPOT_PORT:-80}/backend
networks:
  oa-rdepot:
volumes:
  repository:
  repositories:
  snapshots:
  queue:
  logs:
  • I have enabled simple authentication by setting the environment variable:
    VITE_LOGIN_SIMPLE=true
    
  • I also tested using the “none” authentication mode, but the issue persists.

The Issue

When clicking the login button, a popup appears with the following error message:

  • unsuccessful login
  • there seems to be a configuration issue in the backen. please contact your administrator to fix this.

I attempted to log in using the credentials:

  • einstein/testpassowrd
  • tesla/testpassword

Additionally, I enabled verbose logging in the backend configuration by adding the following to the logging configuration:

logging:
  file:
    rdepot.log
  level:
    root: DEBUG

When I click the login button, the backend container (oa-rdepot-backend) logs the following error:

2025-02-06 10:58:18.800 89973 [http-nio-8080-exec-10] DEBUG traceId= o.a.c.h.Http11Processor : Error parsing HTTP request header
java.io.EOFException: null
    at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1288)
    at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1176)
    at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:785)
    at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:348)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:264)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
    at java.base/java.lang.Thread.run(Thread.java:840)
2025-02-06 10:58:18.800 89973 [http-nio-8080-exec-10] DEBUG traceId= o.a.c.h.Http11Processor : Error state [CLOSE_CONNECTION_NOW] reported while processing request
java.io.EOFException: null
    at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1288)
    at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1176)
    at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:785)
    at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:348)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:264)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
    at java.base/java.lang.Thread.run(Thread.java:840)

The EOFException appears when I click the login button and seems to occur sporadically at other times as well.

  • I am testing Rdepot on a dedicated server available at: http://57.129.133.107/.
  • I have followed the documentation as closely as possible.
  • I am unsure if I am missing any configuration steps or if this is a known issue with the current setup.

Are there specific configuration parameters in the backend’s application.yaml or elsewhere that I should verify or adjust to resolve this issue?
Are there additional logs or debugging steps you recommend to further diagnose the problem?

I appreciate your assistance in troubleshooting this matter. Please let me know if you need any additional information or logs.

Thank you for your support.

Best regards,
Vincent

Hi Vincent,

Sorry to hear you’re having issues setting up RDepot.

The first issue I see with your setup is that the documentation relies on it being deployed on localhost (for demo purposes).
That means the default configuration you’re using still has some references to localhost, which might be part of the reason why it’s not working as expected.

Could you please try the following and report back?

In docker-compose.yaml:

  1. Replace ALLOWED-ORIGIN=http://localhost:${RDEPOT_PORT:-80} with ALLOWED-ORIGIN=http://57.129.133.107:${RDEPOT_PORT:-80}
  2. Replace VITE_SERVER_ADDRESS=http://localhost:${RDEPOT_PORT:-80}/backend with VITE_SERVER_ADDRESS=http://57.129.133.107:${RDEPOT_PORT:-80}/backend

Then restart both the backend and frontend containers (i.e. docker-compose restart backend frontend).

Kind regards,
Jonas