Skip to content

RudderStack on Docker always returns 404 #6353

@omarherri

Description

@omarherri

I usually don’t post issues because I can figure them out, but this time I’m stuck.

Setup:

  • VPS with Docker
  • Containers managed via Dokploy (i have multiple services working fine)
  • Only issue: RudderStack

Problem:

Whenever I try to access the RudderStack URL (rs.domain.com), I always get 404 page not found. I'm guessing also that RudderStack doesn't serve a "homepage" at / ?

What I’ve tried so far:

  • Running the container isolated → still 404
  • Sharing it with the Docker network → same result
  • Double-checked configs → nothing unusual on Traefik or other services

If anyone has run into RudderStack + Docker and solved this, I’d really appreciate the help.

I'm sharing my docker-compose.yml if needed:

services:
  db:
    image: postgres:15-alpine
    ports:
      - '6432:5432'
    environment:
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=jobsdb
    shm_size: 128mb
    networks:
      - combind-rudderstack-dqndkq
  backend:
    depends_on:
      - db
      - metrics-exporter
      - d-transformer
    image: rudderlabs/rudder-server:latest
    ports:
      - '8080:8080'
    entrypoint: sh -c '/wait-for db:5432 -- /rudder-server'
    healthcheck:
      test: curl --fail http://localhost:8080/health
      interval: 5s
      timeout: 10s
      retries: 3
    restart: always
    environment:
      - GO_ENV=production
      - JOBS_DB_HOST=db
      - JOBS_DB_USER=${DB_USER}
      - JOBS_DB_PORT=5432
      - JOBS_DB_DB_NAME=jobsdb
      - JOBS_DB_PASSWORD=${DB_PASSWORD}
      - DEST_TRANSFORM_URL=https://rs-transformer.domain.com
      - CONFIG_BACKEND_URL=https://api.rudderstack.com
      - WORKSPACE_TOKEN=${WORKSPACE_TOKEN}
      - STATSD_SERVER_URL=metrics-exporter:9125
      - RSERVER_GATEWAY_WEBHOOK_SOURCE_LIST_FOR_PARSING_PARAMS=Shopify
      - CONFIG_PATH=/app/config/config.yaml
    networks:
      - combind-rudderstack-dqndkq
    labels:
      - traefik.http.routers.combind-rudderstack-dqndkq-27-web.rule=Host(`rs.domain.com`)
      - traefik.http.routers.combind-rudderstack-dqndkq-27-web.entrypoints=web
      - traefik.http.services.combind-rudderstack-dqndkq-27-web.loadbalancer.server.port=8080
      - traefik.http.routers.combind-rudderstack-dqndkq-27-web.service=combind-rudderstack-dqndkq-27-web
      - traefik.http.routers.combind-rudderstack-dqndkq-27-web.middlewares=redirect-to-https@file
      - traefik.http.routers.combind-rudderstack-dqndkq-27-websecure.rule=Host(`rs.domain.com`)
      - traefik.http.routers.combind-rudderstack-dqndkq-27-websecure.entrypoints=websecure
      - traefik.http.services.combind-rudderstack-dqndkq-27-websecure.loadbalancer.server.port=8080
      - traefik.http.routers.combind-rudderstack-dqndkq-27-websecure.service=combind-rudderstack-dqndkq-27-websecure
      - traefik.http.routers.combind-rudderstack-dqndkq-27-websecure.tls.certresolver=letsencrypt
      - traefik.enable=true
  d-transformer:
    depends_on:
      - metrics-exporter
    restart: always
    image: rudderstack/rudder-transformer:latest
    ports:
      - '9090:9090'
    environment:
      - STATSD_SERVER_HOST=metrics-exporter
      - STATSD_SERVER_PORT="9125"
    networks:
      - combind-rudderstack-dqndkq
    labels:
      - traefik.http.routers.combind-rudderstack-dqndkq-28-web.rule=Host(`rs-transformer.domain.com`)
      - traefik.http.routers.combind-rudderstack-dqndkq-28-web.entrypoints=web
      - traefik.http.services.combind-rudderstack-dqndkq-28-web.loadbalancer.server.port=9090
      - traefik.http.routers.combind-rudderstack-dqndkq-28-web.service=combind-rudderstack-dqndkq-28-web
      - traefik.http.routers.combind-rudderstack-dqndkq-28-web.middlewares=redirect-to-https@file
      - traefik.http.routers.combind-rudderstack-dqndkq-28-websecure.rule=Host(`rs-transformer.domain.com`)
      - traefik.http.routers.combind-rudderstack-dqndkq-28-websecure.entrypoints=websecure
      - traefik.http.services.combind-rudderstack-dqndkq-28-websecure.loadbalancer.server.port=9090
      - traefik.http.routers.combind-rudderstack-dqndkq-28-websecure.service=combind-rudderstack-dqndkq-28-websecure
      - traefik.http.routers.combind-rudderstack-dqndkq-28-websecure.tls.certresolver=letsencrypt
      - traefik.enable=true
  metrics-exporter:
    image: prom/statsd-exporter:v0.22.4
    ports:
      - '9102:9102'
    restart: always
    networks:
      - combind-rudderstack-dqndkq
networks:
  combind-rudderstack-dqndkq:
    name: combind-rudderstack-dqndkq
    external: true

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions