Skip to content

kernelci/dashboard

Repository files navigation

KernelCI Dashboard

Our Web Dashboard to evaluate test results from the common results database(KCIDB). Available at dashboard.kernelci.org.

The new KernelCI Web Dashboard is a web application created to provide access to static checks, build logs, boot logs and test results related for the Linux kernel CI/test ecosystem. All that data will be provided by KCIDB system from the KernelCI Foundation.

Repository

What we have as a repository is a monorepo containing the dashboard (the web application) and a backend.

Dashboard

A web app built with React + Typescript, to see more information check the dashboard README.

Backend

A Python http server built with Django + DRF, to see more information check the backend README.

Build

Create a .env file in /dashboard (Do not forget to check and set the variables and their values)

 cp ./dashboard/.env.example ./dashboard/.env

Create a secret key for Django:

export DJANGO_SECRET_KEY=$(openssl rand -base64 22)

We are not using sessions or anything like that right now, so changing the secret key won't be a big deal.

Add a application_default_credentials.json file with your ADC in the root of the project.

gcloud auth application-default login
cp ~/.config/gcloud/application_default_credentials.json .

After setting up your connection with Google Cloud with the following commands:

cloud-sql-proxy kernelci-production:us-central1:postgresql2 &
gcloud auth application-default login

If it doesn't work, check the Configure ADC with your Google Account documentation.

Create a secret file with the database password:

mkdir -p backend/runtime/secrets
echo <password> > backend/runtime/secrets/postgres_password_secret

If you are going to use a database user other than kernelci, set it to DB_DEFAULT_USER:

export DB_DEFAULT_USER=<user>

Startup the services:

docker compose up --build -d

Deploying to production

To deploy to prod you need to push a tag in the release/YYYYMMDD.N format like: release/20240910.0

Contributing

There is an onboarding guide to help get acquainted with the project.