Skip to content

[Bug] Hardcoded backend API URL in vite.config.ts breaks dev proxy on default port 8080 and custom environment #9154

Description

@Thundercloud12

Search before asking

  • I had searched in the issues and found no similar issues.

What happened

n config-ui/vite.config.ts, the /api dev proxy target is hardcoded directly to http://localhost:8081/:

// config-ui/vite.config.ts
proxy: {
'/api': {
target: 'http://localhost:8081/',
changeOrigin: true,
rewrite: (path) => path.replace(/^/api//, ''),
},
// ...
}

This causes two problems:

Port mismatch with the default backend

The DevLake backend defaults to port 8080, as defined in .env.example, docker-compose-dev.yml, and AGENTS.md.

Anyone starting the backend on its default port and launching config-ui gets ECONNREFUSED proxy errors unless they modify vite.config.ts or change their backend port.

Inflexible development/container setup

When developing inside Dev Containers, Docker, or with a remote backend host, the API target cannot be overridden via environment variables without modifying the tracked vite.config.ts file.

In contrast, the /grafana proxy directly below it in the same file already supports dynamic configuration via:

VITE_GRAFANA_URL
VITE_GRAFANA_PORT
VITE_GRAFANA_HOST
VITE_GRAFANA_PROTOCOL

These variables were introduced in PR #8645.

What do you expect to happen

The /api proxy should:

Default to the DevLake backend's default port (8080).
Allow the backend host, protocol, and port to be overridden through environment variables.
Avoid requiring developers to modify the tracked vite.config.ts file for different development or container environments.

How to reproduce

  1. Start DevLake backend on the default port (http://localhost:8080).
  2. Run config-ui with yarn dev (runs on http://localhost:4000).
  3. Open http://localhost:4000/ in the browser.
  4. Any API request directed to /api/... fails with ECONNREFUSED because Vite
    forwards requests to http://localhost:8081/.

Anything else

• File: config-ui/vite.config.ts (lines 40–44)
• Consistent with how config-ui/nginx.conf and config-ui/nginx.sh
dynamically use ${DEVLAKE_ENDPOINT} in production.
I found this while developing grafana_irm plugin

Version

main (commit 05dad99)

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    type/bugThis issue is a bug

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions