Skip to content

Installation & Configuration

This page covers how to run and configure the admin panel. The preferred workflow is Docker Compose.

Deployment

Use the admin-dev service from the repo root:

docker compose up admin-dev

This starts the admin panel on http://localhost:3000 and proxies API requests to the local API container.

For AWS deployment, the admin panel is deployed through Terraform and ECS. See Terraform Deployment Guide and Infrastructure Reference.

Development

The Docker Compose dev service uses hot reload, so code changes are picked up without restarting the container.

docker compose up admin-dev

If you need to work outside Docker, you can still use the local Vite dev server:

cd tracker-admin
npm install
npm run dev

Configuration

The admin panel talks to the API at /api/v1.

In Docker Compose development, admin-dev proxies /api/v1 to the API container.

In the production container image, nginx rewrites the upstream API target using the API_URL environment variable during container startup.

Proxy Configuration

In development, the admin panel uses a Vite proxy to avoid CORS issues. This is configured in tracker-admin/vite.config.ts:

export default defineConfig({
  server: {
    proxy: {
      "/api/v1": {
        target: "http://dev:8000",
        changeOrigin: true,
        secure: false,
        followRedirects: true,
      },
    },
  },
  // ...
});

This configuration proxies /api/v1 requests to http://dev:8000 in the Docker Compose dev stack.

In the production image, nginx proxies API requests to the backend. The container startup script substitutes the upstream target into tracker-admin/nginx.conf.